diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100755 index 0000000..639b90d --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 7d5e8b5..7121bcc 100755 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "7c111351862536fa", + "id": "cd114faff4d50a5a", "type": "tabs", "children": [ { - "id": "c7f3b3411e63e695", + "id": "3254c248d9281469", "type": "leaf", "state": { "type": "empty", @@ -176,44 +176,44 @@ "bases:Create new base": false } }, - "active": "c7f3b3411e63e695", + "active": "3254c248d9281469", "lastOpenFiles": [ - "liph/Steuerfrist.md", - "liph/Notes/Daily/2026/05/2026-05-07 Thu.md", - "liph/Notes/Daily/2026/05", - "liph/Notes/Daily/2026", - "liph/Notes/Weekly/2026-19.md", - "liph/Notes/Daily/2026-05-05 Tue.md", - "liph/Notes/Daily/2026-05-06 Wed.md", - "liph/Notes/Daily/2026-05-07 Thu.md", - "liph/Notes/Daily/2026/05/2026-05-07.md", - "liph/Notes/Weekly/2026/05/2026-19.md", - "liph/Notes/Daily/2026/05/2026-05-05 Tue.md", - "liph/Notes/Daily/2026/05/2026-05-06 Wed.md", - "liph/Notes/Weekly/2026/05", - "liph/Notes/Weekly/2026", - "liph/Notes/Weekly", - "liph/Notes/Daily", - "liph/Notes", - "liph/Tasks/_templates/Project.md", - "liph/Tasks/_templates/Meetings.md", - "liph/Tasks/_templates/Daily Notes.md", - "liph/Tasks/_templates/Unique.md", - "liph/Tasks/_templates", - "liph/_templates/Project.md", - "liph/_templates/Daily Notes.md", - "liph/_templates/Meetings.md", - "liph/_templates/Unique.md", - "liph/_templates", - "liph/Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", - "liph/Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", - "liph/Tasks/Notes/Weekly/2026/05/2026-19.md", - "liph/Tasks/Recurring.md", - "liph/Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", - "liph/other/spinstack.md", - "liph/Tasks/Areas/Work.md", - "liph/breathwork_facilitator/Hypnosis.md", - "liph/Tasks/Areas/Untitled.base", + "liph/Oracel/Maya/Untitled.md", + "liph/_templates/Oracle Cards template.md", + "liph/References/Queen of the moon.md", + "liph/References/Untitled.md", + "liph/_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "liph/_templates/_bases/Oracle.base", + "liph/_templates/_bases/Untitled.base", + "liph/Categories/Oracle.md", + "liph/Categories/Untitled.md", + "liph/References/Runenorakel.md", + "liph/_templates/Oracle Cards templateo.md", + "liph/_templates/Board Game Template 1.md", + "liph/References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "liph/References/Level 8.md", + "liph/References/Giten Tonkov.md", + "liph/Giten Tonkov.md", + "liph/References/Feel to heal.md", + "liph/Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "liph/References/Dab Dana.md", + "liph/Dab Dana.md", + "liph/Categories/People.md", + "liph/Oracel/QueenOfTheMoon/2026-03-03.md", + "liph/Oracel/Maya/Maya geburtshoroskop.md", + "liph/Oracel/Maya/2026-03-12_Authentizität.md.md", + "liph/Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "liph/Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "liph/Oracel/Runenorakel", + "liph/Oracel/QueenOfTheMoon", + "liph/Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "liph/Oracel/Moonology", + "liph/Oracel/Maya", + "liph/Oracel", + "liph/Categories/Products.md", + "liph/Categories/Albums.md", + "liph/_templates/_bases/Companies.base", + "liph/_templates/_bases/Projects.base", "kapano/Attachments/out-of-control.jpg" ] } \ No newline at end of file diff --git a/.stversions/.obsidian/workspace.json b/.stversions/.obsidian/workspace.json index c698ee9..0aa61df 100755 --- a/.stversions/.obsidian/workspace.json +++ b/.stversions/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "7c111351862536fa", + "id": "cd114faff4d50a5a", "type": "tabs", "children": [ { - "id": "c7f3b3411e63e695", + "id": "3254c248d9281469", "type": "leaf", "state": { "type": "empty", @@ -176,43 +176,44 @@ "bases:Create new base": false } }, - "active": "c7f3b3411e63e695", + "active": "3254c248d9281469", "lastOpenFiles": [ - "liph/Notes/Daily/2026/05/2026-05-07 Thu.md", - "liph/Notes/Daily/2026/05", - "liph/Notes/Daily/2026", - "liph/Notes/Weekly/2026-19.md", - "liph/Notes/Daily/2026-05-05 Tue.md", - "liph/Notes/Daily/2026-05-06 Wed.md", - "liph/Notes/Daily/2026-05-07 Thu.md", - "liph/Notes/Daily/2026/05/2026-05-07.md", - "liph/Notes/Weekly/2026/05/2026-19.md", - "liph/Notes/Daily/2026/05/2026-05-05 Tue.md", - "liph/Notes/Daily/2026/05/2026-05-06 Wed.md", - "liph/Notes/Weekly/2026/05", - "liph/Notes/Weekly/2026", - "liph/Notes/Weekly", - "liph/Notes/Daily", - "liph/Notes", - "liph/Tasks/_templates/Project.md", - "liph/Tasks/_templates/Meetings.md", - "liph/Tasks/_templates/Daily Notes.md", - "liph/Tasks/_templates/Unique.md", - "liph/Tasks/_templates", - "liph/_templates/Project.md", - "liph/_templates/Daily Notes.md", - "liph/_templates/Meetings.md", - "liph/_templates/Unique.md", - "liph/_templates", - "liph/Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", - "liph/Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", - "liph/Tasks/Notes/Weekly/2026/05/2026-19.md", - "liph/Tasks/Recurring.md", - "liph/Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", - "liph/other/spinstack.md", - "liph/Tasks/Areas/Work.md", - "liph/breathwork_facilitator/Hypnosis.md", - "liph/Tasks/Areas/Untitled.base", + "liph/_templates/Oracle Cards template.md", + "liph/References/Queen of the moon.md", + "liph/References/Untitled.md", + "liph/_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "liph/_templates/_bases/Oracle.base", + "liph/_templates/_bases/Untitled.base", + "liph/Categories/Oracle.md", + "liph/Categories/Untitled.md", + "liph/References/Runenorakel.md", + "liph/_templates/Oracle Cards templateo.md", + "liph/_templates/Board Game Template 1.md", + "liph/References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "liph/References/Level 8.md", + "liph/References/Giten Tonkov.md", + "liph/Giten Tonkov.md", + "liph/References/Feel to heal.md", + "liph/Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "liph/References/Dab Dana.md", + "liph/Dab Dana.md", + "liph/Categories/People.md", + "liph/Oracel/QueenOfTheMoon/2026-03-03.md", + "liph/Oracel/Maya/Maya geburtshoroskop.md", + "liph/Oracel/Maya/2026-03-12_Authentizität.md.md", + "liph/Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "liph/Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "liph/Oracel/Runenorakel", + "liph/Oracel/QueenOfTheMoon", + "liph/Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "liph/Oracel/Moonology", + "liph/Oracel/Maya", + "liph/Oracel", + "liph/Categories/Products.md", + "liph/Categories/Albums.md", + "liph/Categories/Meetings.md", + "liph/_templates/_bases/Companies.base", + "liph/_templates/_bases/Projects.base", "kapano/Attachments/out-of-control.jpg" ] } \ No newline at end of file diff --git a/.stversions/liph/.obsidian/plugins/colored-tags/data.json b/.stversions/liph/.obsidian/plugins/colored-tags/data.json index 9aa7fe8..3666ca6 100755 --- a/.stversions/liph/.obsidian/plugins/colored-tags/data.json +++ b/.stversions/liph/.obsidian/plugins/colored-tags/data.json @@ -10,18 +10,12 @@ "highTextContrast": false }, "knownTags": { - "anette": 5, - "camper": 2, - "daily": 12, - "diemaske": 6, - "finance": 10, - "legung": 7, - "meetings": 13, - "note": 9, - "notes": 15, - "personal": 11, - "project": 14, - "runenorakel": 8 + "daily": 3, + "finance": 5, + "finished": 12, + "notes": 9, + "personal": 10, + "to-read": 11 }, "tagColors": { "breath": 1, diff --git a/.stversions/liph/.obsidian/plugins/obsidian-day-planner/data.json b/.stversions/liph/.obsidian/plugins/obsidian-day-planner/data.json index 0717cf4..5c365a6 100755 --- a/.stversions/liph/.obsidian/plugins/obsidian-day-planner/data.json +++ b/.stversions/liph/.obsidian/plugins/obsidian-day-planner/data.json @@ -7,7 +7,7 @@ "endLabel": "All done", "startHour": 6, "timelineDateFormat": "YYYY-MM-DD ddd", - "centerNeedle": true, + "centerNeedle": false, "plannerHeading": "Daily Tasks", "plannerHeadingLevel": 2, "timelineColored": false, @@ -34,7 +34,7 @@ "eventFormatOnCreation": "task", "sortTasksInPlanAfterEdit": true, "firstDayOfWeek": "monday", - "multiDayRange": "work-week", + "multiDayRange": "full-week", "showTimeTracker": false, "showActiveClocks": false, "rawIcals": [] diff --git a/.stversions/liph/.obsidian/workspace-mobile.json b/.stversions/liph/.obsidian/workspace-mobile.json index ccae6cb..2d67f95 100644 --- a/.stversions/liph/.obsidian/workspace-mobile.json +++ b/.stversions/liph/.obsidian/workspace-mobile.json @@ -13,26 +13,15 @@ "state": { "type": "markdown", "state": { - "file": "Notes/Daily/2026-05-06 Wed.md", + "file": "Tasks/_utilities/Deadlines.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "2026-05-06 Wed" - } - }, - { - "id": "2ee2b607ba67f29c", - "type": "leaf", - "state": { - "type": "planner-weekly", - "state": {}, - "icon": "table-2", - "title": "May, 4–May, 8" + "title": "Deadlines" } } - ], - "currentTab": 1 + ] } ], "direction": "vertical" @@ -111,7 +100,7 @@ } } ], - "currentTab": 0 + "currentTab": 4 }, "right": { "id": "eac894ce96138de9", @@ -123,7 +112,7 @@ "state": { "type": "backlink", "state": { - "file": "Tasks/_utilities/Deadlines.md", + "file": "Notes/Daily/2026-05-07 Thu.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -186,10 +175,11 @@ } } ], - "currentTab": 0 + "currentTab": 4 }, "left-ribbon": { "hiddenItems": { + "templater-obsidian:Templater": false, "switcher:Open quick switcher": false, "graph:Open graph view": false, "canvas:Create new canvas": false, @@ -200,11 +190,13 @@ "bases:Create new base": false, "obsidian-day-planner:Open Timeline": false, "obsidian-day-planner:Open Multi-Day View": false, - "omnisearch:Omnisearch": false + "omnisearch:Omnisearch": false, + "periodic-notes:Open today": false } }, - "active": "2ee2b607ba67f29c", + "active": "d02e3470886ead5b", "lastOpenFiles": [ + "Dreams/dreamdiary/23.12.2025 Tue.md", "Notes/Daily/2026-05-06 Wed.md", "Notes/Daily/2026-05-07 Thu.md", "Tasks/_utilities/Deadlines.md", diff --git a/.stversions/liph/.obsidian/workspace.json b/.stversions/liph/.obsidian/workspace.json index 222c291..8f5a2a2 100755 --- a/.stversions/liph/.obsidian/workspace.json +++ b/.stversions/liph/.obsidian/workspace.json @@ -4,49 +4,24 @@ "type": "split", "children": [ { - "id": "6277d6140f31fca6", + "id": "bd0326f3c1ebea17", "type": "tabs", "children": [ { - "id": "18d5456e67029b84", + "id": "d6c7bd37e0cabd8d", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Tasks/Notes/Weekly/2026/05/2026-19.md", + "file": "Oracel/Maya/Untitled.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "2026-19" - } - }, - { - "id": "3a65b426d070fbf4", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Tasks/_utilities/Deadlines.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Deadlines" - } - }, - { - "id": "92c1d28dd2deffbc", - "type": "leaf", - "state": { - "type": "planner-weekly", - "state": {}, - "icon": "lucide-ghost", - "title": "planner-weekly" + "title": "Untitled" } } - ], - "currentTab": 1 + ] } ], "direction": "vertical" @@ -128,7 +103,7 @@ "state": { "type": "backlink", "state": { - "file": "_utilities/Deadlines.md", + "file": "Oracel/Maya/Untitled.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -138,7 +113,7 @@ "unlinkedCollapsed": true }, "icon": "links-coming-in", - "title": "Backlinks for Deadlines" + "title": "Backlinks for Untitled" } }, { @@ -147,12 +122,12 @@ "state": { "type": "outgoing-link", "state": { - "file": "Welcome.md", + "file": "Oracel/Maya/Untitled.md", "linksCollapsed": false, "unlinkedCollapsed": true }, "icon": "links-going-out", - "title": "Outgoing links from Welcome" + "title": "Outgoing links from Untitled" } }, { @@ -205,8 +180,8 @@ "state": { "type": "planner-timeline", "state": {}, - "icon": "lucide-ghost", - "title": "planner-timeline" + "icon": "calendar-with-checkmark", + "title": "Timeline" } }, { @@ -222,6 +197,16 @@ { "id": "0b9ca99a53174582", "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", "state": { "type": "planner-timeline", "state": {}, @@ -229,8 +214,7 @@ "title": "Timeline" } } - ], - "currentTab": 6 + ] }, { "id": "0a23d5e86baba90a", @@ -243,16 +227,15 @@ "state": { "type": "calendar", "state": {}, - "icon": "lucide-ghost", - "title": "calendar" + "icon": "calendar-with-checkmark", + "title": "Calendar" } } ] } ], "direction": "horizontal", - "width": 300, - "collapsed": true + "width": 300 }, "left-ribbon": { "hiddenItems": { @@ -265,47 +248,50 @@ "bases:Create new base": false, "zk-prefixer:Create new unique note": false, "obsidian-day-planner:Open Timeline": false, - "obsidian-day-planner:Open Multi-Day View": false + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false } }, - "active": "3a65b426d070fbf4", + "active": "d6c7bd37e0cabd8d", "lastOpenFiles": [ - "Tasks/Notes/Weekly/2026/05/2026-19.md", - "Tasks/Notes/Daily/2026/05/2026-05-07 Thu.md", - "Tasks/Notes/Daily/2026/05/2026-05-05 Tue.md", - "Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", - "Tasks/_templates/Daily Notes.md", - "Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", + "_templates/Oracle template.md", + "Oracel/Maya/Untitled.md", + "Categories/Oracle.md", + "_templates/Oracle Cards template.md", + "References/Runenorakel.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "References/Queen of the moon.md", + "_templates/_bases/Oracle.base", + "Categories/Books.md", + "_templates/Books template.md", + "_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "_templates/_bases/Books.base", + "Categories/Albums.md", + "_templates/Board Game Template.md", + "References/Level 8.md", + "Categories/Board games.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Giten Tonkov.md", + "References/Feel to heal.md", + "References/Dab Dana.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/City Template.md", + "References/I Swear.md", + "References/Oxygen Advantage.md", "Tasks/_utilities/Deadlines.md", - "Tasks/_utilities/Anytime.md", - "Tasks/_templates/Unique.md", - "Tasks/Notes/Daily", - "Tasks/Notes", - "Tasks/Untitled.md", - "Tasks/Notes/Weekly/2026/05", - "Tasks/Notes/Weekly/2026", - "Tasks/Weekly/2026/19/2026-19.md", - "Tasks/Weekly/2026/19", - "Tasks/1900245/4/20262026/2026/19/2026-19.md", - "Tasks/1900245/4/20262026/2026/19", - "Tasks/1900245/4/20262026/2026", - "Tasks/1900245/4/20262026", - "Tasks/1900245/4", - "Tasks/1900245", - "Tasks/2026-05-19.md", - "2026-W19.md", - "Tasks/_templates/Meetings.md", - "Tasks/_templates/Project.md", - "Tasks/2026/05/2026-05-05 Tue 1.md", - "2026-05-07.md", - "Tasks/2026/05/2026-05-08 Fri.md", - "Tasks/_utilities/Today.md", - "Tasks/_utilities/Upcomming.md", - "Tasks/_utilities/Inbox.md", - "Tasks/_utilities/Someday.md", - "2026-05-08.md", - "Tasks/Recurring.md", - "Untitled.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", "kapano/Attachments/out-of-control.jpg", "Pasted image 20260504234500.png" ] diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081221-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081221-IBX6ESZ.json new file mode 100755 index 0000000..bb0af56 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081221-IBX6ESZ.json @@ -0,0 +1,300 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-06 Wed.md", + "mode": "preview", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-06 Wed" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_utilities/Deadlines.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Deadlines" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 6 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "lucide-ghost", + "title": "calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "periodic-notes:Open today": false, + "templater-obsidian:Templater": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/Undtitled.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "2026-05-08.md", + "Untitled 1.md", + "Untitled.md", + "Untitled", + "Tasks/_utilities/Deadlines.md", + "Tasks/Notes/Weekly/2026/05/2026-19.md", + "Tasks/Notes/Daily/2026/05/2026-05-07 Thu.md", + "Tasks/Notes/Daily/2026/05/2026-05-05 Tue.md", + "Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", + "Tasks/_templates/Daily Notes.md", + "Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_templates/Unique.md", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Untitled.md", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19/2026-19.md", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19/2026-19.md", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "Tasks/1900245/4/20262026", + "Tasks/1900245/4", + "Tasks/2026-05-19.md", + "2026-W19.md", + "Tasks/_templates/Meetings.md", + "Tasks/_templates/Project.md", + "Tasks/2026/05/2026-05-05 Tue 1.md", + "2026-05-07.md", + "Tasks/2026/05/2026-05-08 Fri.md", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081318-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081318-IBX6ESZ.json new file mode 100755 index 0000000..ed2978e --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081318-IBX6ESZ.json @@ -0,0 +1,300 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-06 Wed.md", + "mode": "preview", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-06 Wed" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_utilities/Deadlines.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Deadlines" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 6 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "lucide-ghost", + "title": "calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "periodic-notes:Open today": false, + "templater-obsidian:Templater": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Notes/1-Daily/2026-05-08 Fri.sync-conflict-20260508-081307-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/Undtitled.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "2026-05-08.md", + "Untitled 1.md", + "Untitled.md", + "Untitled", + "Tasks/_utilities/Deadlines.md", + "Tasks/Notes/Weekly/2026/05/2026-19.md", + "Tasks/Notes/Daily/2026/05/2026-05-07 Thu.md", + "Tasks/Notes/Daily/2026/05/2026-05-05 Tue.md", + "Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", + "Tasks/_templates/Daily Notes.md", + "Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_templates/Unique.md", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Untitled.md", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19/2026-19.md", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19/2026-19.md", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "Tasks/1900245/4/20262026", + "Tasks/1900245/4", + "Tasks/2026-05-19.md", + "2026-W19.md", + "Tasks/_templates/Meetings.md", + "Tasks/_templates/Project.md", + "Tasks/2026/05/2026-05-05 Tue 1.md", + "2026-05-07.md", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081804-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081804-QI4N5GS.json new file mode 100755 index 0000000..679359c --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081804-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "2026-05-10.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-10" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "2026-05-10.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-10" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "2026-05-09.md", + "2026-05-10.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "2026-05-09.sync-conflict-20260508-081719-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.sync-conflict-20260508-081307-IBX6ESZ.md", + "Tasks/Projects/Active/Camper.md", + "Tasks/Areas/Camper.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_utilities/Someday.md", + "Tasks/_utilities/Upcomming.md", + "Tasks/_utilities/Today.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "_templates/Daily Notes.md", + "Breathwork/Breathwork.md", + "Tasks/Recurring.md", + "Steuerfrist.md", + "Notes/2-Weekly/2026-19.md", + "Breathwork/Hypnosis.md", + "Notes/1-Daily/Undtitled.md", + "2026-05-08.md", + "Untitled 1.md", + "Untitled.md", + "Untitled", + "Tasks/_utilities/Deadlines.md", + "Tasks/Notes/Weekly/2026/05/2026-19.md", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "Tasks/1900245/4/20262026", + "Tasks/1900245/4", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081844-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081844-IBX6ESZ.json new file mode 100755 index 0000000..e54ba47 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-081844-IBX6ESZ.json @@ -0,0 +1,300 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-06 Wed.md", + "mode": "preview", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-06 Wed" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_utilities/Deadlines.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Deadlines" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 6 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "lucide-ghost", + "title": "calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "periodic-notes:Open today": false, + "templater-obsidian:Templater": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "2026-05-10.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-10.md", + "2026-05-09.md", + "2026-05-09.sync-conflict-20260508-081719-IBX6ESZ.md", + "2026-05-0.md", + "Notes/1-Daily/2026-05-08 Fri.sync-conflict-20260508-081307-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/Undtitled.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "2026-05-08.md", + "Untitled 1.md", + "Untitled.md", + "Untitled", + "Tasks/_utilities/Deadlines.md", + "Tasks/Notes/Weekly/2026/05/2026-19.md", + "Tasks/Notes/Daily/2026/05/2026-05-07 Thu.md", + "Tasks/Notes/Daily/2026/05/2026-05-05 Tue.md", + "Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", + "Tasks/_templates/Daily Notes.md", + "Tasks/Notes/Daily/2026/05/2026-05-06 Wed.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_templates/Unique.md", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Untitled.md", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19/2026-19.md", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19/2026-19.md", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "Tasks/1900245/4/20262026", + "Tasks/1900245/4", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-082105-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-082105-QI4N5GS.json new file mode 100755 index 0000000..d6119b2 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-082105-QI4N5GS.json @@ -0,0 +1,314 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-08 Fri" + } + }, + { + "id": "9caa426e5b581dfc", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "_templates/Projects.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Projects" + } + } + ], + "currentTab": 1 + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_templates/Projects.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Projects" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "9caa426e5b581dfc", + "lastOpenFiles": [ + "Tasks/Projects/Active/Home.md", + "_templates/Projects.md", + "Tasks/Projects/Active/Camper.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "2026-05-10.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.md", + "2026-05-10.md", + "2026-05-09.sync-conflict-20260508-081719-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.sync-conflict-20260508-081307-IBX6ESZ.md", + "Tasks/Areas/Camper.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_utilities/Someday.md", + "Tasks/_utilities/Upcomming.md", + "Tasks/_utilities/Today.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "_templates/Daily Notes.md", + "Breathwork/Breathwork.md", + "Tasks/Recurring.md", + "Steuerfrist.md", + "Notes/2-Weekly/2026-19.md", + "Breathwork/Hypnosis.md", + "Notes/1-Daily/Undtitled.md", + "2026-05-08.md", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "Tasks/1900245/4/20262026", + "Tasks/1900245/4", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-111812-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-111812-QI4N5GS.json new file mode 100755 index 0000000..edafdb1 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-111812-QI4N5GS.json @@ -0,0 +1,296 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Tasks/Projects/Active/Camper.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Camper" + } + }, + { + "id": "52c7a0fa9f0ac10c", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-08 Fri" + } + }, + { + "id": "fc92eca0d9b97e69", + "type": "leaf", + "state": { + "type": "bases", + "state": { + "file": "_templates/_bases/books.base", + "viewName": "Table" + }, + "icon": "lucide-table", + "title": "books" + } + } + ], + "currentTab": 2 + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.666666666666664, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.333333333333336, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": { + "file": "_templates/_bases/books.base" + }, + "icon": "lucide-info", + "title": "File properties for books" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_templates/_bases/books.base", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for books" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "_templates/_bases/books.base", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from books" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "_templates/_bases/books.base", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of books" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "fc92eca0d9b97e69", + "lastOpenFiles": [ + "Untitled 1.md", + "Untitled.md", + "_templates/places.md", + "_templates/_bases/books.base", + "_templates/_bases", + "_templates/Unique.md", + "_templates/Projects.md", + "_templates/Meetings.md", + "_templates/dreamdiary.md", + "_templates/Daily Notes.md", + "_templates/Extract Date Template.md", + "References/outline.md", + "References/Untitled.sync-conflict-20260508-105306-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Tasks/Recurring.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Tasks/_utilities/Deadlines.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "Tasks/Projects/Holding Tank/Lenco.md", + "_templates/Project.md", + "2026-05-10.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.md", + "2026-05-10.md", + "2026-05-09.sync-conflict-20260508-081719-IBX6ESZ.md", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "Tasks/1900245/4/20262026/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112017-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112017-IBX6ESZ.json new file mode 100755 index 0000000..794ad25 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112017-IBX6ESZ.json @@ -0,0 +1,314 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Tasks/Projects/Active/Camper.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Camper" + } + }, + { + "id": "9caa426e5b581dfc", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-08 Fri" + } + } + ], + "currentTab": 1 + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "9caa426e5b581dfc", + "lastOpenFiles": [ + "Breathwork/Untitled.md", + "_templates/books template.md", + "_templates/books.md", + "_templates/_bases/books.base", + "Untitled 1.md", + "Untitled.md", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "_templates/places.md", + "References/Untitled.sync-conflict-20260508-105306-IBX6ESZ.md", + "References/outline.md", + "References/Untitled.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "_templates/Projects.md", + "Tasks/Projects/Holding Tank/Lenco.md", + "_templates/Project.md", + "2026-05-10.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.md", + "2026-05-10.md", + "2026-05-09.sync-conflict-20260508-081719-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.sync-conflict-20260508-081307-IBX6ESZ.md", + "Tasks/Areas/Camper.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_utilities/Someday.md", + "Tasks/_utilities/Upcomming.md", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112901-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112901-IBX6ESZ.json new file mode 100755 index 0000000..9e170e7 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-112901-IBX6ESZ.json @@ -0,0 +1,314 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Tasks/Projects/Active/Camper.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Camper" + } + }, + { + "id": "9caa426e5b581dfc", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-05-08 Fri" + } + } + ], + "currentTab": 1 + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "9caa426e5b581dfc", + "lastOpenFiles": [ + "_templates/places template.md", + "_templates/meetings template.md", + "_templates/dreamdiary template.md", + "_templates/daily_notes template.md", + "_templates/_templater/created_templater.md", + "_templates/_templater/Untitled.md", + "_templates/_templater", + "_templates/Untitled", + "Breathwork/2026-10-12.md", + "Breathwork/Untitled.md", + "_templates/books template.md", + "_templates/books.md", + "_templates/_bases/books.base", + "Untitled 1.md", + "Untitled.md", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "_templates/places.md", + "References/Untitled.sync-conflict-20260508-105306-IBX6ESZ.md", + "References/outline.md", + "References/Untitled.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "_templates/Projects.md", + "Tasks/Projects/Holding Tank/Lenco.md", + "_templates/Project.md", + "2026-05-10.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.sync-conflict-20260508-081831-IBX6ESZ.md", + "2026-05-09.md", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135631-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135631-QI4N5GS.json new file mode 100755 index 0000000..1334ab1 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135631-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "Tasks/Projects/Active/home.md", + "Tasks/Projects/Active/Lenco.2.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Areas/Home.md", + "Tasks/Areas/camper.md", + "Tasks/Areas/Lenco.2.md", + "camper.md", + "Tasks/_utilities/Deadlines.md", + "Tasks/_utilities/Today.md", + "Tasks/_utilities/Recurring.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_utilities/Inbox.md", + "Tasks/_utilities/Upcomming.md", + "Tasks/_utilities/Someday.md", + "Tasks/Inbox.md", + "Tasks/Upcomming.md", + "Tasks/Deadlines.md", + "Tasks/Anytime.md", + "Tasks/Recurring.md", + "Tasks/Someday.md", + "Tasks/Today.md", + "_templates/projects template.md", + "_templates/dreamdiary template.md", + "_templates/books template.md", + "_templates/places template.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135645-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135645-QI4N5GS.json new file mode 100755 index 0000000..899311c --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135645-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "Tasks/Projects/Holding Tank/lenco.md", + "Tasks/Projects/Active/lenco.md", + "Tasks/Projects/Active/home.md", + "Tasks/Projects/Active/Lenco.2.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Areas/Home.md", + "Tasks/Areas/camper.md", + "Tasks/Areas/Lenco.2.md", + "camper.md", + "Tasks/_utilities/Deadlines.md", + "Tasks/_utilities/Today.md", + "Tasks/_utilities/Recurring.md", + "Tasks/_utilities/Anytime.md", + "Tasks/_utilities/Inbox.md", + "Tasks/_utilities/Upcomming.md", + "Tasks/_utilities/Someday.md", + "Tasks/Inbox.md", + "Tasks/Upcomming.md", + "Tasks/Deadlines.md", + "Tasks/Anytime.md", + "Tasks/Recurring.md", + "Tasks/Someday.md", + "Tasks/Today.md", + "_templates/projects template.md", + "_templates/dreamdiary template.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135841-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135841-QI4N5GS.json new file mode 100755 index 0000000..38e7e48 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135841-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "programming/Docker/Docker_stack.md", + "programming/Docker/Docker Containers.md", + "programming/spinstack.md", + "programming/notmich aerc install.md", + "programming/Samba shares miri.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "programming/Etc Mail-server.md", + "programming/Docker_stack.md", + "programming/Docker Containers.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "Tasks/Projects/Holding Tank/lenco.md", + "Tasks/Projects/Active/lenco.md", + "Tasks/Projects/Active/home.md", + "Tasks/Projects/Active/Lenco.2.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Areas/Home.md", + "Tasks/Areas/camper.md", + "Tasks/Areas/Lenco.2.md", + "camper.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135937-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135937-IBX6ESZ.json new file mode 100755 index 0000000..ce2b76e --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-135937-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "programming/Docker/Docker Containers.md", + "programming/Docker/Docker_stack.md", + "programming/Samba shares miri.md", + "programming/notmich aerc install.md", + "programming/spinstack.md", + "programming/Etc Mail-server.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "Tasks/Projects/Holding Tank/lenco.md", + "Tasks/Projects/Active/home.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Projects/Active/Lenco.2.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Areas/Lenco.2.md", + "Tasks/Areas/Home.md", + "Tasks/Areas/camper.md", + "camper.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140022-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140022-IBX6ESZ.json new file mode 100755 index 0000000..af986bb --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140022-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "programming/Docker/Docker Containers.md", + "programming/Docker/Docker_stack.md", + "programming/Samba shares miri.md", + "programming/notmich aerc install.md", + "programming/spinstack.md", + "programming/Etc Mail-server.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "Tasks/Projects/Holding Tank/lenco.md", + "Tasks/Projects/Active/home.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Projects/Active/Lenco.2.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140034-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140034-QI4N5GS.json new file mode 100755 index 0000000..976d801 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140034-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "programming/Docker/Docker_stack.md", + "programming/Docker/Docker Containers.md", + "programming/spinstack.md", + "programming/notmich aerc install.md", + "programming/Samba shares miri.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "programming/Etc Mail-server.md", + "programming/Docker_stack.md", + "programming/Docker Containers.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140041-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140041-QI4N5GS.json new file mode 100644 index 0000000..976d801 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140041-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "programming/Docker/Docker_stack.md", + "programming/Docker/Docker Containers.md", + "programming/spinstack.md", + "programming/notmich aerc install.md", + "programming/Samba shares miri.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "programming/Etc Mail-server.md", + "programming/Docker_stack.md", + "programming/Docker Containers.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140055-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140055-QI4N5GS.json new file mode 100755 index 0000000..6f46b93 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140055-QI4N5GS.json @@ -0,0 +1,273 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "fa22facc9ce228a2", + "type": "tabs", + "children": [ + { + "id": "a2092d3725f8f3ec", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 58.66666666666666, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 41.33333333333334, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 247.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 62.20806794055201, + "children": [ + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2cd19965c83d4da9", + "type": "leaf", + "state": { + "type": "file-properties", + "state": {}, + "icon": "lucide-info", + "title": "File properties" + } + }, + { + "id": "4cb682782337d560", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + } + ], + "currentTab": 1 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 37.79193205944799, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 273.5 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "a2092d3725f8f3ec", + "lastOpenFiles": [ + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "programming/Docker/Docker_stack.md", + "programming/Docker/Docker Containers.md", + "programming/spinstack.md", + "programming/notmich aerc install.md", + "programming/Samba shares miri.md", + "programming/DNS Records Quick Reference for Cloudflare.md", + "programming/Etc Mail-server.md", + "_templates/_bases/books.base", + "_templates/_templater", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "Tasks/Weekly/2026/19", + "Tasks/1900245/4/20262026/2026/19", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140259-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140259-QI4N5GS.json new file mode 100755 index 0000000..20d6292 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140259-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Personal.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Personal" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "References/outline.md", + "Someday.2.md", + "Work.md", + "Personal.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/2-Weekly/2026-19.3.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "_templates/unique template.md", + "_templates/daily_notes template.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140302-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140302-QI4N5GS.json new file mode 100644 index 0000000..20d6292 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140302-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Personal.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Personal" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "References/outline.md", + "Someday.2.md", + "Work.md", + "Personal.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/2-Weekly/2026-19.3.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "_templates/unique template.md", + "_templates/daily_notes template.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140316-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140316-IBX6ESZ.json new file mode 100755 index 0000000..563cb5f --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140316-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Personal.md", + "Tasks/Areas/Work.md", + "References/outline.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Dreams/dreamdiary/2026-05-07 Thu.10.md", + "Orakel/Maya/2026-03-12_Authentizität.md.md", + "Orakel/QueenOfTheMoon/2026-03-03.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "programming/Docker/Docker Containers.md", + "programming/Docker/Docker_stack.md", + "programming/Samba shares miri.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140433-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140433-QI4N5GS.json new file mode 100755 index 0000000..8366989 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-140433-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Musterauswertung_Die_Waage_2025-03-06" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Areas/personal.md", + "Tasks/_utilities/Anytime.md", + "References/outline.md", + "Tasks/Areas/work.md", + "Tasks/Areas/someday.md", + "Personal.md", + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Work.md", + "Tasks/Areas/Personal.md", + "Someday.2.md", + "Work.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/2-Weekly/2026-19.3.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "_templates/unique template.md", + "_templates/daily_notes template.md", + "Breathwork/Oxygen Advantage.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-141127-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-141127-IBX6ESZ.json new file mode 100644 index 0000000..6941aa7 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-141127-IBX6ESZ.json @@ -0,0 +1,294 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/_bases/Untitled.base", + "_templates/_bases/Untitled.md", + "_templates/oracle template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Areas/personal.md", + "Tasks/Areas/work.md", + "Tasks/Areas/someday.md", + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Personal.md", + "Tasks/Areas/Work.md", + "References/outline.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "Orakel/Musterauswertung_Die_Waage_2025-03-06.md", + "programming/color scheming.md", + "Orakel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases/books.base", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-143439-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-143439-IBX6ESZ.json new file mode 100755 index 0000000..31af369 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-143439-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/people.md", + "References/Patrick McKeown.md", + "Categories/books.md", + "Categories", + "References/Oxygen Advantage.md", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases/Untitled.md", + "_templates/oracle template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Areas/personal.md", + "Tasks/Areas/work.md", + "Tasks/Areas/someday.md", + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Personal.md", + "Tasks/Areas/Work.md", + "References/outline.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/2-Weekly/2026-19.3.md", + "Breathwork/Oxygen Advantage.md", + "programming/Complete Mail Server Setup Guide.md", + "Orakel/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Orakel/Maya geburtshoroskop.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145158-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145158-IBX6ESZ.json new file mode 100755 index 0000000..b47e816 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145158-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/movie template.md", + "Authors.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "References/Untitled.md", + "Categories/people.md", + "References/Patrick McKeown.md", + "Categories/books.md", + "Categories", + "References/Oxygen Advantage.md", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases/Untitled.md", + "_templates/oracle template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Areas/personal.md", + "Tasks/Areas/work.md", + "Tasks/Areas/someday.md", + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Personal.md", + "Tasks/Areas/Work.md", + "References/outline.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Notes/1-Daily/2026-05-08 Fri.5.md", + "Notes/2-Weekly/2026-19.3.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145517-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145517-QI4N5GS.json new file mode 100755 index 0000000..74ad93c --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145517-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "_templates/i swearI.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "i swearI" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/oracle template.md", + "_templates/i swearI.md", + "_templates/author template.md", + "Authors.md", + "_templates/books template.md", + "Categories/people.md", + "Categories/books.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "References/Patrick McKeown.md", + "References/Oxygen Advantage.md", + "_templates/unique template.md", + "_templates/_bases/books.base", + "Categories", + "_templates/_bases/Untitled.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breath.md", + "Breathwork/Breat_notes.md", + "Tasks/_utilities/Deadlines.md", + "_templates/daily_notes template.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Projects/Active/camper.md", + "Tasks/Areas/personal.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145538-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145538-IBX6ESZ.json new file mode 100755 index 0000000..fcd0e3d --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-145538-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/i swearI.md", + "_templates/i swear.md", + "_templates/movie template.md", + "Authors.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "References/Untitled.md", + "Categories/people.md", + "References/Patrick McKeown.md", + "Categories/books.md", + "Categories", + "References/Oxygen Advantage.md", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_bases/Untitled.md", + "_templates/oracle template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Tasks/Areas/personal.md", + "Tasks/Areas/work.md", + "Tasks/Areas/someday.md", + "Tasks/Areas/Someday.2.md", + "Tasks/Areas/Personal.md", + "Tasks/Areas/Work.md", + "References/outline.md", + "Notes/1-Daily/2026-05-07 Thu.11.md", + "Notes/1-Daily/2026-05-06 Wed.5.md", + "_templates/daily_notes template.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150746-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150746-QI4N5GS.json new file mode 100755 index 0000000..082b836 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150746-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Notes/2-Weekly/2026-19.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "2026-19" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "0f37b3758387bd06", + "lastOpenFiles": [ + "Categories/books.md", + "Categories/movies.md", + "Categories/people.md", + "References/Patrick McKeown.md", + "References/Oxygen Advantage.md", + "References/i swear.md", + "_templates/_bases/movies.base", + "_templates/_bases/books.base", + "_templates/movie template.md", + "_templates/oracle template.md", + "_templates/author template.md", + "Authors.md", + "_templates/books template.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/unique template.md", + "Categories", + "_templates/_bases/Untitled.md", + "Breathwork/Hypnosis.md", + "Breathwork/Breath.md", + "Breathwork/Breat_notes.md", + "Tasks/_utilities/Deadlines.md", + "_templates/daily_notes template.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Orakel/Maya/Maya geburtshoroskop.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150909-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150909-QI4N5GS.json new file mode 100755 index 0000000..f7d0822 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150909-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "_templates/dreamdiary template.md", + "mode": "source", + "source": true + }, + "icon": "lucide-file", + "title": "dreamdiary template" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/Daily_notes template.md", + "_templates/Books template.md", + "_templates/Author template.md", + "_templates/_bases/Movies.base", + "_templates/_bases/Books.base", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "Breathwork/Hypnosis.md", + "Categories/books.md", + "Notes/2-Weekly/2026-19.md", + "Categories/movies.md", + "Categories/people.md", + "References/Patrick McKeown.md", + "References/Oxygen Advantage.md", + "References/i swear.md", + "_templates/movie template.md", + "_templates/oracle template.md", + "Authors.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/unique template.md", + "Categories", + "_templates/_bases/Untitled.md", + "Tasks/_utilities/Deadlines.md", + "_templates/dreamdiary template.md", + "_templates/meetings template.md", + "_templates/places template.md", + "_templates/projects template.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150939-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150939-QI4N5GS.json new file mode 100755 index 0000000..d318871 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-150939-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Categories/books.md", + "mode": "source", + "source": true + }, + "icon": "lucide-file", + "title": "books" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/Unique template.md", + "_templates/Projects template.md", + "_templates/Places template.md", + "_templates/Oracle template.md", + "_templates/Movie template.md", + "_templates/Meetings template.md", + "_templates/Dreamdiary template.md", + "_templates/Daily_notes template.md", + "_templates/Books template.md", + "_templates/Author template.md", + "_templates/_bases/Movies.base", + "_templates/_bases/Books.base", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "Breathwork/Hypnosis.md", + "Categories/books.md", + "Notes/2-Weekly/2026-19.md", + "Categories/movies.md", + "Categories/people.md", + "References/Patrick McKeown.md", + "References/Oxygen Advantage.md", + "References/i swear.md", + "Authors.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "Categories", + "_templates/_bases/Untitled.md", + "Tasks/_utilities/Deadlines.md", + "Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Tasks/Notes/Daily", + "Tasks/Notes", + "Tasks/Notes/Weekly/2026/05", + "Tasks/Notes/Weekly/2026", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151202-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151202-IBX6ESZ.json new file mode 100755 index 0000000..c6ca957 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151202-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Tasks/Projects/Active/Camper.md", + "Categories/People.md", + "Categories/Movies.md", + "Categories/Books.md", + "_templates/Projects template.md", + "_templates/Unique template.md", + "_templates/Oracle template.md", + "_templates/Places template.md", + "_templates/Movie template.md", + "_templates/Dreamdiary template.md", + "_templates/Meetings template.md", + "_templates/Books template.md", + "_templates/Daily_notes template.md", + "_templates/Author template.md", + "_templates/_bases/Movies.base", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "_templates/_bases/Books.base", + "Breathwork/breat_notes.md", + "Breathwork/breath.md", + "Notes/2-Weekly/2026-19.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Categories/movies.md", + "_templates/_bases/movies.base", + "Categories/movie.md", + "References/i swear.md", + "_templates/movie template.md", + "Categories", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151217-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151217-IBX6ESZ.json new file mode 100755 index 0000000..5a7ac4d --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151217-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Tasks/Projects/Holding Tank/Lenco.md", + "Tasks/Areas/Personal.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "Categories/People.md", + "Categories/Movies.md", + "Categories/Books.md", + "_templates/Projects template.md", + "_templates/Unique template.md", + "_templates/Oracle template.md", + "_templates/Places template.md", + "_templates/Movie template.md", + "_templates/Dreamdiary template.md", + "_templates/Meetings template.md", + "_templates/Books template.md", + "_templates/Daily_notes template.md", + "_templates/Author template.md", + "_templates/_bases/Movies.base", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "_templates/_bases/Books.base", + "Breathwork/breat_notes.md", + "Breathwork/breath.md", + "Notes/2-Weekly/2026-19.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Categories/movies.md", + "_templates/_bases/movies.base", + "Categories", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151255-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151255-IBX6ESZ.json new file mode 100644 index 0000000..0440597 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151255-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Tasks/Areas/Someday.md", + "Tasks/Projects/Holding Tank/Lenco.md", + "Tasks/Areas/Personal.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "Categories/People.md", + "Categories/Movies.md", + "Categories/Books.md", + "_templates/Projects template.md", + "_templates/Unique template.md", + "_templates/Oracle template.md", + "_templates/Places template.md", + "_templates/Movie template.md", + "_templates/Dreamdiary template.md", + "_templates/Meetings template.md", + "_templates/Books template.md", + "_templates/Daily_notes template.md", + "_templates/Author template.md", + "_templates/_bases/Movies.base", + "Breathwork/Breat_notes.md", + "Breathwork/Breath.md", + "_templates/_bases/Books.base", + "Breathwork/breat_notes.md", + "Breathwork/breath.md", + "Notes/2-Weekly/2026-19.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "_templates/_bases/movies.base", + "Categories", + "_templates/_bases/books.base", + "_templates/_bases/Untitled.base", + "_templates/_templater", + "_templates/Untitled", + "_templates/_bases", + "Untitled", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151953-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151953-QI4N5GS.json new file mode 100755 index 0000000..db58cd8 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-151953-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Categories/Places.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Places" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/_bases/Movies.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Games.base", + "_templates/_bases/People.base", + "_templates/_bases/Places.base", + "_templates/_bases/Podcasts.base", + "_templates/_bases/Map.base", + "Categories/Places.md", + "Categories/People.md", + "Categories/Movies.md", + "Categories/Books.md", + "Tasks/Areas/Personal.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "References/I Swear.md", + "Dreams/dreamdiary/2026-05-07 Thu.md", + "References/Oxygen Advantage.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "drama.md", + "Tasks/Areas/Work.md", + "Tasks/Areas/Someday.md", + "Tasks/Projects/Holding Tank/Lenco.md", + "Tasks/Projects/Active/Home.md", + "Tasks/Projects/Active/Camper.md", + "Authors.md", + "_templates/Unique template.md", + "_templates/Projects template.md", + "_templates/Places template.md", + "_templates/Oracle template.md", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152205-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152205-IBX6ESZ.json new file mode 100755 index 0000000..f1c252c --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152205-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "Categories/Trips.md", + "Categories/Evergreen.md", + "Categories/Podcasts.md", + "Categories/Companies.md", + "Categories/Podcast episodes.md", + "Categories/Board games.md", + "Categories/Recipes.md", + "Categories/Movies_1.md", + "Categories/Places_1.md", + "Categories/Journal.md", + "Categories/Clippings.md", + "Categories/People_1.md", + "Categories/Events.md", + "Categories/Games.md", + "Categories/Projects.md", + "_templates/Coffee Template.md", + "_templates/Show Episode Template.md", + "_templates/Movie Template.md", + "_templates/App Template.md", + "_templates/Video Game Genre Template.md", + "_templates/Restaurant Template.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "_templates/_bases/Attachments.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Podcasts.base", + "_templates/_bases/Products.base", + "_templates/_bases/Templates.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152805-IBX6ESZ.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152805-IBX6ESZ.json new file mode 100755 index 0000000..94b1be7 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-152805-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "Categories/Trips.md", + "Categories/Evergreen.md", + "Categories/Podcasts.md", + "Categories/Companies.md", + "Categories/Podcast episodes.md", + "Categories/Board games.md", + "Categories/Recipes.md", + "Categories/Movies_1.md", + "Categories/Places_1.md", + "Categories/Journal.md", + "Categories/Clippings.md", + "Categories/People_1.md", + "Categories/Events.md", + "Categories/Games.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-155834-QI4N5GS.json b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-155834-QI4N5GS.json new file mode 100755 index 0000000..8858bb1 --- /dev/null +++ b/.stversions/liph/.obsidian/workspace.sync-conflict-20260508-155834-QI4N5GS.json @@ -0,0 +1,299 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "References/Untitled.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Untitled" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "References/Untitled.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "References/Oxygen Advantage.md", + "Categories/Books.md", + "References/Patrick McKeown.md", + "_templates/_bases/Attachments.base", + "_templates/Genre Template.md", + "_templates/Food Template.md", + "_templates/Stock Trade Template.md", + "Categories/Products.md", + "Categories/Recipes.md", + "Categories/Podcasts.md", + "Categories/Movies.md", + "Categories/Places.md", + "_templates/_bases/Movies.base", + "_templates/Books template.md", + "_templates/Book Template.md", + "_templates/Author Template.md", + "_templates/_bases/Books.base", + "_templates/_bases/Board games.base", + "Categories/Albums.md", + "Categories/People.md", + "Categories/Places_1.md", + "Categories/Movies_1.md", + "Categories/Books_1.md", + "Categories/Podcast episodes.md", + "Categories/Board games.md", + "Categories/Clippings.md", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Games.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/Tasks/_templates/Unique.md b/.stversions/liph/2026-05-08.md similarity index 75% rename from liph/Tasks/_templates/Unique.md rename to .stversions/liph/2026-05-08.md index c1322f9..08540f5 100755 --- a/liph/Tasks/_templates/Unique.md +++ b/.stversions/liph/2026-05-08.md @@ -3,3 +3,5 @@ datum: tags: - note --- +## Test +- \ No newline at end of file diff --git a/liph/Notes/Weekly/2026-19.md b/.stversions/liph/Notes/1-Daily/Undtitled.md similarity index 100% rename from liph/Notes/Weekly/2026-19.md rename to .stversions/liph/Notes/1-Daily/Undtitled.md diff --git a/.stversions/liph/Untitled.md b/.stversions/liph/Untitled.md new file mode 100755 index 0000000..de6a40c --- /dev/null +++ b/.stversions/liph/Untitled.md @@ -0,0 +1,7 @@ +[[lucid dream manifest]] + + + + + + diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/kapano/.obsidian/workspace.json b/kapano/.obsidian/workspace.json index 2aafae1..7bbeb5b 100755 --- a/kapano/.obsidian/workspace.json +++ b/kapano/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "Templates/Meditation Template.md", + "file": "Categories/Projects.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Meditation Template" + "title": "Projects" } } ] @@ -159,44 +159,44 @@ "templater-obsidian:Templater": false } }, - "active": "9ef441043be4d5ca", + "active": "b8a1d6a7b9f31a0a", "lastOpenFiles": [ - "Templates/People Template.md", - "Templates/Podcast Episode Template.md", - "Templates/Show Template.md", - "Templates/Product Template.md", - "Templates/Post Template.md", + "Categories/Podcasts.md", + "Categories/Board games.md", + "Categories/Albums.md", + "Templates/Bases/Movies.base", + "Templates/Movie Template.md", + "Templates/Author Template.md", + "Authors.md", + "Templates/Actor Template.md", + "References/Out of Control.md", + "Categories/Books.md", + "References/Kevin Kelly.md", + "Templates/Book Template.md", + "Templates/Bases/Books.base", + "Templates/Place Template.md", + "Templates/City Template.md", + "Categories/Recipes.md", + "Categories/Shows.md", + "Categories/Trips.md", + "Notes/test city.md", + "Notes/Product usage analysis.md", + "Notes/Minimal Theme.md", + "Notes/Evergreen notes turn ideas into objects that you can manipulate.md", + "Notes/2023-09-12 Meeting with Steph.md", + "Notes/2023 Japan Trip.md", + "References/Kyoto.md", + "Templates/Place Type Template.md", + "Templates/Trip Template.md", + "Templates/Bases/Trips.base", + "Templates/Bases/Map.base", + "Templates/Bases/Places.base", + "References/Obsidian.md", "Templates/Bases/Games.base", "Templates/Bases/Everything.base", "Templates/Bases/Evergreen.base", "Templates/Bases/Companies.base", "Templates/Bases/Board games.base", - "Templates/Bases/Attachments.base", - "Templates/Bases/Albums.base", - "Categories/Podcast episodes.md", - "Categories/Companies.md", - "Categories/Clippings.md", - "Categories/Books.md", - "Categories/Board games.md", - "Categories/Albums.md", - "Categories/Posts.md", - "Categories/Podcasts.md", - "Categories/People.md", - "Categories/Movies.md", - "Categories/Meetings.md", - "Templates/Bases/Ratings.base", - "Templates/Daily Note Template.md", - "Templates/Bases/Map.base", - "References/Fushimi Inari.md", - "Templates/Bases/Places.base", - "Notes/2023-09-12 Meeting with Steph.md", - "References/Out of Control.md", - "Notes/Minimal Theme.md", - "Notes/Product usage analysis.md", - "Notes/Evergreen notes turn ideas into objects that you can manipulate.md", - "Clippings/Buy wisely.md", - "Untitled 1.md", - "Untitled 2.md", "Attachments/out-of-control.jpg" ] } \ No newline at end of file diff --git a/kapano/Authors.md b/kapano/Authors.md new file mode 100755 index 0000000..e69de29 diff --git a/kapano/Notes/test city.md b/kapano/Notes/test city.md new file mode 100755 index 0000000..f93ef12 --- /dev/null +++ b/kapano/Notes/test city.md @@ -0,0 +1,23 @@ +--- +categories: + - "[[Places]]" +type: + - "[[Cities]]" +loc: + - Zurich +rating: +created: <% tp.date.now() %> +last: +coordinates: + - "35.021041" + - "135.7556075" +--- +## Trips + +![[Trips.base#Location]] + +## Places + +![[Map.base#Location]] + +![[Places.base#Location]] \ No newline at end of file diff --git a/kapano/Templates/Bases/Trips.base b/kapano/Templates/Bases/Trips.base index ddb324d..16ed3cc 100755 --- a/kapano/Templates/Bases/Trips.base +++ b/kapano/Templates/Bases/Trips.base @@ -36,3 +36,8 @@ views: - file.name - start - end + sort: + - property: start + direction: DESC + - property: file.name + direction: DESC diff --git a/liph/.obsidian/app.json b/liph/.obsidian/app.json index e609a07..86af82a 100755 --- a/liph/.obsidian/app.json +++ b/liph/.obsidian/app.json @@ -1,3 +1,7 @@ { - "promptDelete": false + "promptDelete": false, + "vimMode": true, + "defaultViewMode": "source", + "livePreview": false, + "alwaysUpdateLinks": true } \ No newline at end of file diff --git a/liph/.obsidian/appearance.json b/liph/.obsidian/appearance.json index c07a636..5355ca3 100755 --- a/liph/.obsidian/appearance.json +++ b/liph/.obsidian/appearance.json @@ -1,4 +1,5 @@ { "cssTheme": "Obsidian gruvbox", - "theme": "obsidian" + "theme": "obsidian", + "showRibbon": true } \ No newline at end of file diff --git a/liph/.obsidian/community-plugins.json b/liph/.obsidian/community-plugins.json index 05c8e90..2cdd94f 100755 --- a/liph/.obsidian/community-plugins.json +++ b/liph/.obsidian/community-plugins.json @@ -7,5 +7,7 @@ "tag-wrangler", "omnisearch", "quickadd", - "obsidian-icon-folder" + "obsidian-icon-folder", + "periodic-notes", + "templater-obsidian" ] \ No newline at end of file diff --git a/liph/.obsidian/core-plugins.json b/liph/.obsidian/core-plugins.json index 13327de..475b748 100755 --- a/liph/.obsidian/core-plugins.json +++ b/liph/.obsidian/core-plugins.json @@ -27,7 +27,7 @@ "workspaces": false, "file-recovery": true, "publish": false, - "sync": true, + "sync": false, "bases": true, "webviewer": false } \ No newline at end of file diff --git a/liph/.obsidian/daily-notes.json b/liph/.obsidian/daily-notes.json index a7878a2..184135c 100755 --- a/liph/.obsidian/daily-notes.json +++ b/liph/.obsidian/daily-notes.json @@ -1,5 +1,5 @@ { "format": "YYYY-MM-DD ddd", "template": "_templates/Daily Notes", - "folder": "Notes/Daily" + "folder": "Notes/1-Daily" } \ No newline at end of file diff --git a/liph/.obsidian/graph.json b/liph/.obsidian/graph.json index 42a46ec..e773643 100755 --- a/liph/.obsidian/graph.json +++ b/liph/.obsidian/graph.json @@ -1,22 +1,22 @@ { "collapse-filter": true, "search": "", - "showTags": false, - "showAttachments": false, + "showTags": true, + "showAttachments": true, "hideUnresolved": false, "showOrphans": true, "collapse-color-groups": true, "colorGroups": [], "collapse-display": true, - "showArrow": false, - "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, + "showArrow": true, + "textFadeMultiplier": 2, + "nodeSizeMultiplier": 0.552597354614646, "lineSizeMultiplier": 1, "collapse-forces": true, "centerStrength": 0.518713248970312, "repelStrength": 10, "linkStrength": 1, "linkDistance": 250, - "scale": 1, + "scale": 0.26773393464244893, "close": true } \ No newline at end of file diff --git a/liph/.obsidian/hotkeys.json b/liph/.obsidian/hotkeys.json index 1875d48..3533a1f 100755 --- a/liph/.obsidian/hotkeys.json +++ b/liph/.obsidian/hotkeys.json @@ -17,15 +17,6 @@ "key": "T" } ], - "daily-notes": [ - { - "modifiers": [ - "Mod", - "Meta" - ], - "key": "D" - } - ], "editor:insert-wikilink": [ { "modifiers": [ @@ -35,15 +26,6 @@ "key": "I" } ], - "zk-prefixer": [ - { - "modifiers": [ - "Mod", - "Meta" - ], - "key": "N" - } - ], "editor:insert-codeblock": [ { "modifiers": [ @@ -79,5 +61,77 @@ ], "key": "D" } + ], + "zk-prefixer": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "N" + } + ], + "periodic-notes:open-daily-note": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "D" + } + ], + "periodic-notes:open-monthly-note": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "M" + } + ], + "periodic-notes:open-quarterly-note": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "Q" + } + ], + "periodic-notes:open-weekly-note": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "W" + } + ], + "periodic-notes:open-yearly-note": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "Y" + } + ], + "obsidian-day-planner:show-multi-day-view": [ + { + "modifiers": [ + "Mod", + "Meta" + ], + "key": "P" + } + ], + "templater-obsidian:replace-in-file-templater": [ + { + "modifiers": [ + "Mod", + "Shift" + ], + "key": "R" + } ] } \ No newline at end of file diff --git a/liph/.obsidian/icons/font-awesome-brands.zip b/liph/.obsidian/icons/font-awesome-brands.zip new file mode 100755 index 0000000..62c4322 Binary files /dev/null and b/liph/.obsidian/icons/font-awesome-brands.zip differ diff --git a/liph/.obsidian/icons/font-awesome-regular.zip b/liph/.obsidian/icons/font-awesome-regular.zip new file mode 100755 index 0000000..62c4322 Binary files /dev/null and b/liph/.obsidian/icons/font-awesome-regular.zip differ diff --git a/liph/.obsidian/icons/font-awesome-solid.zip b/liph/.obsidian/icons/font-awesome-solid.zip new file mode 100755 index 0000000..62c4322 Binary files /dev/null and b/liph/.obsidian/icons/font-awesome-solid.zip differ diff --git a/liph/.obsidian/icons/tabler-icons.zip b/liph/.obsidian/icons/tabler-icons.zip new file mode 100755 index 0000000..9b24c06 Binary files /dev/null and b/liph/.obsidian/icons/tabler-icons.zip differ diff --git a/liph/.obsidian/icons/tabler-icons/Category.svg b/liph/.obsidian/icons/tabler-icons/Category.svg new file mode 100755 index 0000000..90fffd0 --- /dev/null +++ b/liph/.obsidian/icons/tabler-icons/Category.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/liph/.obsidian/icons/tabler-icons/Library.svg b/liph/.obsidian/icons/tabler-icons/Library.svg new file mode 100755 index 0000000..4c8ed84 --- /dev/null +++ b/liph/.obsidian/icons/tabler-icons/Library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/liph/.obsidian/icons/tabler-icons/Template.svg b/liph/.obsidian/icons/tabler-icons/Template.svg new file mode 100755 index 0000000..1fd433b --- /dev/null +++ b/liph/.obsidian/icons/tabler-icons/Template.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/liph/.obsidian/plugins/colored-tags/data.json b/liph/.obsidian/plugins/colored-tags/data.json old mode 100644 new mode 100755 index 7e5bcc9..15d0e22 --- a/liph/.obsidian/plugins/colored-tags/data.json +++ b/liph/.obsidian/plugins/colored-tags/data.json @@ -10,18 +10,26 @@ "highTextContrast": false }, "knownTags": { - "anette": 1, - "camper": 2, - "daily": 3, - "diemaske": 4, - "finance": 5, - "legung": 6, - "meetings": 7, - "note": 8, - "notes": 9, - "personal": 10, - "project": 11, - "runenorakel": 12 + "categories": 6, + "clippings": 9, + "daily": 1, + "events": 12, + "finance": 2, + "finished": 7, + "investment": 15, + "journal": 16, + "meditation": 17, + "meetings": 18, + "monthly": 19, + "movies": 20, + "note": 22, + "notes": 4, + "personal": 5, + "reading": 29, + "reviewed": 31, + "trade": 28, + "meetings/type": 1, + "movies/genres": 1 }, "tagColors": { "breath": 1, diff --git a/liph/.obsidian/plugins/obsidian-clipper/data.json b/liph/.obsidian/plugins/obsidian-clipper/data.json new file mode 100755 index 0000000..99a172f --- /dev/null +++ b/liph/.obsidian/plugins/obsidian-clipper/data.json @@ -0,0 +1,31 @@ +{ + "dailyNoteHeading": "", + "weeklyNoteHeading": "", + "tags": "", + "timestampFormat": "HH:mm", + "dateFormat": "MM/DD/YY", + "dailyOpenOnWrite": false, + "useDailyNote": false, + "dailyPosition": "append", + "useWeeklyNote": false, + "weeklyPosition": "append", + "weeklyOpenOnWrite": false, + "dailyEntryTemplateLocation": "", + "weeklyEntryTemplateLocation": "", + "topicEntryTemplateLocation": "", + "topicPosition": "append", + "topicOpenOnWrite": false, + "markdownSettings": { + "h1": "##", + "h2": "##", + "h3": "###", + "h4": "####", + "h5": "#####", + "h6": "######" + }, + "advanced": false, + "advancedStorageFolder": "clippings", + "captureComments": false, + "experimentalCanvas": false, + "experimentalBookmarkletComment": false +} \ No newline at end of file diff --git a/liph/.obsidian/plugins/obsidian-clipper/main.js b/liph/.obsidian/plugins/obsidian-clipper/main.js new file mode 100755 index 0000000..034d8a5 --- /dev/null +++ b/liph/.obsidian/plugins/obsidian-clipper/main.js @@ -0,0 +1,10951 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; +var __privateWrapper = (obj, member, setter, getter) => { + return { + set _(value) { + __privateSet(obj, member, value, setter); + }, + get _() { + return __privateGet(obj, member, getter); + } + }; +}; +var __privateMethod = (obj, member, method) => { + __accessCheck(obj, member, "access private method"); + return method; +}; + +// node_modules/obsidian-daily-notes-interface/dist/main.js +var require_main = __commonJS({ + "node_modules/obsidian-daily-notes-interface/dist/main.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var obsidian = require("obsidian"); + var DEFAULT_DAILY_NOTE_FORMAT = "YYYY-MM-DD"; + var DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww"; + var DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM"; + var DEFAULT_QUARTERLY_NOTE_FORMAT = "YYYY-[Q]Q"; + var DEFAULT_YEARLY_NOTE_FORMAT = "YYYY"; + function shouldUsePeriodicNotesSettings(periodicity) { + var _a, _b; + const periodicNotes = window.app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a[periodicity]) == null ? void 0 : _b.enabled); + } + function getDailyNoteSettings() { + var _a, _b, _c, _d; + try { + const { internalPlugins, plugins } = window.app; + if (shouldUsePeriodicNotesSettings("daily")) { + const { format: format3, folder: folder2, template: template2 } = ((_b = (_a = plugins.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.daily) || {}; + return { + format: format3 || DEFAULT_DAILY_NOTE_FORMAT, + folder: (folder2 == null ? void 0 : folder2.trim()) || "", + template: (template2 == null ? void 0 : template2.trim()) || "" + }; + } + const { folder, format: format2, template } = ((_d = (_c = internalPlugins.getPluginById("daily-notes")) == null ? void 0 : _c.instance) == null ? void 0 : _d.options) || {}; + return { + format: format2 || DEFAULT_DAILY_NOTE_FORMAT, + folder: (folder == null ? void 0 : folder.trim()) || "", + template: (template == null ? void 0 : template.trim()) || "" + }; + } catch (err) { + console.info("No custom daily note settings found!", err); + } + } + function getWeeklyNoteSettings() { + var _a, _b, _c, _d, _e, _f, _g; + try { + const pluginManager = window.app.plugins; + const calendarSettings = (_a = pluginManager.getPlugin("calendar")) == null ? void 0 : _a.options; + const periodicNotesSettings = (_c = (_b = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _b.settings) == null ? void 0 : _c.weekly; + if (shouldUsePeriodicNotesSettings("weekly")) { + return { + format: periodicNotesSettings.format || DEFAULT_WEEKLY_NOTE_FORMAT, + folder: ((_d = periodicNotesSettings.folder) == null ? void 0 : _d.trim()) || "", + template: ((_e = periodicNotesSettings.template) == null ? void 0 : _e.trim()) || "" + }; + } + const settings2 = calendarSettings || {}; + return { + format: settings2.weeklyNoteFormat || DEFAULT_WEEKLY_NOTE_FORMAT, + folder: ((_f = settings2.weeklyNoteFolder) == null ? void 0 : _f.trim()) || "", + template: ((_g = settings2.weeklyNoteTemplate) == null ? void 0 : _g.trim()) || "" + }; + } catch (err) { + console.info("No custom weekly note settings found!", err); + } + } + function getMonthlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings2 = shouldUsePeriodicNotesSettings("monthly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.monthly) || {}; + return { + format: settings2.format || DEFAULT_MONTHLY_NOTE_FORMAT, + folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom monthly note settings found!", err); + } + } + function getQuarterlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings2 = shouldUsePeriodicNotesSettings("quarterly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.quarterly) || {}; + return { + format: settings2.format || DEFAULT_QUARTERLY_NOTE_FORMAT, + folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom quarterly note settings found!", err); + } + } + function getYearlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings2 = shouldUsePeriodicNotesSettings("yearly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.yearly) || {}; + return { + format: settings2.format || DEFAULT_YEARLY_NOTE_FORMAT, + folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom yearly note settings found!", err); + } + } + function join(...partSegments) { + let parts = []; + for (let i = 0, l = partSegments.length; i < l; i++) { + parts = parts.concat(partSegments[i].split("/")); + } + const newParts = []; + for (let i = 0, l = parts.length; i < l; i++) { + const part = parts[i]; + if (!part || part === ".") + continue; + else + newParts.push(part); + } + if (parts[0] === "") + newParts.unshift(""); + return newParts.join("/"); + } + function basename(fullPath) { + let base = fullPath.substring(fullPath.lastIndexOf("/") + 1); + if (base.lastIndexOf(".") != -1) + base = base.substring(0, base.lastIndexOf(".")); + return base; + } + async function ensureFolderExists(path) { + const dirs = path.replace(/\\/g, "/").split("/"); + dirs.pop(); + 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.normalizePath(join(directory, filename)); + await ensureFolderExists(path); + return path; + } + async function getTemplateInfo(template) { + const { metadataCache, vault } = window.app; + const templatePath = obsidian.normalizePath(template); + if (templatePath === "/") { + return Promise.resolve(["", null]); + } + try { + const templateFile = metadataCache.getFirstLinkpathDest(templatePath, ""); + const contents = await vault.cachedRead(templateFile); + 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.Notice("Failed to read the daily note template"); + return ["", null]; + } + } + function getDateUID(date, granularity = "day") { + const ts = date.clone().startOf(granularity).format(); + return `${granularity}-${ts}`; + } + function removeEscapedCharacters(format2) { + return format2.replace(/\[[^\]]*\]/g, ""); + } + function isFormatAmbiguous(format2, granularity) { + if (granularity === "week") { + const cleanFormat = removeEscapedCharacters(format2); + return /w{1,2}/i.test(cleanFormat) && (/M{1,4}/.test(cleanFormat) || /D{1,4}/.test(cleanFormat)); + } + return false; + } + function getDateFromFile(file, granularity) { + return getDateFromFilename(file.basename, granularity); + } + function getDateFromPath(path, granularity) { + return getDateFromFilename(basename(path), granularity); + } + function getDateFromFilename(filename, granularity) { + const getSettings = { + day: getDailyNoteSettings, + week: getWeeklyNoteSettings, + month: getMonthlyNoteSettings, + quarter: getQuarterlyNoteSettings, + year: getYearlyNoteSettings + }; + const format2 = getSettings[granularity]().format.split("/").pop(); + const noteDate = window.moment(filename, format2, true); + if (!noteDate.isValid()) { + return null; + } + if (isFormatAmbiguous(format2, granularity)) { + if (granularity === "week") { + const cleanFormat = removeEscapedCharacters(format2); + if (/w{1,2}/i.test(cleanFormat)) { + return window.moment(filename, format2.replace(/M{1,4}/g, "").replace(/D{1,4}/g, ""), false); + } + } + } + return noteDate; + } + var DailyNotesFolderMissingError = class extends Error { + }; + async function createDailyNote2(date) { + const app = window.app; + const { vault } = app; + const moment = window.moment; + const { template, format: format2, folder } = getDailyNoteSettings(); + const [templateContents, IFoldInfo] = await getTemplateInfo(template); + const filename = date.format(format2); + 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 now2 = moment(); + const currentDate = date.clone().set({ + hour: now2.get("hour"), + minute: now2.get("minute"), + second: now2.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format2); + }).replace(/{{\s*yesterday\s*}}/gi, date.clone().subtract(1, "day").format(format2)).replace(/{{\s*tomorrow\s*}}/gi, date.clone().add(1, "d").format(format2))); + app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + } + function getDailyNote2(date, dailyNotes) { + var _a; + return (_a = dailyNotes[getDateUID(date, "day")]) != null ? _a : null; + } + function getAllDailyNotes2() { + const { vault } = window.app; + const { folder } = getDailyNoteSettings(); + const dailyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!dailyNotesFolder) { + throw new DailyNotesFolderMissingError("Failed to find daily notes folder"); + } + const dailyNotes = {}; + obsidian.Vault.recurseChildren(dailyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "day"); + if (date) { + const dateString = getDateUID(date, "day"); + dailyNotes[dateString] = note; + } + } + }); + return dailyNotes; + } + var WeeklyNotesFolderMissingError = class extends Error { + }; + function getDaysOfWeek() { + const { moment } = window; + 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().indexOf(dayOfWeekName.toLowerCase()); + } + async function createWeeklyNote2(date) { + const { vault } = window.app; + const { template, format: format2, folder } = getWeeklyNoteSettings(); + const [templateContents, IFoldInfo] = await getTemplateInfo(template); + const filename = date.format(format2); + 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 now2 = window.moment(); + const currentDate = date.clone().set({ + hour: now2.get("hour"), + minute: now2.get("minute"), + second: now2.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format2); + }).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()); + })); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + } + function getWeeklyNote2(date, weeklyNotes) { + var _a; + return (_a = weeklyNotes[getDateUID(date, "week")]) != null ? _a : null; + } + function getAllWeeklyNotes2() { + const weeklyNotes = {}; + if (!appHasWeeklyNotesPluginLoaded2()) { + return weeklyNotes; + } + const { vault } = window.app; + const { folder } = getWeeklyNoteSettings(); + const weeklyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!weeklyNotesFolder) { + throw new WeeklyNotesFolderMissingError("Failed to find weekly notes folder"); + } + obsidian.Vault.recurseChildren(weeklyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "week"); + if (date) { + const dateString = getDateUID(date, "week"); + weeklyNotes[dateString] = note; + } + } + }); + return weeklyNotes; + } + var MonthlyNotesFolderMissingError = class extends Error { + }; + async function createMonthlyNote(date) { + const { vault } = window.app; + const { template, format: format2, folder } = getMonthlyNoteSettings(); + const [templateContents, IFoldInfo] = await getTemplateInfo(template); + const filename = date.format(format2); + 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 now2 = window.moment(); + const currentDate = date.clone().set({ + hour: now2.get("hour"), + minute: now2.get("minute"), + second: now2.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format2); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + } + function getMonthlyNote(date, monthlyNotes) { + var _a; + return (_a = monthlyNotes[getDateUID(date, "month")]) != null ? _a : null; + } + function getAllMonthlyNotes() { + const monthlyNotes = {}; + if (!appHasMonthlyNotesPluginLoaded()) { + return monthlyNotes; + } + const { vault } = window.app; + const { folder } = getMonthlyNoteSettings(); + const monthlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!monthlyNotesFolder) { + throw new MonthlyNotesFolderMissingError("Failed to find monthly notes folder"); + } + obsidian.Vault.recurseChildren(monthlyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "month"); + if (date) { + const dateString = getDateUID(date, "month"); + monthlyNotes[dateString] = note; + } + } + }); + return monthlyNotes; + } + var QuarterlyNotesFolderMissingError = class extends Error { + }; + async function createQuarterlyNote(date) { + const { vault } = window.app; + const { template, format: format2, folder } = getQuarterlyNoteSettings(); + const [templateContents, IFoldInfo] = await getTemplateInfo(template); + const filename = date.format(format2); + 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 now2 = window.moment(); + const currentDate = date.clone().set({ + hour: now2.get("hour"), + minute: now2.get("minute"), + second: now2.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format2); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + } + function getQuarterlyNote(date, quarterly) { + var _a; + return (_a = quarterly[getDateUID(date, "quarter")]) != null ? _a : null; + } + function getAllQuarterlyNotes() { + const quarterly = {}; + if (!appHasQuarterlyNotesPluginLoaded()) { + return quarterly; + } + const { vault } = window.app; + const { folder } = getQuarterlyNoteSettings(); + const quarterlyFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!quarterlyFolder) { + throw new QuarterlyNotesFolderMissingError("Failed to find quarterly notes folder"); + } + obsidian.Vault.recurseChildren(quarterlyFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "quarter"); + if (date) { + const dateString = getDateUID(date, "quarter"); + quarterly[dateString] = note; + } + } + }); + return quarterly; + } + var YearlyNotesFolderMissingError = class extends Error { + }; + async function createYearlyNote(date) { + const { vault } = window.app; + const { template, format: format2, folder } = getYearlyNoteSettings(); + const [templateContents, IFoldInfo] = await getTemplateInfo(template); + const filename = date.format(format2); + 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 now2 = window.moment(); + const currentDate = date.clone().set({ + hour: now2.get("hour"), + minute: now2.get("minute"), + second: now2.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format2); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + } + function getYearlyNote(date, yearlyNotes) { + var _a; + return (_a = yearlyNotes[getDateUID(date, "year")]) != null ? _a : null; + } + function getAllYearlyNotes() { + const yearlyNotes = {}; + if (!appHasYearlyNotesPluginLoaded()) { + return yearlyNotes; + } + const { vault } = window.app; + const { folder } = getYearlyNoteSettings(); + const yearlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!yearlyNotesFolder) { + throw new YearlyNotesFolderMissingError("Failed to find yearly notes folder"); + } + obsidian.Vault.recurseChildren(yearlyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "year"); + if (date) { + const dateString = getDateUID(date, "year"); + yearlyNotes[dateString] = note; + } + } + }); + return yearlyNotes; + } + function appHasDailyNotesPluginLoaded2() { + var _a, _b; + const { app } = window; + const dailyNotesPlugin = app.internalPlugins.plugins["daily-notes"]; + if (dailyNotesPlugin && dailyNotesPlugin.enabled) { + return true; + } + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.daily) == null ? void 0 : _b.enabled); + } + function appHasWeeklyNotesPluginLoaded2() { + var _a, _b; + const { app } = window; + if (app.plugins.getPlugin("calendar")) { + return true; + } + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.weekly) == null ? void 0 : _b.enabled); + } + function appHasMonthlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.monthly) == null ? void 0 : _b.enabled); + } + function appHasQuarterlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.quarterly) == null ? void 0 : _b.enabled); + } + function appHasYearlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.yearly) == null ? void 0 : _b.enabled); + } + function getPeriodicNoteSettings(granularity) { + const getSettings = { + day: getDailyNoteSettings, + week: getWeeklyNoteSettings, + month: getMonthlyNoteSettings, + quarter: getQuarterlyNoteSettings, + year: getYearlyNoteSettings + }[granularity]; + return getSettings(); + } + function createPeriodicNote(granularity, date) { + const createFn = { + day: createDailyNote2, + month: createMonthlyNote, + week: createWeeklyNote2 + }; + return createFn[granularity](date); + } + exports.DEFAULT_DAILY_NOTE_FORMAT = DEFAULT_DAILY_NOTE_FORMAT; + exports.DEFAULT_MONTHLY_NOTE_FORMAT = DEFAULT_MONTHLY_NOTE_FORMAT; + exports.DEFAULT_QUARTERLY_NOTE_FORMAT = DEFAULT_QUARTERLY_NOTE_FORMAT; + exports.DEFAULT_WEEKLY_NOTE_FORMAT = DEFAULT_WEEKLY_NOTE_FORMAT; + exports.DEFAULT_YEARLY_NOTE_FORMAT = DEFAULT_YEARLY_NOTE_FORMAT; + exports.appHasDailyNotesPluginLoaded = appHasDailyNotesPluginLoaded2; + exports.appHasMonthlyNotesPluginLoaded = appHasMonthlyNotesPluginLoaded; + exports.appHasQuarterlyNotesPluginLoaded = appHasQuarterlyNotesPluginLoaded; + exports.appHasWeeklyNotesPluginLoaded = appHasWeeklyNotesPluginLoaded2; + exports.appHasYearlyNotesPluginLoaded = appHasYearlyNotesPluginLoaded; + exports.createDailyNote = createDailyNote2; + exports.createMonthlyNote = createMonthlyNote; + exports.createPeriodicNote = createPeriodicNote; + exports.createQuarterlyNote = createQuarterlyNote; + exports.createWeeklyNote = createWeeklyNote2; + exports.createYearlyNote = createYearlyNote; + exports.getAllDailyNotes = getAllDailyNotes2; + exports.getAllMonthlyNotes = getAllMonthlyNotes; + exports.getAllQuarterlyNotes = getAllQuarterlyNotes; + exports.getAllWeeklyNotes = getAllWeeklyNotes2; + exports.getAllYearlyNotes = getAllYearlyNotes; + exports.getDailyNote = getDailyNote2; + exports.getDailyNoteSettings = getDailyNoteSettings; + exports.getDateFromFile = getDateFromFile; + exports.getDateFromPath = getDateFromPath; + exports.getDateUID = getDateUID; + exports.getMonthlyNote = getMonthlyNote; + exports.getMonthlyNoteSettings = getMonthlyNoteSettings; + exports.getPeriodicNoteSettings = getPeriodicNoteSettings; + exports.getQuarterlyNote = getQuarterlyNote; + exports.getQuarterlyNoteSettings = getQuarterlyNoteSettings; + exports.getTemplateInfo = getTemplateInfo; + exports.getWeeklyNote = getWeeklyNote2; + exports.getWeeklyNoteSettings = getWeeklyNoteSettings; + exports.getYearlyNote = getYearlyNote; + exports.getYearlyNoteSettings = getYearlyNoteSettings; + } +}); + +// node_modules/@dagrejs/graphlib/lib/graph.js +var require_graph = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/graph.js"(exports, module2) { + "use strict"; + var DEFAULT_EDGE_NAME = "\0"; + var GRAPH_NODE = "\0"; + var EDGE_KEY_DELIM = ""; + var _isDirected, _isMultigraph, _isCompound, _label, _defaultNodeLabelFn, _defaultEdgeLabelFn, _nodes, _in, _preds, _out, _sucs, _edgeObjs, _edgeLabels, _nodeCount, _edgeCount, _parent, _children, _removeFromParentsChildList, removeFromParentsChildList_fn; + var Graph = class { + constructor(opts) { + __privateAdd(this, _removeFromParentsChildList); + __privateAdd(this, _isDirected, true); + __privateAdd(this, _isMultigraph, false); + __privateAdd(this, _isCompound, false); + __privateAdd(this, _label, void 0); + __privateAdd(this, _defaultNodeLabelFn, () => void 0); + __privateAdd(this, _defaultEdgeLabelFn, () => void 0); + __privateAdd(this, _nodes, {}); + __privateAdd(this, _in, {}); + __privateAdd(this, _preds, {}); + __privateAdd(this, _out, {}); + __privateAdd(this, _sucs, {}); + __privateAdd(this, _edgeObjs, {}); + __privateAdd(this, _edgeLabels, {}); + __privateAdd(this, _nodeCount, 0); + __privateAdd(this, _edgeCount, 0); + __privateAdd(this, _parent, void 0); + __privateAdd(this, _children, void 0); + if (opts) { + __privateSet(this, _isDirected, opts.hasOwnProperty("directed") ? opts.directed : true); + __privateSet(this, _isMultigraph, opts.hasOwnProperty("multigraph") ? opts.multigraph : false); + __privateSet(this, _isCompound, opts.hasOwnProperty("compound") ? opts.compound : false); + } + if (__privateGet(this, _isCompound)) { + __privateSet(this, _parent, {}); + __privateSet(this, _children, {}); + __privateGet(this, _children)[GRAPH_NODE] = {}; + } + } + isDirected() { + return __privateGet(this, _isDirected); + } + isMultigraph() { + return __privateGet(this, _isMultigraph); + } + isCompound() { + return __privateGet(this, _isCompound); + } + setGraph(label) { + __privateSet(this, _label, label); + return this; + } + graph() { + return __privateGet(this, _label); + } + setDefaultNodeLabel(newDefault) { + __privateSet(this, _defaultNodeLabelFn, newDefault); + if (typeof newDefault !== "function") { + __privateSet(this, _defaultNodeLabelFn, () => newDefault); + } + return this; + } + nodeCount() { + return __privateGet(this, _nodeCount); + } + nodes() { + return Object.keys(__privateGet(this, _nodes)); + } + sources() { + var self = this; + return this.nodes().filter((v) => Object.keys(__privateGet(self, _in)[v]).length === 0); + } + sinks() { + var self = this; + return this.nodes().filter((v) => Object.keys(__privateGet(self, _out)[v]).length === 0); + } + setNodes(vs, value) { + var args = arguments; + var self = this; + vs.forEach(function(v) { + if (args.length > 1) { + self.setNode(v, value); + } else { + self.setNode(v); + } + }); + return this; + } + setNode(v, value) { + if (__privateGet(this, _nodes).hasOwnProperty(v)) { + if (arguments.length > 1) { + __privateGet(this, _nodes)[v] = value; + } + return this; + } + __privateGet(this, _nodes)[v] = arguments.length > 1 ? value : __privateGet(this, _defaultNodeLabelFn).call(this, v); + if (__privateGet(this, _isCompound)) { + __privateGet(this, _parent)[v] = GRAPH_NODE; + __privateGet(this, _children)[v] = {}; + __privateGet(this, _children)[GRAPH_NODE][v] = true; + } + __privateGet(this, _in)[v] = {}; + __privateGet(this, _preds)[v] = {}; + __privateGet(this, _out)[v] = {}; + __privateGet(this, _sucs)[v] = {}; + ++__privateWrapper(this, _nodeCount)._; + return this; + } + node(v) { + return __privateGet(this, _nodes)[v]; + } + hasNode(v) { + return __privateGet(this, _nodes).hasOwnProperty(v); + } + removeNode(v) { + var self = this; + if (__privateGet(this, _nodes).hasOwnProperty(v)) { + var removeEdge = (e) => self.removeEdge(__privateGet(self, _edgeObjs)[e]); + delete __privateGet(this, _nodes)[v]; + if (__privateGet(this, _isCompound)) { + __privateMethod(this, _removeFromParentsChildList, removeFromParentsChildList_fn).call(this, v); + delete __privateGet(this, _parent)[v]; + this.children(v).forEach(function(child) { + self.setParent(child); + }); + delete __privateGet(this, _children)[v]; + } + Object.keys(__privateGet(this, _in)[v]).forEach(removeEdge); + delete __privateGet(this, _in)[v]; + delete __privateGet(this, _preds)[v]; + Object.keys(__privateGet(this, _out)[v]).forEach(removeEdge); + delete __privateGet(this, _out)[v]; + delete __privateGet(this, _sucs)[v]; + --__privateWrapper(this, _nodeCount)._; + } + return this; + } + setParent(v, parent) { + if (!__privateGet(this, _isCompound)) { + throw new Error("Cannot set parent in a non-compound graph"); + } + if (parent === void 0) { + parent = GRAPH_NODE; + } else { + parent += ""; + for (var ancestor = parent; ancestor !== void 0; ancestor = this.parent(ancestor)) { + if (ancestor === v) { + throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle"); + } + } + this.setNode(parent); + } + this.setNode(v); + __privateMethod(this, _removeFromParentsChildList, removeFromParentsChildList_fn).call(this, v); + __privateGet(this, _parent)[v] = parent; + __privateGet(this, _children)[parent][v] = true; + return this; + } + parent(v) { + if (__privateGet(this, _isCompound)) { + var parent = __privateGet(this, _parent)[v]; + if (parent !== GRAPH_NODE) { + return parent; + } + } + } + children(v = GRAPH_NODE) { + if (__privateGet(this, _isCompound)) { + var children2 = __privateGet(this, _children)[v]; + if (children2) { + return Object.keys(children2); + } + } else if (v === GRAPH_NODE) { + return this.nodes(); + } else if (this.hasNode(v)) { + return []; + } + } + predecessors(v) { + var predsV = __privateGet(this, _preds)[v]; + if (predsV) { + return Object.keys(predsV); + } + } + successors(v) { + var sucsV = __privateGet(this, _sucs)[v]; + if (sucsV) { + return Object.keys(sucsV); + } + } + neighbors(v) { + var preds = this.predecessors(v); + if (preds) { + const union = new Set(preds); + for (var succ of this.successors(v)) { + union.add(succ); + } + return Array.from(union.values()); + } + } + isLeaf(v) { + var neighbors; + if (this.isDirected()) { + neighbors = this.successors(v); + } else { + neighbors = this.neighbors(v); + } + return neighbors.length === 0; + } + filterNodes(filter) { + var copy = new this.constructor({ + directed: __privateGet(this, _isDirected), + multigraph: __privateGet(this, _isMultigraph), + compound: __privateGet(this, _isCompound) + }); + copy.setGraph(this.graph()); + var self = this; + Object.entries(__privateGet(this, _nodes)).forEach(function([v, value]) { + if (filter(v)) { + copy.setNode(v, value); + } + }); + Object.values(__privateGet(this, _edgeObjs)).forEach(function(e) { + if (copy.hasNode(e.v) && copy.hasNode(e.w)) { + copy.setEdge(e, self.edge(e)); + } + }); + var parents = {}; + function findParent(v) { + var parent = self.parent(v); + if (parent === void 0 || copy.hasNode(parent)) { + parents[v] = parent; + return parent; + } else if (parent in parents) { + return parents[parent]; + } else { + return findParent(parent); + } + } + if (__privateGet(this, _isCompound)) { + copy.nodes().forEach((v) => copy.setParent(v, findParent(v))); + } + return copy; + } + setDefaultEdgeLabel(newDefault) { + __privateSet(this, _defaultEdgeLabelFn, newDefault); + if (typeof newDefault !== "function") { + __privateSet(this, _defaultEdgeLabelFn, () => newDefault); + } + return this; + } + edgeCount() { + return __privateGet(this, _edgeCount); + } + edges() { + return Object.values(__privateGet(this, _edgeObjs)); + } + setPath(vs, value) { + var self = this; + var args = arguments; + vs.reduce(function(v, w) { + if (args.length > 1) { + self.setEdge(v, w, value); + } else { + self.setEdge(v, w); + } + return w; + }); + return this; + } + setEdge() { + var v, w, name, value; + var valueSpecified = false; + var arg0 = arguments[0]; + if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) { + v = arg0.v; + w = arg0.w; + name = arg0.name; + if (arguments.length === 2) { + value = arguments[1]; + valueSpecified = true; + } + } else { + v = arg0; + w = arguments[1]; + name = arguments[3]; + if (arguments.length > 2) { + value = arguments[2]; + valueSpecified = true; + } + } + v = "" + v; + w = "" + w; + if (name !== void 0) { + name = "" + name; + } + var e = edgeArgsToId(__privateGet(this, _isDirected), v, w, name); + if (__privateGet(this, _edgeLabels).hasOwnProperty(e)) { + if (valueSpecified) { + __privateGet(this, _edgeLabels)[e] = value; + } + return this; + } + if (name !== void 0 && !__privateGet(this, _isMultigraph)) { + throw new Error("Cannot set a named edge when isMultigraph = false"); + } + this.setNode(v); + this.setNode(w); + __privateGet(this, _edgeLabels)[e] = valueSpecified ? value : __privateGet(this, _defaultEdgeLabelFn).call(this, v, w, name); + var edgeObj = edgeArgsToObj(__privateGet(this, _isDirected), v, w, name); + v = edgeObj.v; + w = edgeObj.w; + Object.freeze(edgeObj); + __privateGet(this, _edgeObjs)[e] = edgeObj; + incrementOrInitEntry(__privateGet(this, _preds)[w], v); + incrementOrInitEntry(__privateGet(this, _sucs)[v], w); + __privateGet(this, _in)[w][e] = edgeObj; + __privateGet(this, _out)[v][e] = edgeObj; + __privateWrapper(this, _edgeCount)._++; + return this; + } + edge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(__privateGet(this, _isDirected), arguments[0]) : edgeArgsToId(__privateGet(this, _isDirected), v, w, name); + return __privateGet(this, _edgeLabels)[e]; + } + edgeAsObj() { + const edge = this.edge(...arguments); + if (typeof edge !== "object") { + return { label: edge }; + } + return edge; + } + hasEdge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(__privateGet(this, _isDirected), arguments[0]) : edgeArgsToId(__privateGet(this, _isDirected), v, w, name); + return __privateGet(this, _edgeLabels).hasOwnProperty(e); + } + removeEdge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(__privateGet(this, _isDirected), arguments[0]) : edgeArgsToId(__privateGet(this, _isDirected), v, w, name); + var edge = __privateGet(this, _edgeObjs)[e]; + if (edge) { + v = edge.v; + w = edge.w; + delete __privateGet(this, _edgeLabels)[e]; + delete __privateGet(this, _edgeObjs)[e]; + decrementOrRemoveEntry(__privateGet(this, _preds)[w], v); + decrementOrRemoveEntry(__privateGet(this, _sucs)[v], w); + delete __privateGet(this, _in)[w][e]; + delete __privateGet(this, _out)[v][e]; + __privateWrapper(this, _edgeCount)._--; + } + return this; + } + inEdges(v, u) { + var inV = __privateGet(this, _in)[v]; + if (inV) { + var edges = Object.values(inV); + if (!u) { + return edges; + } + return edges.filter((edge) => edge.v === u); + } + } + outEdges(v, w) { + var outV = __privateGet(this, _out)[v]; + if (outV) { + var edges = Object.values(outV); + if (!w) { + return edges; + } + return edges.filter((edge) => edge.w === w); + } + } + nodeEdges(v, w) { + var inEdges = this.inEdges(v, w); + if (inEdges) { + return inEdges.concat(this.outEdges(v, w)); + } + } + }; + _isDirected = new WeakMap(); + _isMultigraph = new WeakMap(); + _isCompound = new WeakMap(); + _label = new WeakMap(); + _defaultNodeLabelFn = new WeakMap(); + _defaultEdgeLabelFn = new WeakMap(); + _nodes = new WeakMap(); + _in = new WeakMap(); + _preds = new WeakMap(); + _out = new WeakMap(); + _sucs = new WeakMap(); + _edgeObjs = new WeakMap(); + _edgeLabels = new WeakMap(); + _nodeCount = new WeakMap(); + _edgeCount = new WeakMap(); + _parent = new WeakMap(); + _children = new WeakMap(); + _removeFromParentsChildList = new WeakSet(); + removeFromParentsChildList_fn = function(v) { + delete __privateGet(this, _children)[__privateGet(this, _parent)[v]][v]; + }; + function incrementOrInitEntry(map, k) { + if (map[k]) { + map[k]++; + } else { + map[k] = 1; + } + } + function decrementOrRemoveEntry(map, k) { + if (!--map[k]) { + delete map[k]; + } + } + function edgeArgsToId(isDirected, v_, w_, name) { + var v = "" + v_; + var w = "" + w_; + if (!isDirected && v > w) { + var tmp = v; + v = w; + w = tmp; + } + return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (name === void 0 ? DEFAULT_EDGE_NAME : name); + } + function edgeArgsToObj(isDirected, v_, w_, name) { + var v = "" + v_; + var w = "" + w_; + if (!isDirected && v > w) { + var tmp = v; + v = w; + w = tmp; + } + var edgeObj = { v, w }; + if (name) { + edgeObj.name = name; + } + return edgeObj; + } + function edgeObjToId(isDirected, edgeObj) { + return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name); + } + module2.exports = Graph; + } +}); + +// node_modules/@dagrejs/graphlib/lib/version.js +var require_version = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/version.js"(exports, module2) { + module2.exports = "2.1.13"; + } +}); + +// node_modules/@dagrejs/graphlib/lib/index.js +var require_lib = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/index.js"(exports, module2) { + module2.exports = { + Graph: require_graph(), + version: require_version() + }; + } +}); + +// node_modules/@dagrejs/graphlib/lib/json.js +var require_json = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/json.js"(exports, module2) { + var Graph = require_graph(); + module2.exports = { + write: write2, + read: read2 + }; + function write2(g) { + var json = { + options: { + directed: g.isDirected(), + multigraph: g.isMultigraph(), + compound: g.isCompound() + }, + nodes: writeNodes(g), + edges: writeEdges(g) + }; + if (g.graph() !== void 0) { + json.value = structuredClone(g.graph()); + } + return json; + } + function writeNodes(g) { + return g.nodes().map(function(v) { + var nodeValue = g.node(v); + var parent = g.parent(v); + var node = { v }; + if (nodeValue !== void 0) { + node.value = nodeValue; + } + if (parent !== void 0) { + node.parent = parent; + } + return node; + }); + } + function writeEdges(g) { + return g.edges().map(function(e) { + var edgeValue = g.edge(e); + var edge = { v: e.v, w: e.w }; + if (e.name !== void 0) { + edge.name = e.name; + } + if (edgeValue !== void 0) { + edge.value = edgeValue; + } + return edge; + }); + } + function read2(json) { + var g = new Graph(json.options).setGraph(json.value); + json.nodes.forEach(function(entry) { + g.setNode(entry.v, entry.value); + if (entry.parent) { + g.setParent(entry.v, entry.parent); + } + }); + json.edges.forEach(function(entry) { + g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value); + }); + return g; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/components.js +var require_components = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/components.js"(exports, module2) { + module2.exports = components; + function components(g) { + var visited = {}; + var cmpts = []; + var cmpt; + function dfs(v) { + if (visited.hasOwnProperty(v)) + return; + visited[v] = true; + cmpt.push(v); + g.successors(v).forEach(dfs); + g.predecessors(v).forEach(dfs); + } + g.nodes().forEach(function(v) { + cmpt = []; + dfs(v); + if (cmpt.length) { + cmpts.push(cmpt); + } + }); + return cmpts; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/data/priority-queue.js +var require_priority_queue = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/data/priority-queue.js"(exports, module2) { + var _arr, _keyIndices, _heapify, heapify_fn, _decrease, decrease_fn, _swap, swap_fn; + var PriorityQueue = class { + constructor() { + __privateAdd(this, _heapify); + __privateAdd(this, _decrease); + __privateAdd(this, _swap); + __privateAdd(this, _arr, []); + __privateAdd(this, _keyIndices, {}); + } + size() { + return __privateGet(this, _arr).length; + } + keys() { + return __privateGet(this, _arr).map(function(x) { + return x.key; + }); + } + has(key) { + return __privateGet(this, _keyIndices).hasOwnProperty(key); + } + priority(key) { + var index = __privateGet(this, _keyIndices)[key]; + if (index !== void 0) { + return __privateGet(this, _arr)[index].priority; + } + } + min() { + if (this.size() === 0) { + throw new Error("Queue underflow"); + } + return __privateGet(this, _arr)[0].key; + } + add(key, priority) { + var keyIndices = __privateGet(this, _keyIndices); + key = String(key); + if (!keyIndices.hasOwnProperty(key)) { + var arr = __privateGet(this, _arr); + var index = arr.length; + keyIndices[key] = index; + arr.push({ key, priority }); + __privateMethod(this, _decrease, decrease_fn).call(this, index); + return true; + } + return false; + } + removeMin() { + __privateMethod(this, _swap, swap_fn).call(this, 0, __privateGet(this, _arr).length - 1); + var min2 = __privateGet(this, _arr).pop(); + delete __privateGet(this, _keyIndices)[min2.key]; + __privateMethod(this, _heapify, heapify_fn).call(this, 0); + return min2.key; + } + decrease(key, priority) { + var index = __privateGet(this, _keyIndices)[key]; + if (priority > __privateGet(this, _arr)[index].priority) { + throw new Error("New priority is greater than current priority. Key: " + key + " Old: " + __privateGet(this, _arr)[index].priority + " New: " + priority); + } + __privateGet(this, _arr)[index].priority = priority; + __privateMethod(this, _decrease, decrease_fn).call(this, index); + } + }; + _arr = new WeakMap(); + _keyIndices = new WeakMap(); + _heapify = new WeakSet(); + heapify_fn = function(i) { + var arr = __privateGet(this, _arr); + var l = 2 * i; + var r = l + 1; + var largest = i; + if (l < arr.length) { + largest = arr[l].priority < arr[largest].priority ? l : largest; + if (r < arr.length) { + largest = arr[r].priority < arr[largest].priority ? r : largest; + } + if (largest !== i) { + __privateMethod(this, _swap, swap_fn).call(this, i, largest); + __privateMethod(this, _heapify, heapify_fn).call(this, largest); + } + } + }; + _decrease = new WeakSet(); + decrease_fn = function(index) { + var arr = __privateGet(this, _arr); + var priority = arr[index].priority; + var parent; + while (index !== 0) { + parent = index >> 1; + if (arr[parent].priority < priority) { + break; + } + __privateMethod(this, _swap, swap_fn).call(this, index, parent); + index = parent; + } + }; + _swap = new WeakSet(); + swap_fn = function(i, j) { + var arr = __privateGet(this, _arr); + var keyIndices = __privateGet(this, _keyIndices); + var origArrI = arr[i]; + var origArrJ = arr[j]; + arr[i] = origArrJ; + arr[j] = origArrI; + keyIndices[origArrJ.key] = i; + keyIndices[origArrI.key] = j; + }; + module2.exports = PriorityQueue; + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js +var require_dijkstra = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js"(exports, module2) { + var PriorityQueue = require_priority_queue(); + module2.exports = dijkstra; + var DEFAULT_WEIGHT_FUNC = () => 1; + function dijkstra(g, source, weightFn, edgeFn) { + return runDijkstra(g, String(source), weightFn || DEFAULT_WEIGHT_FUNC, edgeFn || function(v) { + return g.outEdges(v); + }); + } + function runDijkstra(g, source, weightFn, edgeFn) { + var results = {}; + var pq = new PriorityQueue(); + var v, vEntry; + var updateNeighbors = function(edge) { + var w = edge.v !== v ? edge.v : edge.w; + var wEntry = results[w]; + var weight = weightFn(edge); + var distance = vEntry.distance + weight; + if (weight < 0) { + throw new Error("dijkstra does not allow negative edge weights. Bad edge: " + edge + " Weight: " + weight); + } + if (distance < wEntry.distance) { + wEntry.distance = distance; + wEntry.predecessor = v; + pq.decrease(w, distance); + } + }; + g.nodes().forEach(function(v2) { + var distance = v2 === source ? 0 : Number.POSITIVE_INFINITY; + results[v2] = { distance }; + pq.add(v2, distance); + }); + while (pq.size() > 0) { + v = pq.removeMin(); + vEntry = results[v]; + if (vEntry.distance === Number.POSITIVE_INFINITY) { + break; + } + edgeFn(v).forEach(updateNeighbors); + } + return results; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js +var require_dijkstra_all = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js"(exports, module2) { + var dijkstra = require_dijkstra(); + module2.exports = dijkstraAll; + function dijkstraAll(g, weightFunc, edgeFunc) { + return g.nodes().reduce(function(acc, v) { + acc[v] = dijkstra(g, v, weightFunc, edgeFunc); + return acc; + }, {}); + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/tarjan.js +var require_tarjan = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/tarjan.js"(exports, module2) { + module2.exports = tarjan; + function tarjan(g) { + var index = 0; + var stack = []; + var visited = {}; + var results = []; + function dfs(v) { + var entry = visited[v] = { + onStack: true, + lowlink: index, + index: index++ + }; + stack.push(v); + g.successors(v).forEach(function(w2) { + if (!visited.hasOwnProperty(w2)) { + dfs(w2); + entry.lowlink = Math.min(entry.lowlink, visited[w2].lowlink); + } else if (visited[w2].onStack) { + entry.lowlink = Math.min(entry.lowlink, visited[w2].index); + } + }); + if (entry.lowlink === entry.index) { + var cmpt = []; + var w; + do { + w = stack.pop(); + visited[w].onStack = false; + cmpt.push(w); + } while (v !== w); + results.push(cmpt); + } + } + g.nodes().forEach(function(v) { + if (!visited.hasOwnProperty(v)) { + dfs(v); + } + }); + return results; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js +var require_find_cycles = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js"(exports, module2) { + var tarjan = require_tarjan(); + module2.exports = findCycles; + function findCycles(g) { + return tarjan(g).filter(function(cmpt) { + return cmpt.length > 1 || cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]); + }); + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js +var require_floyd_warshall = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js"(exports, module2) { + module2.exports = floydWarshall; + var DEFAULT_WEIGHT_FUNC = () => 1; + function floydWarshall(g, weightFn, edgeFn) { + return runFloydWarshall(g, weightFn || DEFAULT_WEIGHT_FUNC, edgeFn || function(v) { + return g.outEdges(v); + }); + } + function runFloydWarshall(g, weightFn, edgeFn) { + var results = {}; + var nodes = g.nodes(); + nodes.forEach(function(v) { + results[v] = {}; + results[v][v] = { distance: 0 }; + nodes.forEach(function(w) { + if (v !== w) { + results[v][w] = { distance: Number.POSITIVE_INFINITY }; + } + }); + edgeFn(v).forEach(function(edge) { + var w = edge.v === v ? edge.w : edge.v; + var d = weightFn(edge); + results[v][w] = { distance: d, predecessor: v }; + }); + }); + nodes.forEach(function(k) { + var rowK = results[k]; + nodes.forEach(function(i) { + var rowI = results[i]; + nodes.forEach(function(j) { + var ik = rowI[k]; + var kj = rowK[j]; + var ij = rowI[j]; + var altDistance = ik.distance + kj.distance; + if (altDistance < ij.distance) { + ij.distance = altDistance; + ij.predecessor = kj.predecessor; + } + }); + }); + }); + return results; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/topsort.js +var require_topsort = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/topsort.js"(exports, module2) { + function topsort(g) { + var visited = {}; + var stack = {}; + var results = []; + function visit(node) { + if (stack.hasOwnProperty(node)) { + throw new CycleException(); + } + if (!visited.hasOwnProperty(node)) { + stack[node] = true; + visited[node] = true; + g.predecessors(node).forEach(visit); + delete stack[node]; + results.push(node); + } + } + g.sinks().forEach(visit); + if (Object.keys(visited).length !== g.nodeCount()) { + throw new CycleException(); + } + return results; + } + var CycleException = class extends Error { + constructor() { + super(...arguments); + } + }; + module2.exports = topsort; + topsort.CycleException = CycleException; + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js +var require_is_acyclic = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js"(exports, module2) { + var topsort = require_topsort(); + module2.exports = isAcyclic; + function isAcyclic(g) { + try { + topsort(g); + } catch (e) { + if (e instanceof topsort.CycleException) { + return false; + } + throw e; + } + return true; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/dfs.js +var require_dfs = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/dfs.js"(exports, module2) { + module2.exports = dfs; + function dfs(g, vs, order2) { + if (!Array.isArray(vs)) { + vs = [vs]; + } + var navigation = g.isDirected() ? (v) => g.successors(v) : (v) => g.neighbors(v); + var orderFunc = order2 === "post" ? postOrderDfs : preOrderDfs; + var acc = []; + var visited = {}; + vs.forEach((v) => { + if (!g.hasNode(v)) { + throw new Error("Graph does not have node: " + v); + } + orderFunc(v, navigation, visited, acc); + }); + return acc; + } + function postOrderDfs(v, navigation, visited, acc) { + var stack = [[v, false]]; + while (stack.length > 0) { + var curr = stack.pop(); + if (curr[1]) { + acc.push(curr[0]); + } else { + if (!visited.hasOwnProperty(curr[0])) { + visited[curr[0]] = true; + stack.push([curr[0], true]); + forEachRight(navigation(curr[0]), (w) => stack.push([w, false])); + } + } + } + } + function preOrderDfs(v, navigation, visited, acc) { + var stack = [v]; + while (stack.length > 0) { + var curr = stack.pop(); + if (!visited.hasOwnProperty(curr)) { + visited[curr] = true; + acc.push(curr); + forEachRight(navigation(curr), (w) => stack.push(w)); + } + } + } + function forEachRight(array, iteratee) { + var length = array.length; + while (length--) { + iteratee(array[length], length, array); + } + return array; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/postorder.js +var require_postorder = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/postorder.js"(exports, module2) { + var dfs = require_dfs(); + module2.exports = postorder; + function postorder(g, vs) { + return dfs(g, vs, "post"); + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/preorder.js +var require_preorder = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/preorder.js"(exports, module2) { + var dfs = require_dfs(); + module2.exports = preorder; + function preorder(g, vs) { + return dfs(g, vs, "pre"); + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/prim.js +var require_prim = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/prim.js"(exports, module2) { + var Graph = require_graph(); + var PriorityQueue = require_priority_queue(); + module2.exports = prim; + function prim(g, weightFunc) { + var result = new Graph(); + var parents = {}; + var pq = new PriorityQueue(); + var v; + function updateNeighbors(edge) { + var w = edge.v === v ? edge.w : edge.v; + var pri = pq.priority(w); + if (pri !== void 0) { + var edgeWeight = weightFunc(edge); + if (edgeWeight < pri) { + parents[w] = v; + pq.decrease(w, edgeWeight); + } + } + } + if (g.nodeCount() === 0) { + return result; + } + g.nodes().forEach(function(v2) { + pq.add(v2, Number.POSITIVE_INFINITY); + result.setNode(v2); + }); + pq.decrease(g.nodes()[0], 0); + var init3 = false; + while (pq.size() > 0) { + v = pq.removeMin(); + if (parents.hasOwnProperty(v)) { + result.setEdge(v, parents[v]); + } else if (init3) { + throw new Error("Input graph is not connected: " + g); + } else { + init3 = true; + } + g.nodeEdges(v).forEach(updateNeighbors); + } + return result; + } + } +}); + +// node_modules/@dagrejs/graphlib/lib/alg/index.js +var require_alg = __commonJS({ + "node_modules/@dagrejs/graphlib/lib/alg/index.js"(exports, module2) { + module2.exports = { + components: require_components(), + dijkstra: require_dijkstra(), + dijkstraAll: require_dijkstra_all(), + findCycles: require_find_cycles(), + floydWarshall: require_floyd_warshall(), + isAcyclic: require_is_acyclic(), + postorder: require_postorder(), + preorder: require_preorder(), + prim: require_prim(), + tarjan: require_tarjan(), + topsort: require_topsort() + }; + } +}); + +// node_modules/@dagrejs/graphlib/index.js +var require_graphlib = __commonJS({ + "node_modules/@dagrejs/graphlib/index.js"(exports, module2) { + var lib = require_lib(); + module2.exports = { + Graph: lib.Graph, + json: require_json(), + alg: require_alg(), + version: lib.version + }; + } +}); + +// node_modules/@dagrejs/dagre/lib/data/list.js +var require_list = __commonJS({ + "node_modules/@dagrejs/dagre/lib/data/list.js"(exports, module2) { + module2.exports = List; + function List() { + var sentinel = {}; + sentinel._next = sentinel._prev = sentinel; + this._sentinel = sentinel; + } + List.prototype.dequeue = function() { + var sentinel = this._sentinel; + var entry = sentinel._prev; + if (entry !== sentinel) { + unlink(entry); + return entry; + } + }; + List.prototype.enqueue = function(entry) { + var sentinel = this._sentinel; + if (entry._prev && entry._next) { + unlink(entry); + } + entry._next = sentinel._next; + sentinel._next._prev = entry; + sentinel._next = entry; + entry._prev = sentinel; + }; + List.prototype.toString = function() { + var strs = []; + var sentinel = this._sentinel; + var curr = sentinel._prev; + while (curr !== sentinel) { + strs.push(JSON.stringify(curr, filterOutLinks)); + curr = curr._prev; + } + return "[" + strs.join(", ") + "]"; + }; + function unlink(entry) { + entry._prev._next = entry._next; + entry._next._prev = entry._prev; + delete entry._next; + delete entry._prev; + } + function filterOutLinks(k, v) { + if (k !== "_next" && k !== "_prev") { + return v; + } + } + } +}); + +// node_modules/@dagrejs/dagre/lib/greedy-fas.js +var require_greedy_fas = __commonJS({ + "node_modules/@dagrejs/dagre/lib/greedy-fas.js"(exports, module2) { + var Graph = require_graphlib().Graph; + var List = require_list(); + module2.exports = greedyFAS; + var DEFAULT_WEIGHT_FN = () => 1; + function greedyFAS(g, weightFn) { + if (g.nodeCount() <= 1) { + return []; + } + var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN); + var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx); + return results.flatMap((e) => g.outEdges(e.v, e.w)); + } + function doGreedyFAS(g, buckets, zeroIdx) { + var results = []; + var sources = buckets[buckets.length - 1]; + var sinks = buckets[0]; + var entry; + while (g.nodeCount()) { + while (entry = sinks.dequeue()) { + removeNode(g, buckets, zeroIdx, entry); + } + while (entry = sources.dequeue()) { + removeNode(g, buckets, zeroIdx, entry); + } + if (g.nodeCount()) { + for (var i = buckets.length - 2; i > 0; --i) { + entry = buckets[i].dequeue(); + if (entry) { + results = results.concat(removeNode(g, buckets, zeroIdx, entry, true)); + break; + } + } + } + } + return results; + } + function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) { + var results = collectPredecessors ? [] : void 0; + g.inEdges(entry.v).forEach(function(edge) { + var weight = g.edge(edge); + var uEntry = g.node(edge.v); + if (collectPredecessors) { + results.push({ v: edge.v, w: edge.w }); + } + uEntry.out -= weight; + assignBucket(buckets, zeroIdx, uEntry); + }); + g.outEdges(entry.v).forEach(function(edge) { + var weight = g.edge(edge); + var w = edge.w; + var wEntry = g.node(w); + wEntry["in"] -= weight; + assignBucket(buckets, zeroIdx, wEntry); + }); + g.removeNode(entry.v); + return results; + } + function buildState(g, weightFn) { + var fasGraph = new Graph(); + var maxIn = 0; + var maxOut = 0; + g.nodes().forEach(function(v) { + fasGraph.setNode(v, { v, "in": 0, out: 0 }); + }); + g.edges().forEach(function(e) { + var prevWeight = fasGraph.edge(e.v, e.w) || 0; + var weight = weightFn(e); + var edgeWeight = prevWeight + weight; + fasGraph.setEdge(e.v, e.w, edgeWeight); + maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight); + maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight); + }); + var buckets = range(maxOut + maxIn + 3).map(() => new List()); + var zeroIdx = maxIn + 1; + fasGraph.nodes().forEach(function(v) { + assignBucket(buckets, zeroIdx, fasGraph.node(v)); + }); + return { graph: fasGraph, buckets, zeroIdx }; + } + function assignBucket(buckets, zeroIdx, entry) { + if (!entry.out) { + buckets[0].enqueue(entry); + } else if (!entry["in"]) { + buckets[buckets.length - 1].enqueue(entry); + } else { + buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry); + } + } + function range(limit) { + const range2 = []; + for (let i = 0; i < limit; i++) { + range2.push(i); + } + return range2; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/util.js +var require_util = __commonJS({ + "node_modules/@dagrejs/dagre/lib/util.js"(exports, module2) { + "use strict"; + var Graph = require_graphlib().Graph; + module2.exports = { + addBorderNode, + addDummyNode, + asNonCompoundGraph, + buildLayerMatrix, + intersectRect, + mapValues, + maxRank, + normalizeRanks, + notime, + partition, + pick, + predecessorWeights, + range, + removeEmptyRanks, + simplify, + successorWeights, + time, + uniqueId, + zipObject + }; + function addDummyNode(g, type, attrs, name) { + var v; + do { + v = uniqueId(name); + } while (g.hasNode(v)); + attrs.dummy = type; + g.setNode(v, attrs); + return v; + } + function simplify(g) { + var simplified = new Graph().setGraph(g.graph()); + g.nodes().forEach((v) => simplified.setNode(v, g.node(v))); + g.edges().forEach((e) => { + var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 }; + var label = g.edge(e); + simplified.setEdge(e.v, e.w, { + weight: simpleLabel.weight + label.weight, + minlen: Math.max(simpleLabel.minlen, label.minlen) + }); + }); + return simplified; + } + function asNonCompoundGraph(g) { + var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph()); + g.nodes().forEach((v) => { + if (!g.children(v).length) { + simplified.setNode(v, g.node(v)); + } + }); + g.edges().forEach((e) => { + simplified.setEdge(e, g.edge(e)); + }); + return simplified; + } + function successorWeights(g) { + var weightMap = g.nodes().map((v) => { + var sucs = {}; + g.outEdges(v).forEach((e) => { + sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight; + }); + return sucs; + }); + return zipObject(g.nodes(), weightMap); + } + function predecessorWeights(g) { + var weightMap = g.nodes().map((v) => { + var preds = {}; + g.inEdges(v).forEach((e) => { + preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight; + }); + return preds; + }); + return zipObject(g.nodes(), weightMap); + } + function intersectRect(rect, point) { + var x = rect.x; + var y = rect.y; + var dx = point.x - x; + var dy = point.y - y; + var w = rect.width / 2; + var h = rect.height / 2; + if (!dx && !dy) { + throw new Error("Not possible to find intersection inside of the rectangle"); + } + var sx, sy; + if (Math.abs(dy) * w > Math.abs(dx) * h) { + if (dy < 0) { + h = -h; + } + sx = h * dx / dy; + sy = h; + } else { + if (dx < 0) { + w = -w; + } + sx = w; + sy = w * dy / dx; + } + return { x: x + sx, y: y + sy }; + } + function buildLayerMatrix(g) { + var layering = range(maxRank(g) + 1).map(() => []); + g.nodes().forEach((v) => { + var node = g.node(v); + var rank = node.rank; + if (rank !== void 0) { + layering[rank][node.order] = v; + } + }); + return layering; + } + function normalizeRanks(g) { + var min2 = Math.min(...g.nodes().map((v) => { + var rank = g.node(v).rank; + if (rank === void 0) { + return Number.MAX_VALUE; + } + return rank; + })); + g.nodes().forEach((v) => { + var node = g.node(v); + if (node.hasOwnProperty("rank")) { + node.rank -= min2; + } + }); + } + function removeEmptyRanks(g) { + var offset2 = Math.min(...g.nodes().map((v) => g.node(v).rank)); + var layers = []; + g.nodes().forEach((v) => { + var rank = g.node(v).rank - offset2; + if (!layers[rank]) { + layers[rank] = []; + } + layers[rank].push(v); + }); + var delta = 0; + var nodeRankFactor = g.graph().nodeRankFactor; + Array.from(layers).forEach((vs, i) => { + if (vs === void 0 && i % nodeRankFactor !== 0) { + --delta; + } else if (vs !== void 0 && delta) { + vs.forEach((v) => g.node(v).rank += delta); + } + }); + } + function addBorderNode(g, prefix, rank, order2) { + var node = { + width: 0, + height: 0 + }; + if (arguments.length >= 4) { + node.rank = rank; + node.order = order2; + } + return addDummyNode(g, "border", node, prefix); + } + function maxRank(g) { + return Math.max(...g.nodes().map((v) => { + var rank = g.node(v).rank; + if (rank === void 0) { + return Number.MIN_VALUE; + } + return rank; + })); + } + function partition(collection, fn2) { + var result = { lhs: [], rhs: [] }; + collection.forEach((value) => { + if (fn2(value)) { + result.lhs.push(value); + } else { + result.rhs.push(value); + } + }); + return result; + } + function time(name, fn2) { + var start2 = Date.now(); + try { + return fn2(); + } finally { + console.log(name + " time: " + (Date.now() - start2) + "ms"); + } + } + function notime(name, fn2) { + return fn2(); + } + var idCounter = 0; + function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; + } + function range(start2, limit, step = 1) { + if (limit == null) { + limit = start2; + start2 = 0; + } + let endCon = (i) => i < limit; + if (step < 0) { + endCon = (i) => limit < i; + } + const range2 = []; + for (let i = start2; endCon(i); i += step) { + range2.push(i); + } + return range2; + } + function pick(source, keys) { + const dest = {}; + for (const key of keys) { + if (source[key] !== void 0) { + dest[key] = source[key]; + } + } + return dest; + } + function mapValues(obj, funcOrProp) { + let func = funcOrProp; + if (typeof funcOrProp === "string") { + func = (val) => val[funcOrProp]; + } + return Object.entries(obj).reduce((acc, [k, v]) => { + acc[k] = func(v, k); + return acc; + }, {}); + } + function zipObject(props, values) { + return props.reduce((acc, key, i) => { + acc[key] = values[i]; + return acc; + }, {}); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/acyclic.js +var require_acyclic = __commonJS({ + "node_modules/@dagrejs/dagre/lib/acyclic.js"(exports, module2) { + "use strict"; + var greedyFAS = require_greedy_fas(); + var uniqueId = require_util().uniqueId; + module2.exports = { + run: run2, + undo + }; + function run2(g) { + var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g); + fas.forEach(function(e) { + var label = g.edge(e); + g.removeEdge(e); + label.forwardName = e.name; + label.reversed = true; + g.setEdge(e.w, e.v, label, uniqueId("rev")); + }); + function weightFn(g2) { + return function(e) { + return g2.edge(e).weight; + }; + } + } + function dfsFAS(g) { + var fas = []; + var stack = {}; + var visited = {}; + function dfs(v) { + if (visited.hasOwnProperty(v)) { + return; + } + visited[v] = true; + stack[v] = true; + g.outEdges(v).forEach(function(e) { + if (stack.hasOwnProperty(e.w)) { + fas.push(e); + } else { + dfs(e.w); + } + }); + delete stack[v]; + } + g.nodes().forEach(dfs); + return fas; + } + function undo(g) { + g.edges().forEach(function(e) { + var label = g.edge(e); + if (label.reversed) { + g.removeEdge(e); + var forwardName = label.forwardName; + delete label.reversed; + delete label.forwardName; + g.setEdge(e.w, e.v, label, forwardName); + } + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/normalize.js +var require_normalize = __commonJS({ + "node_modules/@dagrejs/dagre/lib/normalize.js"(exports, module2) { + "use strict"; + var util = require_util(); + module2.exports = { + run: run2, + undo + }; + function run2(g) { + g.graph().dummyChains = []; + g.edges().forEach((edge) => normalizeEdge(g, edge)); + } + function normalizeEdge(g, e) { + var v = e.v; + var vRank = g.node(v).rank; + var w = e.w; + var wRank = g.node(w).rank; + var name = e.name; + var edgeLabel = g.edge(e); + var labelRank = edgeLabel.labelRank; + if (wRank === vRank + 1) + return; + g.removeEdge(e); + var dummy, attrs, i; + for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) { + edgeLabel.points = []; + attrs = { + width: 0, + height: 0, + edgeLabel, + edgeObj: e, + rank: vRank + }; + dummy = util.addDummyNode(g, "edge", attrs, "_d"); + if (vRank === labelRank) { + attrs.width = edgeLabel.width; + attrs.height = edgeLabel.height; + attrs.dummy = "edge-label"; + attrs.labelpos = edgeLabel.labelpos; + } + g.setEdge(v, dummy, { weight: edgeLabel.weight }, name); + if (i === 0) { + g.graph().dummyChains.push(dummy); + } + v = dummy; + } + g.setEdge(v, w, { weight: edgeLabel.weight }, name); + } + function undo(g) { + g.graph().dummyChains.forEach(function(v) { + var node = g.node(v); + var origLabel = node.edgeLabel; + var w; + g.setEdge(node.edgeObj, origLabel); + while (node.dummy) { + w = g.successors(v)[0]; + g.removeNode(v); + origLabel.points.push({ x: node.x, y: node.y }); + if (node.dummy === "edge-label") { + origLabel.x = node.x; + origLabel.y = node.y; + origLabel.width = node.width; + origLabel.height = node.height; + } + v = w; + node = g.node(v); + } + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/rank/util.js +var require_util2 = __commonJS({ + "node_modules/@dagrejs/dagre/lib/rank/util.js"(exports, module2) { + "use strict"; + module2.exports = { + longestPath, + slack + }; + function longestPath(g) { + var visited = {}; + function dfs(v) { + var label = g.node(v); + if (visited.hasOwnProperty(v)) { + return label.rank; + } + visited[v] = true; + var rank = Math.min(...g.outEdges(v).map((e) => { + if (e == null) { + return Number.POSITIVE_INFINITY; + } + return dfs(e.w) - g.edge(e).minlen; + })); + if (rank === Number.POSITIVE_INFINITY) { + rank = 0; + } + return label.rank = rank; + } + g.sources().forEach(dfs); + } + function slack(g, e) { + return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/rank/feasible-tree.js +var require_feasible_tree = __commonJS({ + "node_modules/@dagrejs/dagre/lib/rank/feasible-tree.js"(exports, module2) { + "use strict"; + var Graph = require_graphlib().Graph; + var slack = require_util2().slack; + module2.exports = feasibleTree; + function feasibleTree(g) { + var t = new Graph({ directed: false }); + var start2 = g.nodes()[0]; + var size = g.nodeCount(); + t.setNode(start2, {}); + var edge, delta; + while (tightTree(t, g) < size) { + edge = findMinSlackEdge(t, g); + delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge); + shiftRanks(t, g, delta); + } + return t; + } + function tightTree(t, g) { + function dfs(v) { + g.nodeEdges(v).forEach(function(e) { + var edgeV = e.v, w = v === edgeV ? e.w : edgeV; + if (!t.hasNode(w) && !slack(g, e)) { + t.setNode(w, {}); + t.setEdge(v, w, {}); + dfs(w); + } + }); + } + t.nodes().forEach(dfs); + return t.nodeCount(); + } + function findMinSlackEdge(t, g) { + const edges = g.edges(); + return edges.reduce((acc, edge) => { + let edgeSlack = Number.POSITIVE_INFINITY; + if (t.hasNode(edge.v) !== t.hasNode(edge.w)) { + edgeSlack = slack(g, edge); + } + if (edgeSlack < acc[0]) { + return [edgeSlack, edge]; + } + return acc; + }, [Number.POSITIVE_INFINITY, null])[1]; + } + function shiftRanks(t, g, delta) { + t.nodes().forEach((v) => g.node(v).rank += delta); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/rank/network-simplex.js +var require_network_simplex = __commonJS({ + "node_modules/@dagrejs/dagre/lib/rank/network-simplex.js"(exports, module2) { + "use strict"; + var feasibleTree = require_feasible_tree(); + var slack = require_util2().slack; + var initRank = require_util2().longestPath; + var preorder = require_graphlib().alg.preorder; + var postorder = require_graphlib().alg.postorder; + var simplify = require_util().simplify; + module2.exports = networkSimplex; + networkSimplex.initLowLimValues = initLowLimValues; + networkSimplex.initCutValues = initCutValues; + networkSimplex.calcCutValue = calcCutValue; + networkSimplex.leaveEdge = leaveEdge; + networkSimplex.enterEdge = enterEdge; + networkSimplex.exchangeEdges = exchangeEdges; + function networkSimplex(g) { + g = simplify(g); + initRank(g); + var t = feasibleTree(g); + initLowLimValues(t); + initCutValues(t, g); + var e, f; + while (e = leaveEdge(t)) { + f = enterEdge(t, g, e); + exchangeEdges(t, g, e, f); + } + } + function initCutValues(t, g) { + var vs = postorder(t, t.nodes()); + vs = vs.slice(0, vs.length - 1); + vs.forEach((v) => assignCutValue(t, g, v)); + } + function assignCutValue(t, g, child) { + var childLab = t.node(child); + var parent = childLab.parent; + t.edge(child, parent).cutvalue = calcCutValue(t, g, child); + } + function calcCutValue(t, g, child) { + var childLab = t.node(child); + var parent = childLab.parent; + var childIsTail = true; + var graphEdge = g.edge(child, parent); + var cutValue = 0; + if (!graphEdge) { + childIsTail = false; + graphEdge = g.edge(parent, child); + } + cutValue = graphEdge.weight; + g.nodeEdges(child).forEach(function(e) { + var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v; + if (other !== parent) { + var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight; + cutValue += pointsToHead ? otherWeight : -otherWeight; + if (isTreeEdge(t, child, other)) { + var otherCutValue = t.edge(child, other).cutvalue; + cutValue += pointsToHead ? -otherCutValue : otherCutValue; + } + } + }); + return cutValue; + } + function initLowLimValues(tree, root) { + if (arguments.length < 2) { + root = tree.nodes()[0]; + } + dfsAssignLowLim(tree, {}, 1, root); + } + function dfsAssignLowLim(tree, visited, nextLim, v, parent) { + var low = nextLim; + var label = tree.node(v); + visited[v] = true; + tree.neighbors(v).forEach(function(w) { + if (!visited.hasOwnProperty(w)) { + nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v); + } + }); + label.low = low; + label.lim = nextLim++; + if (parent) { + label.parent = parent; + } else { + delete label.parent; + } + return nextLim; + } + function leaveEdge(tree) { + return tree.edges().find((e) => tree.edge(e).cutvalue < 0); + } + function enterEdge(t, g, edge) { + var v = edge.v; + var w = edge.w; + if (!g.hasEdge(v, w)) { + v = edge.w; + w = edge.v; + } + var vLabel = t.node(v); + var wLabel = t.node(w); + var tailLabel = vLabel; + var flip2 = false; + if (vLabel.lim > wLabel.lim) { + tailLabel = wLabel; + flip2 = true; + } + var candidates = g.edges().filter(function(edge2) { + return flip2 === isDescendant(t, t.node(edge2.v), tailLabel) && flip2 !== isDescendant(t, t.node(edge2.w), tailLabel); + }); + return candidates.reduce((acc, edge2) => { + if (slack(g, edge2) < slack(g, acc)) { + return edge2; + } + return acc; + }); + } + function exchangeEdges(t, g, e, f) { + var v = e.v; + var w = e.w; + t.removeEdge(v, w); + t.setEdge(f.v, f.w, {}); + initLowLimValues(t); + initCutValues(t, g); + updateRanks(t, g); + } + function updateRanks(t, g) { + var root = t.nodes().find((v) => !g.node(v).parent); + var vs = preorder(t, root); + vs = vs.slice(1); + vs.forEach(function(v) { + var parent = t.node(v).parent, edge = g.edge(v, parent), flipped = false; + if (!edge) { + edge = g.edge(parent, v); + flipped = true; + } + g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen); + }); + } + function isTreeEdge(tree, u, v) { + return tree.hasEdge(u, v); + } + function isDescendant(tree, vLabel, rootLabel) { + return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/rank/index.js +var require_rank = __commonJS({ + "node_modules/@dagrejs/dagre/lib/rank/index.js"(exports, module2) { + "use strict"; + var rankUtil = require_util2(); + var longestPath = rankUtil.longestPath; + var feasibleTree = require_feasible_tree(); + var networkSimplex = require_network_simplex(); + module2.exports = rank; + function rank(g) { + switch (g.graph().ranker) { + case "network-simplex": + networkSimplexRanker(g); + break; + case "tight-tree": + tightTreeRanker(g); + break; + case "longest-path": + longestPathRanker(g); + break; + default: + networkSimplexRanker(g); + } + } + var longestPathRanker = longestPath; + function tightTreeRanker(g) { + longestPath(g); + feasibleTree(g); + } + function networkSimplexRanker(g) { + networkSimplex(g); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/parent-dummy-chains.js +var require_parent_dummy_chains = __commonJS({ + "node_modules/@dagrejs/dagre/lib/parent-dummy-chains.js"(exports, module2) { + module2.exports = parentDummyChains; + function parentDummyChains(g) { + var postorderNums = postorder(g); + g.graph().dummyChains.forEach(function(v) { + var node = g.node(v); + var edgeObj = node.edgeObj; + var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w); + var path = pathData.path; + var lca = pathData.lca; + var pathIdx = 0; + var pathV = path[pathIdx]; + var ascending = true; + while (v !== edgeObj.w) { + node = g.node(v); + if (ascending) { + while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) { + pathIdx++; + } + if (pathV === lca) { + ascending = false; + } + } + if (!ascending) { + while (pathIdx < path.length - 1 && g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) { + pathIdx++; + } + pathV = path[pathIdx]; + } + g.setParent(v, pathV); + v = g.successors(v)[0]; + } + }); + } + function findPath(g, postorderNums, v, w) { + var vPath = []; + var wPath = []; + var low = Math.min(postorderNums[v].low, postorderNums[w].low); + var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim); + var parent; + var lca; + parent = v; + do { + parent = g.parent(parent); + vPath.push(parent); + } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim)); + lca = parent; + parent = w; + while ((parent = g.parent(parent)) !== lca) { + wPath.push(parent); + } + return { path: vPath.concat(wPath.reverse()), lca }; + } + function postorder(g) { + var result = {}; + var lim = 0; + function dfs(v) { + var low = lim; + g.children(v).forEach(dfs); + result[v] = { low, lim: lim++ }; + } + g.children().forEach(dfs); + return result; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/nesting-graph.js +var require_nesting_graph = __commonJS({ + "node_modules/@dagrejs/dagre/lib/nesting-graph.js"(exports, module2) { + var util = require_util(); + module2.exports = { + run: run2, + cleanup + }; + function run2(g) { + var root = util.addDummyNode(g, "root", {}, "_root"); + var depths = treeDepths(g); + var height = Math.max(...Object.values(depths)) - 1; + var nodeSep = 2 * height + 1; + g.graph().nestingRoot = root; + g.edges().forEach((e) => g.edge(e).minlen *= nodeSep); + var weight = sumWeights(g) + 1; + g.children().forEach(function(child) { + dfs(g, root, nodeSep, weight, height, depths, child); + }); + g.graph().nodeRankFactor = nodeSep; + } + function dfs(g, root, nodeSep, weight, height, depths, v) { + var children2 = g.children(v); + if (!children2.length) { + if (v !== root) { + g.setEdge(root, v, { weight: 0, minlen: nodeSep }); + } + return; + } + var top2 = util.addBorderNode(g, "_bt"); + var bottom2 = util.addBorderNode(g, "_bb"); + var label = g.node(v); + g.setParent(top2, v); + label.borderTop = top2; + g.setParent(bottom2, v); + label.borderBottom = bottom2; + children2.forEach(function(child) { + dfs(g, root, nodeSep, weight, height, depths, child); + var childNode = g.node(child); + var childTop = childNode.borderTop ? childNode.borderTop : child; + var childBottom = childNode.borderBottom ? childNode.borderBottom : child; + var thisWeight = childNode.borderTop ? weight : 2 * weight; + var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1; + g.setEdge(top2, childTop, { + weight: thisWeight, + minlen, + nestingEdge: true + }); + g.setEdge(childBottom, bottom2, { + weight: thisWeight, + minlen, + nestingEdge: true + }); + }); + if (!g.parent(v)) { + g.setEdge(root, top2, { weight: 0, minlen: height + depths[v] }); + } + } + function treeDepths(g) { + var depths = {}; + function dfs2(v, depth) { + var children2 = g.children(v); + if (children2 && children2.length) { + children2.forEach((child) => dfs2(child, depth + 1)); + } + depths[v] = depth; + } + g.children().forEach((v) => dfs2(v, 1)); + return depths; + } + function sumWeights(g) { + return g.edges().reduce((acc, e) => acc + g.edge(e).weight, 0); + } + function cleanup(g) { + var graphLabel = g.graph(); + g.removeNode(graphLabel.nestingRoot); + delete graphLabel.nestingRoot; + g.edges().forEach((e) => { + var edge = g.edge(e); + if (edge.nestingEdge) { + g.removeEdge(e); + } + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/add-border-segments.js +var require_add_border_segments = __commonJS({ + "node_modules/@dagrejs/dagre/lib/add-border-segments.js"(exports, module2) { + var util = require_util(); + module2.exports = addBorderSegments; + function addBorderSegments(g) { + function dfs(v) { + var children2 = g.children(v); + var node = g.node(v); + if (children2.length) { + children2.forEach(dfs); + } + if (node.hasOwnProperty("minRank")) { + node.borderLeft = []; + node.borderRight = []; + for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) { + addBorderNode(g, "borderLeft", "_bl", v, node, rank); + addBorderNode(g, "borderRight", "_br", v, node, rank); + } + } + } + g.children().forEach(dfs); + } + function addBorderNode(g, prop, prefix, sg, sgNode, rank) { + var label = { width: 0, height: 0, rank, borderType: prop }; + var prev = sgNode[prop][rank - 1]; + var curr = util.addDummyNode(g, "border", label, prefix); + sgNode[prop][rank] = curr; + g.setParent(curr, sg); + if (prev) { + g.setEdge(prev, curr, { weight: 1 }); + } + } + } +}); + +// node_modules/@dagrejs/dagre/lib/coordinate-system.js +var require_coordinate_system = __commonJS({ + "node_modules/@dagrejs/dagre/lib/coordinate-system.js"(exports, module2) { + "use strict"; + module2.exports = { + adjust, + undo + }; + function adjust(g) { + var rankDir = g.graph().rankdir.toLowerCase(); + if (rankDir === "lr" || rankDir === "rl") { + swapWidthHeight(g); + } + } + function undo(g) { + var rankDir = g.graph().rankdir.toLowerCase(); + if (rankDir === "bt" || rankDir === "rl") { + reverseY(g); + } + if (rankDir === "lr" || rankDir === "rl") { + swapXY(g); + swapWidthHeight(g); + } + } + function swapWidthHeight(g) { + g.nodes().forEach((v) => swapWidthHeightOne(g.node(v))); + g.edges().forEach((e) => swapWidthHeightOne(g.edge(e))); + } + function swapWidthHeightOne(attrs) { + var w = attrs.width; + attrs.width = attrs.height; + attrs.height = w; + } + function reverseY(g) { + g.nodes().forEach((v) => reverseYOne(g.node(v))); + g.edges().forEach(function(e) { + var edge = g.edge(e); + edge.points.forEach(reverseYOne); + if (edge.hasOwnProperty("y")) { + reverseYOne(edge); + } + }); + } + function reverseYOne(attrs) { + attrs.y = -attrs.y; + } + function swapXY(g) { + g.nodes().forEach((v) => swapXYOne(g.node(v))); + g.edges().forEach(function(e) { + var edge = g.edge(e); + edge.points.forEach(swapXYOne); + if (edge.hasOwnProperty("x")) { + swapXYOne(edge); + } + }); + } + function swapXYOne(attrs) { + var x = attrs.x; + attrs.x = attrs.y; + attrs.y = x; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/init-order.js +var require_init_order = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/init-order.js"(exports, module2) { + "use strict"; + var util = require_util(); + module2.exports = initOrder; + function initOrder(g) { + var visited = {}; + var simpleNodes = g.nodes().filter((v) => !g.children(v).length); + var maxRank = Math.max(...simpleNodes.map((v) => g.node(v).rank)); + var layers = util.range(maxRank + 1).map(() => []); + function dfs(v) { + if (visited[v]) + return; + visited[v] = true; + var node = g.node(v); + layers[node.rank].push(v); + g.successors(v).forEach(dfs); + } + var orderedVs = simpleNodes.sort((a, b) => g.node(a).rank - g.node(b).rank); + orderedVs.forEach(dfs); + return layers; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/cross-count.js +var require_cross_count = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/cross-count.js"(exports, module2) { + "use strict"; + var zipObject = require_util().zipObject; + module2.exports = crossCount; + function crossCount(g, layering) { + var cc = 0; + for (var i = 1; i < layering.length; ++i) { + cc += twoLayerCrossCount(g, layering[i - 1], layering[i]); + } + return cc; + } + function twoLayerCrossCount(g, northLayer, southLayer) { + var southPos = zipObject(southLayer, southLayer.map((v, i) => i)); + var southEntries = northLayer.flatMap((v) => { + return g.outEdges(v).map((e) => { + return { pos: southPos[e.w], weight: g.edge(e).weight }; + }).sort((a, b) => a.pos - b.pos); + }); + var firstIndex = 1; + while (firstIndex < southLayer.length) + firstIndex <<= 1; + var treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + var tree = new Array(treeSize).fill(0); + var cc = 0; + southEntries.forEach((entry) => { + var index = entry.pos + firstIndex; + tree[index] += entry.weight; + var weightSum = 0; + while (index > 0) { + if (index % 2) { + weightSum += tree[index + 1]; + } + index = index - 1 >> 1; + tree[index] += entry.weight; + } + cc += entry.weight * weightSum; + }); + return cc; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/barycenter.js +var require_barycenter = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/barycenter.js"(exports, module2) { + module2.exports = barycenter; + function barycenter(g, movable = []) { + return movable.map((v) => { + var inV = g.inEdges(v); + if (!inV.length) { + return { v }; + } else { + var result = inV.reduce((acc, e) => { + var edge = g.edge(e), nodeU = g.node(e.v); + return { + sum: acc.sum + edge.weight * nodeU.order, + weight: acc.weight + edge.weight + }; + }, { sum: 0, weight: 0 }); + return { + v, + barycenter: result.sum / result.weight, + weight: result.weight + }; + } + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/resolve-conflicts.js +var require_resolve_conflicts = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/resolve-conflicts.js"(exports, module2) { + "use strict"; + var util = require_util(); + module2.exports = resolveConflicts; + function resolveConflicts(entries, cg) { + var mappedEntries = {}; + entries.forEach((entry, i) => { + var tmp = mappedEntries[entry.v] = { + indegree: 0, + "in": [], + out: [], + vs: [entry.v], + i + }; + if (entry.barycenter !== void 0) { + tmp.barycenter = entry.barycenter; + tmp.weight = entry.weight; + } + }); + cg.edges().forEach((e) => { + var entryV = mappedEntries[e.v]; + var entryW = mappedEntries[e.w]; + if (entryV !== void 0 && entryW !== void 0) { + entryW.indegree++; + entryV.out.push(mappedEntries[e.w]); + } + }); + var sourceSet = Object.values(mappedEntries).filter((entry) => !entry.indegree); + return doResolveConflicts(sourceSet); + } + function doResolveConflicts(sourceSet) { + var entries = []; + function handleIn(vEntry) { + return function(uEntry) { + if (uEntry.merged) { + return; + } + if (uEntry.barycenter === void 0 || vEntry.barycenter === void 0 || uEntry.barycenter >= vEntry.barycenter) { + mergeEntries(vEntry, uEntry); + } + }; + } + function handleOut(vEntry) { + return function(wEntry) { + wEntry["in"].push(vEntry); + if (--wEntry.indegree === 0) { + sourceSet.push(wEntry); + } + }; + } + while (sourceSet.length) { + var entry = sourceSet.pop(); + entries.push(entry); + entry["in"].reverse().forEach(handleIn(entry)); + entry.out.forEach(handleOut(entry)); + } + return entries.filter((entry2) => !entry2.merged).map((entry2) => { + return util.pick(entry2, ["vs", "i", "barycenter", "weight"]); + }); + } + function mergeEntries(target, source) { + var sum = 0; + var weight = 0; + if (target.weight) { + sum += target.barycenter * target.weight; + weight += target.weight; + } + if (source.weight) { + sum += source.barycenter * source.weight; + weight += source.weight; + } + target.vs = source.vs.concat(target.vs); + target.barycenter = sum / weight; + target.weight = weight; + target.i = Math.min(source.i, target.i); + source.merged = true; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/sort.js +var require_sort = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/sort.js"(exports, module2) { + var util = require_util(); + module2.exports = sort; + function sort(entries, biasRight) { + var parts = util.partition(entries, function(entry) { + return entry.hasOwnProperty("barycenter"); + }); + var sortable = parts.lhs, unsortable = parts.rhs.sort((a, b) => b.i - a.i), vs = [], sum = 0, weight = 0, vsIndex = 0; + sortable.sort(compareWithBias(!!biasRight)); + vsIndex = consumeUnsortable(vs, unsortable, vsIndex); + sortable.forEach(function(entry) { + vsIndex += entry.vs.length; + vs.push(entry.vs); + sum += entry.barycenter * entry.weight; + weight += entry.weight; + vsIndex = consumeUnsortable(vs, unsortable, vsIndex); + }); + var result = { vs: vs.flat(true) }; + if (weight) { + result.barycenter = sum / weight; + result.weight = weight; + } + return result; + } + function consumeUnsortable(vs, unsortable, index) { + var last; + while (unsortable.length && (last = unsortable[unsortable.length - 1]).i <= index) { + unsortable.pop(); + vs.push(last.vs); + index++; + } + return index; + } + function compareWithBias(bias) { + return function(entryV, entryW) { + if (entryV.barycenter < entryW.barycenter) { + return -1; + } else if (entryV.barycenter > entryW.barycenter) { + return 1; + } + return !bias ? entryV.i - entryW.i : entryW.i - entryV.i; + }; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/sort-subgraph.js +var require_sort_subgraph = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/sort-subgraph.js"(exports, module2) { + var barycenter = require_barycenter(); + var resolveConflicts = require_resolve_conflicts(); + var sort = require_sort(); + module2.exports = sortSubgraph; + function sortSubgraph(g, v, cg, biasRight) { + var movable = g.children(v); + var node = g.node(v); + var bl = node ? node.borderLeft : void 0; + var br = node ? node.borderRight : void 0; + var subgraphs = {}; + if (bl) { + movable = movable.filter((w) => w !== bl && w !== br); + } + var barycenters = barycenter(g, movable); + barycenters.forEach(function(entry) { + if (g.children(entry.v).length) { + var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight); + subgraphs[entry.v] = subgraphResult; + if (subgraphResult.hasOwnProperty("barycenter")) { + mergeBarycenters(entry, subgraphResult); + } + } + }); + var entries = resolveConflicts(barycenters, cg); + expandSubgraphs(entries, subgraphs); + var result = sort(entries, biasRight); + if (bl) { + result.vs = [bl, result.vs, br].flat(true); + if (g.predecessors(bl).length) { + var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]); + if (!result.hasOwnProperty("barycenter")) { + result.barycenter = 0; + result.weight = 0; + } + result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2); + result.weight += 2; + } + } + return result; + } + function expandSubgraphs(entries, subgraphs) { + entries.forEach(function(entry) { + entry.vs = entry.vs.flatMap(function(v) { + if (subgraphs[v]) { + return subgraphs[v].vs; + } + return v; + }); + }); + } + function mergeBarycenters(target, other) { + if (target.barycenter !== void 0) { + target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight); + target.weight += other.weight; + } else { + target.barycenter = other.barycenter; + target.weight = other.weight; + } + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/build-layer-graph.js +var require_build_layer_graph = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/build-layer-graph.js"(exports, module2) { + var Graph = require_graphlib().Graph; + var util = require_util(); + module2.exports = buildLayerGraph; + function buildLayerGraph(g, rank, relationship) { + var root = createRootNode2(g), result = new Graph({ compound: true }).setGraph({ root }).setDefaultNodeLabel(function(v) { + return g.node(v); + }); + g.nodes().forEach(function(v) { + var node = g.node(v), parent = g.parent(v); + if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) { + result.setNode(v); + result.setParent(v, parent || root); + g[relationship](v).forEach(function(e) { + var u = e.v === v ? e.w : e.v, edge = result.edge(u, v), weight = edge !== void 0 ? edge.weight : 0; + result.setEdge(u, v, { weight: g.edge(e).weight + weight }); + }); + if (node.hasOwnProperty("minRank")) { + result.setNode(v, { + borderLeft: node.borderLeft[rank], + borderRight: node.borderRight[rank] + }); + } + } + }); + return result; + } + function createRootNode2(g) { + var v; + while (g.hasNode(v = util.uniqueId("_root"))) + ; + return v; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/add-subgraph-constraints.js +var require_add_subgraph_constraints = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/add-subgraph-constraints.js"(exports, module2) { + module2.exports = addSubgraphConstraints; + function addSubgraphConstraints(g, cg, vs) { + var prev = {}, rootPrev; + vs.forEach(function(v) { + var child = g.parent(v), parent, prevChild; + while (child) { + parent = g.parent(child); + if (parent) { + prevChild = prev[parent]; + prev[parent] = child; + } else { + prevChild = rootPrev; + rootPrev = child; + } + if (prevChild && prevChild !== child) { + cg.setEdge(prevChild, child); + return; + } + child = parent; + } + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/order/index.js +var require_order = __commonJS({ + "node_modules/@dagrejs/dagre/lib/order/index.js"(exports, module2) { + "use strict"; + var initOrder = require_init_order(); + var crossCount = require_cross_count(); + var sortSubgraph = require_sort_subgraph(); + var buildLayerGraph = require_build_layer_graph(); + var addSubgraphConstraints = require_add_subgraph_constraints(); + var Graph = require_graphlib().Graph; + var util = require_util(); + module2.exports = order2; + function order2(g) { + var maxRank = util.maxRank(g), downLayerGraphs = buildLayerGraphs(g, util.range(1, maxRank + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, util.range(maxRank - 1, -1, -1), "outEdges"); + var layering = initOrder(g); + assignOrder(g, layering); + var bestCC = Number.POSITIVE_INFINITY, best; + for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) { + sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2); + layering = util.buildLayerMatrix(g); + var cc = crossCount(g, layering); + if (cc < bestCC) { + lastBest = 0; + best = Object.assign({}, layering); + bestCC = cc; + } + } + assignOrder(g, best); + } + function buildLayerGraphs(g, ranks, relationship) { + return ranks.map(function(rank) { + return buildLayerGraph(g, rank, relationship); + }); + } + function sweepLayerGraphs(layerGraphs, biasRight) { + var cg = new Graph(); + layerGraphs.forEach(function(lg) { + var root = lg.graph().root; + var sorted = sortSubgraph(lg, root, cg, biasRight); + sorted.vs.forEach((v, i) => lg.node(v).order = i); + addSubgraphConstraints(lg, cg, sorted.vs); + }); + } + function assignOrder(g, layering) { + Object.values(layering).forEach((layer) => layer.forEach((v, i) => g.node(v).order = i)); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/position/bk.js +var require_bk = __commonJS({ + "node_modules/@dagrejs/dagre/lib/position/bk.js"(exports, module2) { + "use strict"; + var Graph = require_graphlib().Graph; + var util = require_util(); + module2.exports = { + positionX, + findType1Conflicts, + findType2Conflicts, + addConflict, + hasConflict, + verticalAlignment, + horizontalCompaction, + alignCoordinates, + findSmallestWidthAlignment, + balance + }; + function findType1Conflicts(g, layering) { + var conflicts = {}; + function visitLayer(prevLayer, layer) { + var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = layer[layer.length - 1]; + layer.forEach(function(v, i) { + var w = findOtherInnerSegmentNode(g, v), k1 = w ? g.node(w).order : prevLayerLength; + if (w || v === lastNode) { + layer.slice(scanPos, i + 1).forEach(function(scanNode) { + g.predecessors(scanNode).forEach(function(u) { + var uLabel = g.node(u), uPos = uLabel.order; + if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) { + addConflict(conflicts, u, scanNode); + } + }); + }); + scanPos = i + 1; + k0 = k1; + } + }); + return layer; + } + layering.reduce(visitLayer); + return conflicts; + } + function findType2Conflicts(g, layering) { + var conflicts = {}; + function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) { + var v; + util.range(southPos, southEnd).forEach(function(i) { + v = south[i]; + if (g.node(v).dummy) { + g.predecessors(v).forEach(function(u) { + var uNode = g.node(u); + if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) { + addConflict(conflicts, u, v); + } + }); + } + }); + } + function visitLayer(north, south) { + var prevNorthPos = -1, nextNorthPos, southPos = 0; + south.forEach(function(v, southLookahead) { + if (g.node(v).dummy === "border") { + var predecessors = g.predecessors(v); + if (predecessors.length) { + nextNorthPos = g.node(predecessors[0]).order; + scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos); + southPos = southLookahead; + prevNorthPos = nextNorthPos; + } + } + scan(south, southPos, south.length, nextNorthPos, north.length); + }); + return south; + } + layering.reduce(visitLayer); + return conflicts; + } + function findOtherInnerSegmentNode(g, v) { + if (g.node(v).dummy) { + return g.predecessors(v).find((u) => g.node(u).dummy); + } + } + function addConflict(conflicts, v, w) { + if (v > w) { + var tmp = v; + v = w; + w = tmp; + } + var conflictsV = conflicts[v]; + if (!conflictsV) { + conflicts[v] = conflictsV = {}; + } + conflictsV[w] = true; + } + function hasConflict(conflicts, v, w) { + if (v > w) { + var tmp = v; + v = w; + w = tmp; + } + return !!conflicts[v] && conflicts[v].hasOwnProperty(w); + } + function verticalAlignment(g, layering, conflicts, neighborFn) { + var root = {}, align = {}, pos = {}; + layering.forEach(function(layer) { + layer.forEach(function(v, order2) { + root[v] = v; + align[v] = v; + pos[v] = order2; + }); + }); + layering.forEach(function(layer) { + var prevIdx = -1; + layer.forEach(function(v) { + var ws = neighborFn(v); + if (ws.length) { + ws = ws.sort((a, b) => pos[a] - pos[b]); + var mp = (ws.length - 1) / 2; + for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) { + var w = ws[i]; + if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) { + align[w] = v; + align[v] = root[v] = root[w]; + prevIdx = pos[w]; + } + } + } + }); + }); + return { root, align }; + } + function horizontalCompaction(g, layering, root, align, reverseSep) { + var xs = {}, blockG = buildBlockGraph(g, layering, root, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight"; + function iterate(setXsFunc, nextNodesFunc) { + var stack = blockG.nodes(); + var elem = stack.pop(); + var visited = {}; + while (elem) { + if (visited[elem]) { + setXsFunc(elem); + } else { + visited[elem] = true; + stack.push(elem); + stack = stack.concat(nextNodesFunc(elem)); + } + elem = stack.pop(); + } + } + function pass1(elem) { + xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) { + return Math.max(acc, xs[e.v] + blockG.edge(e)); + }, 0); + } + function pass2(elem) { + var min2 = blockG.outEdges(elem).reduce(function(acc, e) { + return Math.min(acc, xs[e.w] - blockG.edge(e)); + }, Number.POSITIVE_INFINITY); + var node = g.node(elem); + if (min2 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) { + xs[elem] = Math.max(xs[elem], min2); + } + } + iterate(pass1, blockG.predecessors.bind(blockG)); + iterate(pass2, blockG.successors.bind(blockG)); + Object.keys(align).forEach((v) => xs[v] = xs[root[v]]); + return xs; + } + function buildBlockGraph(g, layering, root, reverseSep) { + var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep); + layering.forEach(function(layer) { + var u; + layer.forEach(function(v) { + var vRoot = root[v]; + blockGraph.setNode(vRoot); + if (u) { + var uRoot = root[u], prevMax = blockGraph.edge(uRoot, vRoot); + blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0)); + } + u = v; + }); + }); + return blockGraph; + } + function findSmallestWidthAlignment(g, xss) { + return Object.values(xss).reduce((currentMinAndXs, xs) => { + var max2 = Number.NEGATIVE_INFINITY; + var min2 = Number.POSITIVE_INFINITY; + Object.entries(xs).forEach(([v, x]) => { + var halfWidth = width(g, v) / 2; + max2 = Math.max(x + halfWidth, max2); + min2 = Math.min(x - halfWidth, min2); + }); + const newMin = max2 - min2; + if (newMin < currentMinAndXs[0]) { + currentMinAndXs = [newMin, xs]; + } + return currentMinAndXs; + }, [Number.POSITIVE_INFINITY, null])[1]; + } + function alignCoordinates(xss, alignTo) { + var alignToVals = Object.values(alignTo), alignToMin = Math.min(...alignToVals), alignToMax = Math.max(...alignToVals); + ["u", "d"].forEach(function(vert) { + ["l", "r"].forEach(function(horiz) { + var alignment = vert + horiz, xs = xss[alignment]; + if (xs === alignTo) + return; + var xsVals = Object.values(xs); + let delta = alignToMin - Math.min(...xsVals); + if (horiz !== "l") { + delta = alignToMax - Math.max(...xsVals); + } + if (delta) { + xss[alignment] = util.mapValues(xs, (x) => x + delta); + } + }); + }); + } + function balance(xss, align) { + return util.mapValues(xss.ul, function(num, v) { + if (align) { + return xss[align.toLowerCase()][v]; + } else { + var xs = Object.values(xss).map((xs2) => xs2[v]).sort((a, b) => a - b); + return (xs[1] + xs[2]) / 2; + } + }); + } + function positionX(g) { + var layering = util.buildLayerMatrix(g); + var conflicts = Object.assign(findType1Conflicts(g, layering), findType2Conflicts(g, layering)); + var xss = {}; + var adjustedLayering; + ["u", "d"].forEach(function(vert) { + adjustedLayering = vert === "u" ? layering : Object.values(layering).reverse(); + ["l", "r"].forEach(function(horiz) { + if (horiz === "r") { + adjustedLayering = adjustedLayering.map((inner) => { + return Object.values(inner).reverse(); + }); + } + var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g); + var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn); + var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r"); + if (horiz === "r") { + xs = util.mapValues(xs, (x) => -x); + } + xss[vert + horiz] = xs; + }); + }); + var smallestWidth = findSmallestWidthAlignment(g, xss); + alignCoordinates(xss, smallestWidth); + return balance(xss, g.graph().align); + } + function sep(nodeSep, edgeSep, reverseSep) { + return function(g, v, w) { + var vLabel = g.node(v); + var wLabel = g.node(w); + var sum = 0; + var delta; + sum += vLabel.width / 2; + if (vLabel.hasOwnProperty("labelpos")) { + switch (vLabel.labelpos.toLowerCase()) { + case "l": + delta = -vLabel.width / 2; + break; + case "r": + delta = vLabel.width / 2; + break; + } + } + if (delta) { + sum += reverseSep ? delta : -delta; + } + delta = 0; + sum += (vLabel.dummy ? edgeSep : nodeSep) / 2; + sum += (wLabel.dummy ? edgeSep : nodeSep) / 2; + sum += wLabel.width / 2; + if (wLabel.hasOwnProperty("labelpos")) { + switch (wLabel.labelpos.toLowerCase()) { + case "l": + delta = wLabel.width / 2; + break; + case "r": + delta = -wLabel.width / 2; + break; + } + } + if (delta) { + sum += reverseSep ? delta : -delta; + } + delta = 0; + return sum; + }; + } + function width(g, v) { + return g.node(v).width; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/position/index.js +var require_position = __commonJS({ + "node_modules/@dagrejs/dagre/lib/position/index.js"(exports, module2) { + "use strict"; + var util = require_util(); + var positionX = require_bk().positionX; + module2.exports = position; + function position(g) { + g = util.asNonCompoundGraph(g); + positionY(g); + Object.entries(positionX(g)).forEach(([v, x]) => g.node(v).x = x); + } + function positionY(g) { + var layering = util.buildLayerMatrix(g); + var rankSep = g.graph().ranksep; + var prevY = 0; + layering.forEach(function(layer) { + const maxHeight = layer.reduce((acc, v) => { + const height = g.node(v).height; + if (acc > height) { + return acc; + } else { + return height; + } + }, 0); + layer.forEach((v) => g.node(v).y = prevY + maxHeight / 2); + prevY += maxHeight + rankSep; + }); + } + } +}); + +// node_modules/@dagrejs/dagre/lib/layout.js +var require_layout = __commonJS({ + "node_modules/@dagrejs/dagre/lib/layout.js"(exports, module2) { + "use strict"; + var acyclic = require_acyclic(); + var normalize = require_normalize(); + var rank = require_rank(); + var normalizeRanks = require_util().normalizeRanks; + var parentDummyChains = require_parent_dummy_chains(); + var removeEmptyRanks = require_util().removeEmptyRanks; + var nestingGraph = require_nesting_graph(); + var addBorderSegments = require_add_border_segments(); + var coordinateSystem = require_coordinate_system(); + var order2 = require_order(); + var position = require_position(); + var util = require_util(); + var Graph = require_graphlib().Graph; + module2.exports = layout; + function layout(g, opts) { + var time = opts && opts.debugTiming ? util.time : util.notime; + time("layout", function() { + var layoutGraph = time(" buildLayoutGraph", function() { + return buildLayoutGraph(g); + }); + time(" runLayout", function() { + runLayout(layoutGraph, time); + }); + time(" updateInputGraph", function() { + updateInputGraph(g, layoutGraph); + }); + }); + } + function runLayout(g, time) { + time(" makeSpaceForEdgeLabels", function() { + makeSpaceForEdgeLabels(g); + }); + time(" removeSelfEdges", function() { + removeSelfEdges(g); + }); + time(" acyclic", function() { + acyclic.run(g); + }); + time(" nestingGraph.run", function() { + nestingGraph.run(g); + }); + time(" rank", function() { + rank(util.asNonCompoundGraph(g)); + }); + time(" injectEdgeLabelProxies", function() { + injectEdgeLabelProxies(g); + }); + time(" removeEmptyRanks", function() { + removeEmptyRanks(g); + }); + time(" nestingGraph.cleanup", function() { + nestingGraph.cleanup(g); + }); + time(" normalizeRanks", function() { + normalizeRanks(g); + }); + time(" assignRankMinMax", function() { + assignRankMinMax(g); + }); + time(" removeEdgeLabelProxies", function() { + removeEdgeLabelProxies(g); + }); + time(" normalize.run", function() { + normalize.run(g); + }); + time(" parentDummyChains", function() { + parentDummyChains(g); + }); + time(" addBorderSegments", function() { + addBorderSegments(g); + }); + time(" order", function() { + order2(g); + }); + time(" insertSelfEdges", function() { + insertSelfEdges(g); + }); + time(" adjustCoordinateSystem", function() { + coordinateSystem.adjust(g); + }); + time(" position", function() { + position(g); + }); + time(" positionSelfEdges", function() { + positionSelfEdges(g); + }); + time(" removeBorderNodes", function() { + removeBorderNodes(g); + }); + time(" normalize.undo", function() { + normalize.undo(g); + }); + time(" fixupEdgeLabelCoords", function() { + fixupEdgeLabelCoords(g); + }); + time(" undoCoordinateSystem", function() { + coordinateSystem.undo(g); + }); + time(" translateGraph", function() { + translateGraph(g); + }); + time(" assignNodeIntersects", function() { + assignNodeIntersects(g); + }); + time(" reversePoints", function() { + reversePointsForReversedEdges(g); + }); + time(" acyclic.undo", function() { + acyclic.undo(g); + }); + } + function updateInputGraph(inputGraph, layoutGraph) { + inputGraph.nodes().forEach((v) => { + var inputLabel = inputGraph.node(v); + var layoutLabel = layoutGraph.node(v); + if (inputLabel) { + inputLabel.x = layoutLabel.x; + inputLabel.y = layoutLabel.y; + inputLabel.rank = layoutLabel.rank; + if (layoutGraph.children(v).length) { + inputLabel.width = layoutLabel.width; + inputLabel.height = layoutLabel.height; + } + } + }); + inputGraph.edges().forEach((e) => { + var inputLabel = inputGraph.edge(e); + var layoutLabel = layoutGraph.edge(e); + inputLabel.points = layoutLabel.points; + if (layoutLabel.hasOwnProperty("x")) { + inputLabel.x = layoutLabel.x; + inputLabel.y = layoutLabel.y; + } + }); + inputGraph.graph().width = layoutGraph.graph().width; + inputGraph.graph().height = layoutGraph.graph().height; + } + var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"]; + var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }; + var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"]; + var nodeNumAttrs = ["width", "height"]; + var nodeDefaults = { width: 0, height: 0 }; + var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"]; + var edgeDefaults = { + minlen: 1, + weight: 1, + width: 0, + height: 0, + labeloffset: 10, + labelpos: "r" + }; + var edgeAttrs = ["labelpos"]; + function buildLayoutGraph(inputGraph) { + var g = new Graph({ multigraph: true, compound: true }); + var graph = canonicalize(inputGraph.graph()); + g.setGraph(Object.assign({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), util.pick(graph, graphAttrs))); + inputGraph.nodes().forEach((v) => { + var node = canonicalize(inputGraph.node(v)); + const newNode = selectNumberAttrs(node, nodeNumAttrs); + Object.keys(nodeDefaults).forEach((k) => { + if (newNode[k] === void 0) { + newNode[k] = nodeDefaults[k]; + } + }); + g.setNode(v, newNode); + g.setParent(v, inputGraph.parent(v)); + }); + inputGraph.edges().forEach((e) => { + var edge = canonicalize(inputGraph.edge(e)); + g.setEdge(e, Object.assign({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), util.pick(edge, edgeAttrs))); + }); + return g; + } + function makeSpaceForEdgeLabels(g) { + var graph = g.graph(); + graph.ranksep /= 2; + g.edges().forEach((e) => { + var edge = g.edge(e); + edge.minlen *= 2; + if (edge.labelpos.toLowerCase() !== "c") { + if (graph.rankdir === "TB" || graph.rankdir === "BT") { + edge.width += edge.labeloffset; + } else { + edge.height += edge.labeloffset; + } + } + }); + } + function injectEdgeLabelProxies(g) { + g.edges().forEach((e) => { + var edge = g.edge(e); + if (edge.width && edge.height) { + var v = g.node(e.v); + var w = g.node(e.w); + var label = { rank: (w.rank - v.rank) / 2 + v.rank, e }; + util.addDummyNode(g, "edge-proxy", label, "_ep"); + } + }); + } + function assignRankMinMax(g) { + var maxRank = 0; + g.nodes().forEach((v) => { + var node = g.node(v); + if (node.borderTop) { + node.minRank = g.node(node.borderTop).rank; + node.maxRank = g.node(node.borderBottom).rank; + maxRank = Math.max(maxRank, node.maxRank); + } + }); + g.graph().maxRank = maxRank; + } + function removeEdgeLabelProxies(g) { + g.nodes().forEach((v) => { + var node = g.node(v); + if (node.dummy === "edge-proxy") { + g.edge(node.e).labelRank = node.rank; + g.removeNode(v); + } + }); + } + function translateGraph(g) { + var minX = Number.POSITIVE_INFINITY; + var maxX = 0; + var minY = Number.POSITIVE_INFINITY; + var maxY = 0; + var graphLabel = g.graph(); + var marginX = graphLabel.marginx || 0; + var marginY = graphLabel.marginy || 0; + function getExtremes(attrs) { + var x = attrs.x; + var y = attrs.y; + var w = attrs.width; + var h = attrs.height; + minX = Math.min(minX, x - w / 2); + maxX = Math.max(maxX, x + w / 2); + minY = Math.min(minY, y - h / 2); + maxY = Math.max(maxY, y + h / 2); + } + g.nodes().forEach((v) => getExtremes(g.node(v))); + g.edges().forEach((e) => { + var edge = g.edge(e); + if (edge.hasOwnProperty("x")) { + getExtremes(edge); + } + }); + minX -= marginX; + minY -= marginY; + g.nodes().forEach((v) => { + var node = g.node(v); + node.x -= minX; + node.y -= minY; + }); + g.edges().forEach((e) => { + var edge = g.edge(e); + edge.points.forEach((p) => { + p.x -= minX; + p.y -= minY; + }); + if (edge.hasOwnProperty("x")) { + edge.x -= minX; + } + if (edge.hasOwnProperty("y")) { + edge.y -= minY; + } + }); + graphLabel.width = maxX - minX + marginX; + graphLabel.height = maxY - minY + marginY; + } + function assignNodeIntersects(g) { + g.edges().forEach((e) => { + var edge = g.edge(e); + var nodeV = g.node(e.v); + var nodeW = g.node(e.w); + var p1, p2; + if (!edge.points) { + edge.points = []; + p1 = nodeW; + p2 = nodeV; + } else { + p1 = edge.points[0]; + p2 = edge.points[edge.points.length - 1]; + } + edge.points.unshift(util.intersectRect(nodeV, p1)); + edge.points.push(util.intersectRect(nodeW, p2)); + }); + } + function fixupEdgeLabelCoords(g) { + g.edges().forEach((e) => { + var edge = g.edge(e); + if (edge.hasOwnProperty("x")) { + if (edge.labelpos === "l" || edge.labelpos === "r") { + edge.width -= edge.labeloffset; + } + switch (edge.labelpos) { + case "l": + edge.x -= edge.width / 2 + edge.labeloffset; + break; + case "r": + edge.x += edge.width / 2 + edge.labeloffset; + break; + } + } + }); + } + function reversePointsForReversedEdges(g) { + g.edges().forEach((e) => { + var edge = g.edge(e); + if (edge.reversed) { + edge.points.reverse(); + } + }); + } + function removeBorderNodes(g) { + g.nodes().forEach((v) => { + if (g.children(v).length) { + var node = g.node(v); + var t = g.node(node.borderTop); + var b = g.node(node.borderBottom); + var l = g.node(node.borderLeft[node.borderLeft.length - 1]); + var r = g.node(node.borderRight[node.borderRight.length - 1]); + node.width = Math.abs(r.x - l.x); + node.height = Math.abs(b.y - t.y); + node.x = l.x + node.width / 2; + node.y = t.y + node.height / 2; + } + }); + g.nodes().forEach((v) => { + if (g.node(v).dummy === "border") { + g.removeNode(v); + } + }); + } + function removeSelfEdges(g) { + g.edges().forEach((e) => { + if (e.v === e.w) { + var node = g.node(e.v); + if (!node.selfEdges) { + node.selfEdges = []; + } + node.selfEdges.push({ e, label: g.edge(e) }); + g.removeEdge(e); + } + }); + } + function insertSelfEdges(g) { + var layers = util.buildLayerMatrix(g); + layers.forEach((layer) => { + var orderShift = 0; + layer.forEach((v, i) => { + var node = g.node(v); + node.order = i + orderShift; + (node.selfEdges || []).forEach((selfEdge) => { + util.addDummyNode(g, "selfedge", { + width: selfEdge.label.width, + height: selfEdge.label.height, + rank: node.rank, + order: i + ++orderShift, + e: selfEdge.e, + label: selfEdge.label + }, "_se"); + }); + delete node.selfEdges; + }); + }); + } + function positionSelfEdges(g) { + g.nodes().forEach((v) => { + var node = g.node(v); + if (node.dummy === "selfedge") { + var selfNode = g.node(node.e.v); + var x = selfNode.x + selfNode.width / 2; + var y = selfNode.y; + var dx = node.x - x; + var dy = selfNode.height / 2; + g.setEdge(node.e, node.label); + g.removeNode(v); + node.label.points = [ + { x: x + 2 * dx / 3, y: y - dy }, + { x: x + 5 * dx / 6, y: y - dy }, + { x: x + dx, y }, + { x: x + 5 * dx / 6, y: y + dy }, + { x: x + 2 * dx / 3, y: y + dy } + ]; + node.label.x = node.x; + node.label.y = node.y; + } + }); + } + function selectNumberAttrs(obj, attrs) { + return util.mapValues(util.pick(obj, attrs), Number); + } + function canonicalize(attrs) { + var newAttrs = {}; + if (attrs) { + Object.entries(attrs).forEach(([k, v]) => { + if (typeof k === "string") { + k = k.toLowerCase(); + } + newAttrs[k] = v; + }); + } + return newAttrs; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/debug.js +var require_debug = __commonJS({ + "node_modules/@dagrejs/dagre/lib/debug.js"(exports, module2) { + var util = require_util(); + var Graph = require_graphlib().Graph; + module2.exports = { + debugOrdering + }; + function debugOrdering(g) { + var layerMatrix = util.buildLayerMatrix(g); + var h = new Graph({ compound: true, multigraph: true }).setGraph({}); + g.nodes().forEach(function(v) { + h.setNode(v, { label: v }); + h.setParent(v, "layer" + g.node(v).rank); + }); + g.edges().forEach(function(e) { + h.setEdge(e.v, e.w, {}, e.name); + }); + layerMatrix.forEach(function(layer, i) { + var layerV = "layer" + i; + h.setNode(layerV, { rank: "same" }); + layer.reduce(function(u, v) { + h.setEdge(u, v, { style: "invis" }); + return v; + }); + }); + return h; + } + } +}); + +// node_modules/@dagrejs/dagre/lib/version.js +var require_version2 = __commonJS({ + "node_modules/@dagrejs/dagre/lib/version.js"(exports, module2) { + module2.exports = "1.0.2"; + } +}); + +// node_modules/@dagrejs/dagre/index.js +var require_dagre = __commonJS({ + "node_modules/@dagrejs/dagre/index.js"(exports, module2) { + module2.exports = { + graphlib: require_graphlib(), + layout: require_layout(), + debug: require_debug(), + util: { + time: require_util().time, + notime: require_util().notime + }, + version: require_version2() + }; + } +}); + +// src/main.ts +var main_exports = {}; +__export(main_exports, { + default: () => ObsidianClipperPlugin +}); +module.exports = __toCommonJS(main_exports); +var import_obsidian7 = require("obsidian"); + +// node_modules/deepmerge-ts/dist/node/index.mjs +var actions = { + defaultMerge: Symbol("deepmerge-ts: default merge"), + skip: Symbol("deepmerge-ts: skip") +}; +var actionsInto = { + defaultMerge: actions.defaultMerge +}; +function defaultMetaDataUpdater(previousMeta, metaMeta) { + return metaMeta; +} +function getObjectType(object) { + if (typeof object !== "object" || object === null) { + return 0; + } + if (Array.isArray(object)) { + return 2; + } + if (isRecord(object)) { + return 1; + } + if (object instanceof Set) { + return 3; + } + if (object instanceof Map) { + return 4; + } + return 5; +} +function getKeys(objects) { + const keys = /* @__PURE__ */ new Set(); + for (const object of objects) { + for (const key of [ + ...Object.keys(object), + ...Object.getOwnPropertySymbols(object) + ]) { + keys.add(key); + } + } + return keys; +} +function objectHasProperty(object, property) { + return typeof object === "object" && Object.prototype.propertyIsEnumerable.call(object, property); +} +function getIterableOfIterables(iterables) { + return { + *[Symbol.iterator]() { + for (const iterable of iterables) { + for (const value of iterable) { + yield value; + } + } + } + }; +} +var validRecordToStringValues = /* @__PURE__ */ new Set([ + "[object Object]", + "[object Module]" +]); +function isRecord(value) { + if (!validRecordToStringValues.has(Object.prototype.toString.call(value))) { + return false; + } + const { constructor } = value; + if (constructor === void 0) { + return true; + } + const prototype = constructor.prototype; + if (prototype === null || typeof prototype !== "object" || !validRecordToStringValues.has(Object.prototype.toString.call(prototype))) { + return false; + } + if (!prototype.hasOwnProperty("isPrototypeOf")) { + return false; + } + return true; +} +function mergeRecords$2(values, utils, meta) { + const result = {}; + for (const key of getKeys(values)) { + const propValues = []; + for (const value of values) { + if (objectHasProperty(value, key)) { + propValues.push(value[key]); + } + } + if (propValues.length === 0) { + continue; + } + const updatedMeta = utils.metaDataUpdater(meta, { + key, + parents: values + }); + const propertyResult = mergeUnknowns(propValues, utils, updatedMeta); + if (propertyResult === actions.skip) { + continue; + } + if (key === "__proto__") { + Object.defineProperty(result, key, { + value: propertyResult, + configurable: true, + enumerable: true, + writable: true + }); + } else { + result[key] = propertyResult; + } + } + return result; +} +function mergeArrays$2(values) { + return values.flat(); +} +function mergeSets$2(values) { + return new Set(getIterableOfIterables(values)); +} +function mergeMaps$2(values) { + return new Map(getIterableOfIterables(values)); +} +function mergeOthers$2(values) { + return values[values.length - 1]; +} +var defaultMergeFunctions = /* @__PURE__ */ Object.freeze({ + __proto__: null, + mergeRecords: mergeRecords$2, + mergeArrays: mergeArrays$2, + mergeSets: mergeSets$2, + mergeMaps: mergeMaps$2, + mergeOthers: mergeOthers$2 +}); +function deepmerge(...objects) { + return deepmergeCustom({})(...objects); +} +function deepmergeCustom(options, rootMetaData) { + const utils = getUtils(options, customizedDeepmerge); + function customizedDeepmerge(...objects) { + return mergeUnknowns(objects, utils, rootMetaData); + } + return customizedDeepmerge; +} +function getUtils(options, customizedDeepmerge) { + var _a, _b; + return { + defaultMergeFunctions, + mergeFunctions: { + ...defaultMergeFunctions, + ...Object.fromEntries(Object.entries(options).filter(([key, option]) => Object.prototype.hasOwnProperty.call(defaultMergeFunctions, key)).map(([key, option]) => option === false ? [key, mergeOthers$2] : [key, option])) + }, + metaDataUpdater: (_a = options.metaDataUpdater) !== null && _a !== void 0 ? _a : defaultMetaDataUpdater, + deepmerge: customizedDeepmerge, + useImplicitDefaultMerging: (_b = options.enableImplicitDefaultMerging) !== null && _b !== void 0 ? _b : false, + actions + }; +} +function mergeUnknowns(values, utils, meta) { + if (values.length === 0) { + return void 0; + } + if (values.length === 1) { + return mergeOthers$1(values, utils, meta); + } + const type = getObjectType(values[0]); + if (type !== 0 && type !== 5) { + for (let m_index = 1; m_index < values.length; m_index++) { + if (getObjectType(values[m_index]) === type) { + continue; + } + return mergeOthers$1(values, utils, meta); + } + } + switch (type) { + case 1: { + return mergeRecords$1(values, utils, meta); + } + case 2: { + return mergeArrays$1(values, utils, meta); + } + case 3: { + return mergeSets$1(values, utils, meta); + } + case 4: { + return mergeMaps$1(values, utils, meta); + } + default: { + return mergeOthers$1(values, utils, meta); + } + } +} +function mergeRecords$1(values, utils, meta) { + const result = utils.mergeFunctions.mergeRecords(values, utils, meta); + if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions.mergeRecords !== utils.defaultMergeFunctions.mergeRecords) { + return utils.defaultMergeFunctions.mergeRecords(values, utils, meta); + } + return result; +} +function mergeArrays$1(values, utils, meta) { + const result = utils.mergeFunctions.mergeArrays(values, utils, meta); + if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions.mergeArrays !== utils.defaultMergeFunctions.mergeArrays) { + return utils.defaultMergeFunctions.mergeArrays(values); + } + return result; +} +function mergeSets$1(values, utils, meta) { + const result = utils.mergeFunctions.mergeSets(values, utils, meta); + if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions.mergeSets !== utils.defaultMergeFunctions.mergeSets) { + return utils.defaultMergeFunctions.mergeSets(values); + } + return result; +} +function mergeMaps$1(values, utils, meta) { + const result = utils.mergeFunctions.mergeMaps(values, utils, meta); + if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions.mergeMaps !== utils.defaultMergeFunctions.mergeMaps) { + return utils.defaultMergeFunctions.mergeMaps(values); + } + return result; +} +function mergeOthers$1(values, utils, meta) { + const result = utils.mergeFunctions.mergeOthers(values, utils, meta); + if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === void 0 && utils.mergeFunctions.mergeOthers !== utils.defaultMergeFunctions.mergeOthers) { + return utils.defaultMergeFunctions.mergeOthers(values); + } + return result; +} + +// src/settings/types.ts +var SectionPosition = { + PREPEND: "prepend", + APPEND: "append" +}; +var DEFAULT_SETTINGS = { + dailyNoteHeading: "", + weeklyNoteHeading: "", + tags: "", + timestampFormat: "HH:mm", + dateFormat: "MM/DD/YY", + dailyOpenOnWrite: false, + useDailyNote: true, + dailyPosition: SectionPosition.APPEND, + useWeeklyNote: false, + weeklyPosition: SectionPosition.APPEND, + weeklyOpenOnWrite: false, + dailyEntryTemplateLocation: "", + weeklyEntryTemplateLocation: "", + topicEntryTemplateLocation: "", + topicPosition: SectionPosition.APPEND, + topicOpenOnWrite: false, + markdownSettings: { + h1: "##", + h2: "##", + h3: "###", + h4: "####", + h5: "#####", + h6: "######" + }, + advanced: false, + advancedStorageFolder: "clippings", + captureComments: false, + experimentalCanvas: false, + experimentalBookmarkletComment: false +}; + +// src/utils/templateutils.ts +var import_obsidian = require("obsidian"); +async function getTemplateContents(app, templatePath) { + const { metadataCache, vault } = app; + const normalizedTemplatePath = (0, import_obsidian.normalizePath)(templatePath != null ? templatePath : ""); + if (templatePath === "/") { + return Promise.resolve(""); + } + let templateContents = ""; + try { + const templateFile = metadataCache.getFirstLinkpathDest(normalizedTemplatePath, ""); + if (templateFile) { + templateContents = await vault.cachedRead(templateFile); + } + return `${templateContents} +`; + } catch (err) { + console.error(`Failed to read the clipper entry template '${normalizedTemplatePath}'`, err); + new import_obsidian.Notice("Failed to read the Obsidian Clipper daily note entry template configured in Settings"); + throw Error("Template File Missing"); + } +} +function applyTemplateTransformations(title, url, tags, time, date, content = "", comment = "", rawTemplateContents) { + const templateContents = rawTemplateContents.replace(/{{\s*title\s*}}/gi, title).replace(/{{\s*url\s*}}/gi, url).replace(/{{\s*tags\s*}}/gi, tags).replace(/{{\s*content\s*}}/gi, content).replace(/{{\s*comment\s*}}/gi, comment).replace(/{{\s*time\s*}}/gi, time).replace(/{{\s*date\s*}}/gi, date); + return templateContents; +} + +// src/clippeddata.ts +var ClippedData = class { + constructor(title, url, settings2, app, data = "", comment = "") { + this.title = title; + this.url = url; + this.title = title; + this.url = url; + if (data !== "") { + this.data = data; + } + this.comment = comment; + const tagJoins = []; + settings2.tags.split(",").forEach((t) => { + tagJoins.push(`#${t}`); + }); + this.tags = tagJoins.join(" "); + this.settings = settings2; + this.app = app; + this.timeStamp = window.moment().format(this.settings.timestampFormat); + this.date = window.moment().format(this.settings.dateFormat); + } + async formattedEntry(template) { + let formattedData = ""; + if (template && template != "") { + const rawTemplateContents = await getTemplateContents(this.app, template); + formattedData = applyTemplateTransformations(this.title, this.url, this.tags, this.timeStamp, this.date, this.data, this.comment, rawTemplateContents); + } else { + if (!this.data) { + formattedData = `- [ ] [${this.title}](${this.url}) ${this.tags} + +---`; + } else { + if (this.settings.advanced) { + formattedData = `- [ ] ${this.title} ${this.tags} +${this.data} + +---`; + } else { + formattedData = `- [ ] [${this.title}](${this.url}) ${this.tags} +${this.data} + +---`; + } + } + } + return formattedData; + } + getUrl() { + return this.url; + } + getEntryContent() { + return this.data; + } +}; + +// src/periodicnotes/dailyperiodicnoteentry.ts +var import_obsidian_daily_notes_interface = __toESM(require_main()); + +// src/periodicnotes/periodicnoteentry.ts +var import_obsidian4 = require("obsidian"); + +// src/abstracts/noteentry.ts +var import_obsidian3 = require("obsidian"); + +// src/periodicnotes/filewriter.ts +var import_obsidian2 = require("obsidian"); + +// node_modules/parse-domain/serialized-tries/icann.js +var icann_default = "ac>com,edu,gov,net,mil,orgnomco,net,org,sch,ac,gov,milaccident-investigation,accident-prevention,aerobatic,aeroclub,aerodrome,agents,aircraft,airline,airport,air-surveillance,airtraffic,air-traffic-control,ambulance,amusement,association,author,ballooning,broker,caa,cargo,catering,certification,championship,charter,civilaviation,club,conference,consultant,consulting,control,council,crew,design,dgca,educator,emergency,engine,engineer,entertainment,equipment,exchange,express,federation,flight,fuel,gliding,government,groundhandling,group,hanggliding,homebuilt,insurance,journal,journalist,leasing,logistics,magazine,maintenance,media,microlight,modelling,navigation,parachuting,paragliding,passenger-association,pilot,press,production,recreation,repbody,res,research,rotorcraft,safety,scientist,services,show,skydiving,software,student,trader,trading,trainer,union,workinggroup,worksgov,com,org,net,educom,org,net,co,nomoff,com,net,orgcom,edu,gov,mil,net,orgco,com,commune,net,orged,gv,og,co,pb,itbet,com,coop,edu,gob,gov,int,mil,musica,mutual,net,org,senasa,ture164,in-addr,ip6,iris,uri,urngovac>sthcom,net,org,edu>act,catholic,nsw>schoolsqld,sa,tas,vic,wacomcom,net,int,gov,org,edu,info,pp,mil,name,pro,bizcom,edu,gov,mil,net,orgbiz,co,com,edu,gov,info,net,org,store,tv*acgova,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9com,edu,net,org,govco,com,edu,or,orgasso,barreau,gouvcom,edu,gov,net,orgcom,edu,gov,net,orgcom,edu,gob,int,org,net,mil,tv,web,academia,agro,arte,blog,bolivia,ciencia,cooperativa,democracia,deporte,ecologia,economia,empresa,indigena,industria,info,medicina,movimiento,musica,natural,nombre,noticias,patria,politica,profesional,plurinacional,pueblo,revista,salud,tecnologia,tksat,transporte,wiki
9guacu,abc,adm,adv,agr,aju,am,anani,aparecida,app,arq,art,ato,b,barueri,belem,bhz,bib,bio,blog,bmd,boavista,bsb,campinagrande,campinas,caxias,cim,cng,cnt,com,contagem,coop,coz,cri,cuiaba,curitiba,def,des,det,dev,ecn,eco,edu,emp,enf,eng,esp,etc,eti,far,feira,flog,floripa,fm,fnd,fortal,fot,foz,fst,g12,geo,ggf,goiania,gov>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to*com,net,org,edu,govcom,edu,gov,net,orgco,orggov,mil,com,ofcom,net,org,edu,govab,bc,mb,nb,nf,nl,ns,nt,nu,on,pe,qc,sk,yk,gcgovorg,or,com,co,edu,ed,ac,net,go,asso,xn--aroport-bya,int,presse,md,gouv*,!wwwco,gob,gov,milco,com,gov,netac,com,edu,gov,net,org,mil,xn--55qx5d,xn--io0a7i,xn--od0alg,ah,bj,cq,fj,gd,gs,gz,gx,ha,hb,he,hi,hl,hn,jl,js,jx,ln,nm,nx,qh,sc,sd,sh,sn,sx,tj,xj,xz,yn,zj,hk,mo,twarts,com,edu,firm,gov,info,int,mil,net,nom,org,rec,webac,co,ed,fi,go,or,sacom,edu,org,net,gov,infcom,edu,int,nome,orgcom,edu,net,orggovac,biz,com,ekloges,gov,ltd,mil,net,org,press,pro,tmcom,net,org,edu,govart,com,edu,gob,gov,mil,net,org,sld,webart,asso,com,edu,gov,org,net,pol,soc,tmcom,info,net,fin,k12,med,pro,org,edu,gov,gob,miledu,gov,riik,lib,med,com,pri,aip,org,fiecom,edu,eun,gov,mil,name,net,org,sci*com,nom,org,gob,educom,gov,org,edu,biz,name,info,netalandac,biz,com,gov,info,mil,name,net,org,pro*com,edu,net,orgasso,com,gouv,nom,prd,tm,aeroport,avocat,avoues,cci,chambagri,chirurgiens-dentistes,experts-comptables,geometre-expert,greta,huissier-justice,medecin,notaires,pharmacien,port,veterinaireedu,govcom,edu,gov,org,mil,net,pvtco,net,orgcom,edu,gov,org,milcom,ltd,gov,mod,edu,orgco,com,edu,net,orgac,com,edu,gov,org,netcom,net,mobi,edu,org,assocom,edu,net,org,govcom,edu,gob,ind,mil,net,orgcom,edu,gov,guam,info,net,org,webco,com,edu,gov,net,orgcom,edu,gov,idv,net,org,xn--55qx5d,xn--wcvs22d,xn--lcvr32d,xn--mxtq1m,xn--gmqw5a,xn--ciqpn,xn--gmq050i,xn--zf0avx,xn--io0a7i,xn--mk0axi,xn--od0alg,xn--od0aq3b,xn--tn0ag,xn--uc0atv,xn--uc0ay4acom,edu,org,net,mil,gob
iz,from,name,comcom,shop,firm,info,adult,net,pro,org,med,art,coop,pol,asso,edu,rel,gouv,persoco,info,org,priv,sport,tm,2000,agrar,bolt,casino,city,erotica,erotika,film,forum,games,hotel,ingatlan,jogasz,konyvelo,lakas,media,news,reklam,sex,shop,suli,szex,tozsde,utazas,videoac,biz,co,desa,go,mil,my,net,or,ponpes,sch,webgovac,co,gov,idf,k12,muni,net,orgac,co>ltd,plcco,firm,net,org,gen,ind,nic,ac,edu,res,gov,mileucomgov,edu,mil,com,org,netac,co,gov,id,net,org,sch,xn--mgba3a4f16a,xn--mgba3a4franet,com,edu,gov,org,intgov,edu,abr,abruzzo,aosta-valley,aostavalley,bas,basilicata,cal,calabria,cam,campania,emilia-romagna,emiliaromagna,emr,friuli-v-giulia,friuli-ve-giulia,friuli-vegiulia,friuli-venezia-giulia,friuli-veneziagiulia,friuli-vgiulia,friuliv-giulia,friulive-giulia,friulivegiulia,friulivenezia-giulia,friuliveneziagiulia,friulivgiulia,fvg,laz,lazio,lig,liguria,lom,lombardia,lombardy,lucania,mar,marche,mol,molise,piedmont,piemonte,pmn,pug,puglia,sar,sardegna,sardinia,sic,sicilia,sicily,taa,tos,toscana,trentin-sud-tirol,xn--trentin-sd-tirol-rzb,trentin-sudtirol,xn--trentin-sdtirol-7vb,trentin-sued-tirol,trentin-suedtirol,trentino-a-adige,trentino-aadige,trentino-alto-adige,trentino-altoadige,trentino-s-tirol,trentino-stirol,trentino-sud-tirol,xn--trentino-sd-tirol-c3b,trentino-sudtirol,xn--trentino-sdtirol-szb,trentino-sued-tirol,trentino-suedtirol,trentino,trentinoa-adige,trentinoaadige,trentinoalto-adige,trentinoaltoadige,trentinos-tirol,trentinostirol,trentinosud-tirol,xn--trentinosd-tirol-rzb,trentinosudtirol,xn--trentinosdtirol-7vb,trentinosued-tirol,trentinosuedtirol,trentinsud-tirol,xn--trentinsd-tirol-6vb,trentinsudtirol,xn--trentinsdtirol-nsb,trentinsued-tirol,trentinsuedtirol,tuscany,umb,umbria,val-d-aosta,val-daosta,vald-aosta,valdaosta,valle-aosta,valle-d-aosta,valle-daosta,valleaosta,valled-aosta,valledaosta,vallee-aoste,xn--valle-aoste-ebb,vallee-d-aoste,xn--valle-d-aoste-ehb,valleeaoste,xn--valleaoste-e7a,valleedaoste,xn--valledaoste-ebb,vao,vda,ven,veneto,ag,agrigento,al,alessandria,alto-adige,altoadige,an,ancona,andria-barletta-trani,andria-trani-barletta,andriabarlettatrani,andriatranibarletta,ao,aosta,aoste,ap,aq,aquila,ar,arezzo,ascoli-piceno,ascolipiceno,asti,at,av,avellino,ba,balsan-sudtirol,xn--balsan-sdtirol-nsb,balsan-suedtirol,balsan,bari,barletta-trani-andria,barlettatraniandria,belluno,benevento,bergamo,bg,bi,biella,bl,bn,bo,bologna,bolzano-altoadige,bolzano,bozen-sudtirol,xn--bozen-sdtirol-2ob,bozen-suedtirol,bozen,br,brescia,brindisi,bs,bt,bulsan-sudtirol,xn--bulsan-sdtirol-nsb,bulsan-suedtirol,bulsan,bz,ca,cagliari,caltanissetta,campidano-medio,campidanomedio,campobasso,carbonia-iglesias,carboniaiglesias,carrara-massa,carraramassa,caserta,catania,catanzaro,cb,ce,cesena-forli,xn--cesena-forl-mcb,cesenaforli,xn--cesenaforl-i8a,ch,chieti,ci,cl,cn,co,como,cosenza,cr,cremona,crotone,cs,ct,cuneo,cz,dell-ogliastra,dellogliastra,en,enna,fc,fe,fermo,ferrara,fg,fi,firenze,florence,fm,foggia,forli-cesena,xn--forl-cesena-fcb,forlicesena,xn--forlcesena-c8a,fr,frosinone,ge,genoa,genova,go,gorizia,gr,grosseto,iglesias-carbonia,iglesiascarbonia,im,imperia,is,isernia,kr,la-spezia,laquila,laspezia,latina,lc,le,lecce,lecco,li,livorno,lo,lodi,lt,lu,lucca,macerata,mantova,massa-carrara,massacarrara,matera,mb,mc,me,medio-campidano,mediocampidano,messina,mi,milan,milano,mn,mo,modena,monza-brianza,monza-e-della-brianza,monza,monzabrianza,monzaebrianza,monzaedellabrianza,ms,mt,na,naples,napoli,no,novara,nu,nuoro,og,ogliastra,olbia-tempio,olbiatempio,or,oristano,ot,pa,padova,padua,palermo,parma,pavia,pc,pd,pe,perugia,pesaro-urbino,pesarourbino,pescara,pg,pi,piacenza,pisa,pistoia,pn,po,pordenone,potenza,pr,prato,pt,pu,pv,pz,ra,ragusa,ravenna,rc,re,reggio-calabria,reggio-emilia,reggiocalabria,reggioemilia,rg,ri,rieti,rimini,rm,rn,ro,roma,rome,rovigo,sa,salerno,sassari,savona,si,siena,siracusa,so,sondrio,sp,sr,ss,suedtirol,xn--sdtirol-n2a,sv,ta,taranto,te,tempio-olbia,tempioolbia,teramo,terni,tn,to,torino,tp,tr,trani-andria-barletta,trani-barletta-andria,traniandriabarletta,tranibarlettaandria,trapani,trento,treviso,trieste,ts,turin,tv,ud,udine,urbino-pesaro,urbinopesaro,va,varese,vb,vc,ve,venezia,venice,verbania,vercelli,verona,vi,vibo-valentia,vibovalentia,vicenza,viterbo,vr,vs,vt,vvco,net,org*com,org,net,edu,sch,gov,mil,nameac,ad,co,ed,go,gr,lg,ne,or,aichi>aisai,ama,anjo,asuke,chiryu,chita,fuso,gamagori,handa,hazu,hekinan,higashiura,ichinomiya,inazawa,inuyama,isshiki,iwakura,kanie,kariya,kasugai,kira,kiyosu,komaki,konan,kota,mihama,miyoshi,nishio,nisshin,obu,oguchi,oharu,okazaki,owariasahi,seto,shikatsu,shinshiro,shitara,tahara,takahama,tobishima,toei,togo,tokai,tokoname,toyoake,toyohashi,toyokawa,toyone,toyota,tsushima,yatomiakita,daisen,fujisato,gojome,hachirogata,happou,higashinaruse,honjo,honjyo,ikawa,kamikoani,kamioka,katagami,kazuno,kitaakita,kosaka,kyowa,misato,mitane,moriyoshi,nikaho,noshiro,odate,oga,ogata,semboku,yokote,yurihonjoaomori,gonohe,hachinohe,hashikami,hiranai,hirosaki,itayanagi,kuroishi,misawa,mutsu,nakadomari,noheji,oirase,owani,rokunohe,sannohe,shichinohe,shingo,takko,towada,tsugaru,tsurutaabiko,asahi,chonan,chosei,choshi,chuo,funabashi,futtsu,hanamigawa,ichihara,ichikawa,ichinomiya,inzai,isumi,kamagaya,kamogawa,kashiwa,katori,katsuura,kimitsu,kisarazu,kozaki,kujukuri,kyonan,matsudo,midori,mihama,minamiboso,mobara,mutsuzawa,nagara,nagareyama,narashino,narita,noda,oamishirasato,omigawa,onjuku,otaki,sakae,sakura,shimofusa,shirako,shiroi,shisui,sodegaura,sosa,tako,tateyama,togane,tohnosho,tomisato,urayasu,yachimata,yachiyo,yokaichiba,yokoshibahikari,yotsukaidoainan,honai,ikata,imabari,iyo,kamijima,kihoku,kumakogen,masaki,matsuno,matsuyama,namikata,niihama,ozu,saijo,seiyo,shikokuchuo,tobe,toon,uchiko,uwajima,yawatahamaechizen,eiheiji,fukui,ikeda,katsuyama,mihama,minamiechizen,obama,ohi,ono,sabae,sakai,takahama,tsuruga,wakasaashiya,buzen,chikugo,chikuho,chikujo,chikushino,chikuzen,chuo,dazaifu,fukuchi,hakata,higashi,hirokawa,hisayama,iizuka,inatsuki,kaho,kasuga,kasuya,kawara,keisen,koga,kurate,kurogi,kurume,minami,miyako,miyama,miyawaka,mizumaki,munakata,nakagawa,nakama,nishi,nogata,ogori,okagaki,okawa,oki,omuta,onga,onojo,oto,saigawa,sasaguri,shingu,shinyoshitomi,shonai,soeda,sue,tachiarai,tagawa,takata,toho,toyotsu,tsuiki,ukiha,umi,usui,yamada,yame,yanagawa,yukuhashiaizubange,aizumisato,aizuwakamatsu,asakawa,bandai,date,fukushima,furudono,futaba,hanawa,higashi,hirata,hirono,iitate,inawashiro,ishikawa,iwaki,izumizaki,kagamiishi,kaneyama,kawamata,kitakata,kitashiobara,koori,koriyama,kunimi,miharu,mishima,namie,nango,nishiaizu,nishigo,okuma,omotego,ono,otama,samegawa,shimogo,shirakawa,showa,soma,sukagawa,taishin,tamakawa,tanagura,tenei,yabuki,yamato,yamatsuri,yanaizu,yugawaanpachi,ena,gifu,ginan,godo,gujo,hashima,hichiso,hida,higashishirakawa,ibigawa,ikeda,kakamigahara,kani,kasahara,kasamatsu,kawaue,kitagata,mino,minokamo,mitake,mizunami,motosu,nakatsugawa,ogaki,sakahogi,seki,sekigahara,shirakawa,tajimi,takayama,tarui,toki,tomika,wanouchi,yamagata,yaotsu,yoroannaka,chiyoda,fujioka,higashiagatsuma,isesaki,itakura,kanna,kanra,katashina,kawaba,kiryu,kusatsu,maebashi,meiwa,midori,minakami,naganohara,nakanojo,nanmoku,numata,oizumi,ora,ota,shibukawa,shimonita,shinto,showa,takasaki,takayama,tamamura,tatebayashi,tomioka,tsukiyono,tsumagoi,ueno,yoshiokaasaminami,daiwa,etajima,fuchu,fukuyama,hatsukaichi,higashihiroshima,hongo,jinsekikogen,kaita,kui,kumano,kure,mihara,miyoshi,naka,onomichi,osakikamijima,otake,saka,sera,seranishi,shinichi,shobara,takeharaabashiri,abira,aibetsu,akabira,akkeshi,asahikawa,ashibetsu,ashoro,assabu,atsuma,bibai,biei,bifuka,bihoro,biratori,chippubetsu,chitose,date,ebetsu,embetsu,eniwa,erimo,esan,esashi,fukagawa,fukushima,furano,furubira,haboro,hakodate,hamatonbetsu,hidaka,higashikagura,higashikawa,hiroo,hokuryu,hokuto,honbetsu,horokanai,horonobe,ikeda,imakane,ishikari,iwamizawa,iwanai,kamifurano,kamikawa,kamishihoro,kamisunagawa,kamoenai,kayabe,kembuchi,kikonai,kimobetsu,kitahiroshima,kitami,kiyosato,koshimizu,kunneppu,kuriyama,kuromatsunai,kushiro,kutchan,kyowa,mashike,matsumae,mikasa,minamifurano,mombetsu,moseushi,mukawa,muroran,naie,nakagawa,nakasatsunai,nakatombetsu,nanae,nanporo,nayoro,nemuro,niikappu,niki,nishiokoppe,noboribetsu,numata,obihiro,obira,oketo,okoppe,otaru,otobe,otofuke,otoineppu,oumu,ozora,pippu,rankoshi,rebun,rikubetsu,rishiri,rishirifuji,saroma,sarufutsu,shakotan,shari,shibecha,shibetsu,shikabe,shikaoi,shimamaki,shimizu,shimokawa,shinshinotsu,shintoku,shiranuka,shiraoi,shiriuchi,sobetsu,sunagawa,taiki,takasu,takikawa,takinoue,teshikaga,tobetsu,tohma,tomakomai,tomari,toya,toyako,toyotomi,toyoura,tsubetsu,tsukigata,urakawa,urausu,uryu,utashinai,wakkanai,wassamu,yakumo,yoichiaioi,akashi,ako,amagasaki,aogaki,asago,ashiya,awaji,fukusaki,goshiki,harima,himeji,ichikawa,inagawa,itami,kakogawa,kamigori,kamikawa,kasai,kasuga,kawanishi,miki,minamiawaji,nishinomiya,nishiwaki,ono,sanda,sannan,sasayama,sayo,shingu,shinonsen,shiso,sumoto,taishi,taka,takarazuka,takasago,takino,tamba,tatsuno,toyooka,yabu,yashiro,yoka,yokawaami,asahi,bando,chikusei,daigo,fujishiro,hitachi,hitachinaka,hitachiomiya,hitachiota,ibaraki,ina,inashiki,itako,iwama,joso,kamisu,kasama,kashima,kasumigaura,koga,miho,mito,moriya,naka,namegata,oarai,ogawa,omitama,ryugasaki,sakai,sakuragawa,shimodate,shimotsuma,shirosato,sowa,suifu,takahagi,tamatsukuri,tokai,tomobe,tone,toride,tsuchiura,tsukuba,uchihara,ushiku,yachiyo,yamagata,yawara,yukianamizu,hakui,hakusan,kaga,kahoku,kanazawa,kawakita,komatsu,nakanoto,nanao,nomi,nonoichi,noto,shika,suzu,tsubata,tsurugi,uchinada,wajimafudai,fujisawa,hanamaki,hiraizumi,hirono,ichinohe,ichinoseki,iwaizumi,iwate,joboji,kamaishi,kanegasaki,karumai,kawai,kitakami,kuji,kunohe,kuzumaki,miyako,mizusawa,morioka,ninohe,noda,ofunato,oshu,otsuchi,rikuzentakata,shiwa,shizukuishi,sumita,tanohata,tono,yahaba,yamadaayagawa,higashikagawa,kanonji,kotohira,manno,marugame,mitoyo,naoshima,sanuki,tadotsu,takamatsu,tonosho,uchinomi,utazu,zentsujiakune,amami,hioki,isa,isen,izumi,kagoshima,kanoya,kawanabe,kinko,kouyama,makurazaki,matsumoto,minamitane,nakatane,nishinoomote,satsumasendai,soo,tarumizu,yusuiaikawa,atsugi,ayase,chigasaki,ebina,fujisawa,hadano,hakone,hiratsuka,isehara,kaisei,kamakura,kiyokawa,matsuda,minamiashigara,miura,nakai,ninomiya,odawara,oi,oiso,sagamihara,samukawa,tsukui,yamakita,yamato,yokosuka,yugawara,zama,zushiaki,geisei,hidaka,higashitsuno,ino,kagami,kami,kitagawa,kochi,mihara,motoyama,muroto,nahari,nakamura,nankoku,nishitosa,niyodogawa,ochi,okawa,otoyo,otsuki,sakawa,sukumo,susaki,tosa,tosashimizu,toyo,tsuno,umaji,yasuda,yusuharaamakusa,arao,aso,choyo,gyokuto,kamiamakusa,kikuchi,kumamoto,mashiki,mifune,minamata,minamioguni,nagasu,nishihara,oguni,ozu,sumoto,takamori,uki,uto,yamaga,yamato,yatsushiroayabe,fukuchiyama,higashiyama,ide,ine,joyo,kameoka,kamo,kita,kizu,kumiyama,kyotamba,kyotanabe,kyotango,maizuru,minami,minamiyamashiro,miyazu,muko,nagaokakyo,nakagyo,nantan,oyamazaki,sakyo,seika,tanabe,uji,ujitawara,wazuka,yamashina,yawataasahi,inabe,ise,kameyama,kawagoe,kiho,kisosaki,kiwa,komono,kumano,kuwana,matsusaka,meiwa,mihama,minamiise,misugi,miyama,nabari,shima,suzuka,tado,taiki,taki,tamaki,toba,tsu,udono,ureshino,watarai,yokkaichifurukawa,higashimatsushima,ishinomaki,iwanuma,kakuda,kami,kawasaki,marumori,matsushima,minamisanriku,misato,murata,natori,ogawara,ohira,onagawa,osaki,rifu,semine,shibata,shichikashuku,shikama,shiogama,shiroishi,tagajo,taiwa,tome,tomiya,wakuya,watari,yamamoto,zaoaya,ebino,gokase,hyuga,kadogawa,kawaminami,kijo,kitagawa,kitakata,kitaura,kobayashi,kunitomi,kushima,mimata,miyakonojo,miyazaki,morotsuka,nichinan,nishimera,nobeoka,saito,shiiba,shintomi,takaharu,takanabe,takazaki,tsunoachi,agematsu,anan,aoki,asahi,azumino,chikuhoku,chikuma,chino,fujimi,hakuba,hara,hiraya,iida,iijima,iiyama,iizuna,ikeda,ikusaka,ina,karuizawa,kawakami,kiso,kisofukushima,kitaaiki,komagane,komoro,matsukawa,matsumoto,miasa,minamiaiki,minamimaki,minamiminowa,minowa,miyada,miyota,mochizuki,nagano,nagawa,nagiso,nakagawa,nakano,nozawaonsen,obuse,ogawa,okaya,omachi,omi,ookuwa,ooshika,otaki,otari,sakae,sakaki,saku,sakuho,shimosuwa,shinanomachi,shiojiri,suwa,suzaka,takagi,takamori,takayama,tateshina,tatsuno,togakushi,togura,tomi,ueda,wada,yamagata,yamanouchi,yasaka,yasuokachijiwa,futsu,goto,hasami,hirado,iki,isahaya,kawatana,kuchinotsu,matsuura,nagasaki,obama,omura,oseto,saikai,sasebo,seihi,shimabara,shinkamigoto,togitsu,tsushima,unzenando,gose,heguri,higashiyoshino,ikaruga,ikoma,kamikitayama,kanmaki,kashiba,kashihara,katsuragi,kawai,kawakami,kawanishi,koryo,kurotaki,mitsue,miyake,nara,nosegawa,oji,ouda,oyodo,sakurai,sango,shimoichi,shimokitayama,shinjo,soni,takatori,tawaramoto,tenkawa,tenri,uda,yamatokoriyama,yamatotakada,yamazoe,yoshinoaga,agano,gosen,itoigawa,izumozaki,joetsu,kamo,kariwa,kashiwazaki,minamiuonuma,mitsuke,muika,murakami,myoko,nagaoka,niigata,ojiya,omi,sado,sanjo,seiro,seirou,sekikawa,shibata,tagami,tainai,tochio,tokamachi,tsubame,tsunan,uonuma,yahiko,yoita,yuzawabeppu,bungoono,bungotakada,hasama,hiji,himeshima,hita,kamitsue,kokonoe,kuju,kunisaki,kusu,oita,saiki,taketa,tsukumi,usa,usuki,yufuakaiwa,asakuchi,bizen,hayashima,ibara,kagamino,kasaoka,kibichuo,kumenan,kurashiki,maniwa,misaki,nagi,niimi,nishiawakura,okayama,satosho,setouchi,shinjo,shoo,soja,takahashi,tamano,tsuyama,wake,yakageaguni,ginowan,ginoza,gushikami,haebaru,higashi,hirara,iheya,ishigaki,ishikawa,itoman,izena,kadena,kin,kitadaito,kitanakagusuku,kumejima,kunigami,minamidaito,motobu,nago,naha,nakagusuku,nakijin,nanjo,nishihara,ogimi,okinawa,onna,shimoji,taketomi,tarama,tokashiki,tomigusuku,tonaki,urasoe,uruma,yaese,yomitan,yonabaru,yonaguni,zamamiabeno,chihayaakasaka,chuo,daito,fujiidera,habikino,hannan,higashiosaka,higashisumiyoshi,higashiyodogawa,hirakata,ibaraki,ikeda,izumi,izumiotsu,izumisano,kadoma,kaizuka,kanan,kashiwara,katano,kawachinagano,kishiwada,kita,kumatori,matsubara,minato,minoh,misaki,moriguchi,neyagawa,nishi,nose,osakasayama,sakai,sayama,sennan,settsu,shijonawate,shimamoto,suita,tadaoka,taishi,tajiri,takaishi,takatsuki,tondabayashi,toyonaka,toyono,yaoariake,arita,fukudomi,genkai,hamatama,hizen,imari,kamimine,kanzaki,karatsu,kashima,kitagata,kitahata,kiyama,kouhoku,kyuragi,nishiarita,ogi,omachi,ouchi,saga,shiroishi,taku,tara,tosu,yoshinogariarakawa,asaka,chichibu,fujimi,fujimino,fukaya,hanno,hanyu,hasuda,hatogaya,hatoyama,hidaka,higashichichibu,higashimatsuyama,honjo,ina,iruma,iwatsuki,kamiizumi,kamikawa,kamisato,kasukabe,kawagoe,kawaguchi,kawajima,kazo,kitamoto,koshigaya,kounosu,kuki,kumagaya,matsubushi,minano,misato,miyashiro,miyoshi,moroyama,nagatoro,namegawa,niiza,ogano,ogawa,ogose,okegawa,omiya,otaki,ranzan,ryokami,saitama,sakado,satte,sayama,shiki,shiraoka,soka,sugito,toda,tokigawa,tokorozawa,tsurugashima,urawa,warabi,yashio,yokoze,yono,yorii,yoshida,yoshikawa,yoshimiaisho,gamo,higashiomi,hikone,koka,konan,kosei,koto,kusatsu,maibara,moriyama,nagahama,nishiazai,notogawa,omihachiman,otsu,ritto,ryuoh,takashima,takatsuki,torahime,toyosato,yasuakagi,ama,gotsu,hamada,higashiizumo,hikawa,hikimi,izumo,kakinoki,masuda,matsue,misato,nishinoshima,ohda,okinoshima,okuizumo,shimane,tamayu,tsuwano,unnan,yakumo,yasugi,yatsukaarai,atami,fuji,fujieda,fujikawa,fujinomiya,fukuroi,gotemba,haibara,hamamatsu,higashiizu,ito,iwata,izu,izunokuni,kakegawa,kannami,kawanehon,kawazu,kikugawa,kosai,makinohara,matsuzaki,minamiizu,mishima,morimachi,nishiizu,numazu,omaezaki,shimada,shimizu,shimoda,shizuoka,susono,yaizu,yoshidaashikaga,bato,haga,ichikai,iwafune,kaminokawa,kanuma,karasuyama,kuroiso,mashiko,mibu,moka,motegi,nasu,nasushiobara,nikko,nishikata,nogi,ohira,ohtawara,oyama,sakura,sano,shimotsuke,shioya,takanezawa,tochigi,tsuga,ujiie,utsunomiya,yaitaaizumi,anan,ichiba,itano,kainan,komatsushima,matsushige,mima,minami,miyoshi,mugi,nakagawa,naruto,sanagochi,shishikui,tokushima,wajikiadachi,akiruno,akishima,aogashima,arakawa,bunkyo,chiyoda,chofu,chuo,edogawa,fuchu,fussa,hachijo,hachioji,hamura,higashikurume,higashimurayama,higashiyamato,hino,hinode,hinohara,inagi,itabashi,katsushika,kita,kiyose,kodaira,koganei,kokubunji,komae,koto,kouzushima,kunitachi,machida,meguro,minato,mitaka,mizuho,musashimurayama,musashino,nakano,nerima,ogasawara,okutama,ome,oshima,ota,setagaya,shibuya,shinagawa,shinjuku,suginami,sumida,tachikawa,taito,tama,toshimachizu,hino,kawahara,koge,kotoura,misasa,nanbu,nichinan,sakaiminato,tottori,wakasa,yazu,yonagoasahi,fuchu,fukumitsu,funahashi,himi,imizu,inami,johana,kamiichi,kurobe,nakaniikawa,namerikawa,nanto,nyuzen,oyabe,taira,takaoka,tateyama,toga,tonami,toyama,unazuki,uozu,yamadaarida,aridagawa,gobo,hashimoto,hidaka,hirogawa,inami,iwade,kainan,kamitonda,katsuragi,kimino,kinokawa,kitayama,koya,koza,kozagawa,kudoyama,kushimoto,mihama,misato,nachikatsuura,shingu,shirahama,taiji,tanabe,wakayama,yuasa,yuraasahi,funagata,higashine,iide,kahoku,kaminoyama,kaneyama,kawanishi,mamurogawa,mikawa,murayama,nagai,nakayama,nanyo,nishikawa,obanazawa,oe,oguni,ohkura,oishida,sagae,sakata,sakegawa,shinjo,shirataka,shonai,takahata,tendo,tozawa,tsuruoka,yamagata,yamanobe,yonezawa,yuzaabu,hagi,hikari,hofu,iwakuni,kudamatsu,mitou,nagato,oshima,shimonoseki,shunan,tabuse,tokuyama,toyota,ube,yuuchuo,doshi,fuefuki,fujikawa,fujikawaguchiko,fujiyoshida,hayakawa,hokuto,ichikawamisato,kai,kofu,koshu,kosuge,minami-alps,minobu,nakamichi,nanbu,narusawa,nirasaki,nishikatsura,oshino,otsuki,showa,tabayama,tsuru,uenohara,yamanakako,yamanashi*,!city*,!city*,!city*,!city*,!city*,!city*,!city<ac,co,go,info,me,mobi,ne,or,scorg,net,com,edu,gov,mil*edu,biz,net,org,gov,info,comorg,nom,gov,prd,tm,edu,mil,ass,com,coop,asso,presse,medecin,notaires,pharmaciens,veterinaire,gouvnet,org,edu,govcom,edu,gov,org,rep,traac,co,es,go,hs,kg,mil,ms,ne,or,pe,re,sc,busan,chungbuk,chungnam,daegu,daejeon,gangwon,gwangju,gyeongbuk,gyeonggi,gyeongnam,incheon,jeju,jeonbuk,jeonnam,seoul,ulsancom,edu,emb,gov,ind,net,orgcom,edu,net,orgorg,edu,net,gov,mil,comint,net,info,edu,gov,per,com,orgcom,edu,gov,net,orgcom,net,co,org,edu,govgov,sch,net,int,com,org,edu,ngo,soc,web,ltd,assn,grp,hotel,accom,edu,gov,org,netac,biz,co,edu,gov,info,net,org,scgovcom,edu,gov,org,mil,id,net,asn,confcom,net,gov,plc,edu,sch,med,org,idco,net,gov,org,ac,presstm,assoco,net,org,edu,ac,gov,its,privorg,nom,gov,prd,tm,edu,mil,com,cocom,org,net,edu,gov,inf,namecom,edu,gouv,gov,net,org,presse*gov,edu,orgcom,net,org,edu,govgovcom,edu,gov,net,orgcom,edu,net,orgcom,net,org,gov,ac,co,oracademy,agriculture,air,airguard,alabama,alaska,amber,ambulance,american,americana,americanantiques,americanart,amsterdam,and,annefrank,anthro,anthropology,antiques,aquarium,arboretum,archaeological,archaeology,architecture,art,artanddesign,artcenter,artdeco,arteducation,artgallery,arts,artsandcrafts,asmatart,assassination,assisi,association,astronomy,atlanta,austin,australia,automotive,aviation,axis,badajoz,baghdad,bahn,bale,baltimore,barcelona,baseball,basel,baths,bauern,beauxarts,beeldengeluid,bellevue,bergbau,berkeley,berlin,bern,bible,bilbao,bill,birdart,birthplace,bonn,boston,botanical,botanicalgarden,botanicgarden,botany,brandywinevalley,brasil,bristol,british,britishcolumbia,broadcast,brunel,brussel,brussels,bruxelles,building,burghof,bus,bushey,cadaques,california,cambridge,can,canada,capebreton,carrier,cartoonart,casadelamoneda,castle,castres,celtic,center,chattanooga,cheltenham,chesapeakebay,chicago,children,childrens,childrensgarden,chiropractic,chocolate,christiansburg,cincinnati,cinema,circus,civilisation,civilization,civilwar,clinton,clock,coal,coastaldefence,cody,coldwar,collection,colonialwilliamsburg,coloradoplateau,columbia,columbus,communication,communications,community,computer,computerhistory,xn--comunicaes-v6a2o,contemporary,contemporaryart,convent,copenhagen,corporation,xn--correios-e-telecomunicaes-ghc29a,corvette,costume,countryestate,county,crafts,cranbrook,creation,cultural,culturalcenter,culture,cyber,cymru,dali,dallas,database,ddr,decorativearts,delaware,delmenhorst,denmark,depot,design,detroit,dinosaur,discovery,dolls,donostia,durham,eastafrica,eastcoast,education,educational,egyptian,eisenbahn,elburg,elvendrell,embroidery,encyclopedic,england,entomology,environment,environmentalconservation,epilepsy,essex,estate,ethnology,exeter,exhibition,family,farm,farmequipment,farmers,farmstead,field,figueres,filatelia,film,fineart,finearts,finland,flanders,florida,force,fortmissoula,fortworth,foundation,francaise,frankfurt,franziskaner,freemasonry,freiburg,fribourg,frog,fundacio,furniture,gallery,garden,gateway,geelvinck,gemological,geology,georgia,giessen,glas,glass,gorge,grandrapids,graz,guernsey,halloffame,hamburg,handson,harvestcelebration,hawaii,health,heimatunduhren,hellas,helsinki,hembygdsforbund,heritage,histoire,historical,historicalsociety,historichouses,historisch,historisches,history,historyofscience,horology,house,humanities,illustration,imageandsound,indian,indiana,indianapolis,indianmarket,intelligence,interactive,iraq,iron,isleofman,jamison,jefferson,jerusalem,jewelry,jewish,jewishart,jfk,journalism,judaica,judygarland,juedisches,juif,karate,karikatur,kids,koebenhavn,koeln,kunst,kunstsammlung,kunstunddesign,labor,labour,lajolla,lancashire,landes,lans,xn--lns-qla,larsson,lewismiller,lincoln,linz,living,livinghistory,localhistory,london,losangeles,louvre,loyalist,lucerne,luxembourg,luzern,mad,madrid,mallorca,manchester,mansion,mansions,manx,marburg,maritime,maritimo,maryland,marylhurst,media,medical,medizinhistorisches,meeres,memorial,mesaverde,michigan,midatlantic,military,mill,miners,mining,minnesota,missile,missoula,modern,moma,money,monmouth,monticello,montreal,moscow,motorcycle,muenchen,muenster,mulhouse,muncie,museet,museumcenter,museumvereniging,music,national,nationalfirearms,nationalheritage,nativeamerican,naturalhistory,naturalhistorymuseum,naturalsciences,nature,naturhistorisches,natuurwetenschappen,naumburg,naval,nebraska,neues,newhampshire,newjersey,newmexico,newport,newspaper,newyork,niepce,norfolk,north,nrw,nyc,nyny,oceanographic,oceanographique,omaha,online,ontario,openair,oregon,oregontrail,otago,oxford,pacific,paderborn,palace,paleo,palmsprings,panama,paris,pasadena,pharmacy,philadelphia,philadelphiaarea,philately,phoenix,photography,pilots,pittsburgh,planetarium,plantation,plants,plaza,portal,portland,portlligat,posts-and-telecommunications,preservation,presidio,press,project,public,pubol,quebec,railroad,railway,research,resistance,riodejaneiro,rochester,rockart,roma,russia,saintlouis,salem,salvadordali,salzburg,sandiego,sanfrancisco,santabarbara,santacruz,santafe,saskatchewan,satx,savannahga,schlesisches,schoenbrunn,schokoladen,school,schweiz,science,scienceandhistory,scienceandindustry,sciencecenter,sciencecenters,science-fiction,sciencehistory,sciences,sciencesnaturelles,scotland,seaport,settlement,settlers,shell,sherbrooke,sibenik,silk,ski,skole,society,sologne,soundandvision,southcarolina,southwest,space,spy,square,stadt,stalbans,starnberg,state,stateofdelaware,station,steam,steiermark,stjohn,stockholm,stpetersburg,stuttgart,suisse,surgeonshall,surrey,svizzera,sweden,sydney,tank,tcm,technology,telekommunikation,television,texas,textile,theater,time,timekeeping,topology,torino,touch,town,transport,tree,trolley,trust,trustee,uhren,ulm,undersea,university,usa,usantiques,usarts,uscountryestate,usculture,usdecorativearts,usgarden,ushistory,ushuaia,uslivinghistory,utah,uvic,valley,vantaa,versailles,viking,village,virginia,virtual,virtuel,vlaanderen,volkenkunde,wales,wallonie,war,washingtondc,watchandclock,watch-and-clock,western,westfalen,whaling,wildlife,williamsburg,windmill,workshop,york,yorkshire,yosemite,youth,zoological,zoology,xn--9dbhblg6di,xn--h1aeghaero,biz,com,coop,edu,gov,info,int,mil,museum,name,net,org,proac,biz,co,com,coop,edu,gov,int,museum,net,orgcom,org,gob,edu,netbiz,com,edu,gov,mil,name,net,orgac,adv,co,edu,gov,mil,net,orginfo,pro,name,school,or,dr,us,mx,ca,in,cc,tv,ws,mobi,co,com,orgasso,nomcom,net,per,rec,web,arts,firm,info,other,storecom,edu,gov,i,mil,mobi,name,net,org,schac,biz,co,com,edu,gob,in,info,int,mil,net,nom,org,webfhs,vgs,fylkesbibl,folkebibl,museum,idrett,priv,mil,stat,dep,kommune,herad,aa>gsgsgsgsgsgsgsgsgsgsgs
    gsgsgsgsgsgsgsgsgsgsbo,xn--b-5gabo,xn--b-5ga,heroy,xn--hery-iraheroy,sandexn--hery-ira,sandenesnesos,valer,xn--vler-qoaossandevalerxn--vler-qoa<*biz,info,gov,edu,org,net,comac,co,cri,geek,gen,govt,health,iwi,kiwi,maori,mil,xn--mori-qsa,net,org,parliament,schoolco,com,edu,gov,med,museum,net,org,proac,gob,com,org,sld,edu,net,ing,abo,med,nomedu,gob,nom,mil,org,com,netcom,org,edu*com,net,org,gov,edu,ngo,mil,icom,net,edu,org,fam,biz,web,gov,gob,gok,gon,gop,gos,infocom,net,org,aid,agro,atm,auto,biz,edu,gmina,gsm,info,mail,miasta,media,mil,nieruchomosci,nom,pc,powiat,priv,realestate,rel,sex,shop,sklep,sos,szkola,targi,tm,tourism,travel,turystyka,gov>ap,ic,is,us,kmpsp,kppsp,kwpsp,psp,wskr,kwp,mw,ug,um,umig,ugim,upow,uw,starostwo,pa,po,psse,pup,rzgw,sa,so,sr,wsa,sko,uzs,wiih,winb,pinb,wios,witd,wzmiuw,piw,wiw,griw,wif,oum,sdn,zp,uppo,mup,wuoz,konsulat,oirmgov,co,org,edu,netcom,net,org,gov,edu,isla,pro,biz,info,name,est,prof,acaaa,aca,acct,avocat,bar,cpa,eng,jur,law,med,rechtedu,gov,sec,plo,com,org,netnet,gov,org,edu,int,publ,com,nomeco,ne,or,ed,go,belaucom,coop,edu,gov,mil,net,orgcom,edu,gov,mil,name,net,org,schasso,com,nomarts,com,firm,info,nom,nt,org,rec,store,tm,wwwac,co,edu,gov,in,orgac,co,coop,gov,mil,net,orgcom,net,org,gov,med,pub,edu,schcom,edu,gov,net,orgcom,gov,net,org,educom,net,org,edu,med,tv,gov,infoa,ac,b,bd,brand,c,d,e,f,fh,fhsk,fhv,g,h,i,k,komforb,kommunalforbund,komvux,l,lanbib,m,n,naturbruksgymn,o,org,p,parti,pp,press,r,s,t,tm,u,w,x,y,zcom,net,org,gov,edu,percom,net,gov,org,milcom,net,edu,gov,orgart,com,edu,gouv,org,perso,univcom,edu,gov,me,net,orgbiz,com,edu,gov,me,net,org,schco,com,consulado,edu,embaixada,mil,net,org,principe,saotome,storecom,edu,gob,org,redgovedu,gov,net,mil,com,orgco,ac,orgac,co,go,in,mi,net,orac,biz,co,com,edu,go,gov,int,mil,name,net,nic,org,test,webgovcom,co,org,net,nom,gov,mil,educom,ens,fin,gov,ind,info,intl,mincom,nat,net,org,perso,tourismcom,gov,net,org,edu,milav,bbs,bel,biz,com,dr,edu,gen,gov,info,mil,k12,kep,name,net,org,pol,tel,tsk,tv,web,nc>gov<co,com,org,net,biz,info,pro,int,coop,jobs,mobi,travel,museum,aero,name,gov,eduedu,gov,mil,com,net,org,idv,game,ebiz,club,xn--zf0ao64a,xn--uc0atv,xn--czrw28bac,co,go,hotel,info,me,mil,mobi,ne,or,sc,tvcom,edu,gov,in,net,org,cherkassy,cherkasy,chernigov,chernihiv,chernivtsi,chernovtsy,ck,cn,cr,crimea,cv,dn,dnepropetrovsk,dnipropetrovsk,donetsk,dp,if,ivano-frankivsk,kh,kharkiv,kharkov,kherson,khmelnitskiy,khmelnytskyi,kiev,kirovograd,km,kr,krym,ks,kv,kyiv,lg,lt,lugansk,lutsk,lv,lviv,mk,mykolaiv,nikolaev,od,odesa,odessa,pl,poltava,rivne,rovno,rv,sb,sebastopol,sevastopol,sm,sumy,te,ternopil,uz,uzhgorod,vinnica,vinnytsia,vn,volyn,yalta,zaporizhzhe,zaporizhzhia,zhitomir,zhytomyr,zp,ztco,or,ac,sc,go,ne,com,orgac,co,gov,ltd,me,net,nhs,org,plc,police,sch>*<dni,fed,isa,kids,nsn,ak>k12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cck12,cc,libk12,cc,libk12,cc,libcc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12>pvt,chtr,parochk12,cc,libk12,cc,libk12,cc,lib,ann-arbor,cog,dst,eaton,gen,mus,tec,washtenawk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libcc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libcc,libk12,cc,libcc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libk12,cc,libcck12,cc,lib<com,edu,gub,mil,net,orgco,com,net,orgcom,net,org,gov,mil,eduarts,bib,co,com,e12,edu,firm,gob,gov,info,int,mil,net,nom,org,rar,rec,store,tec,webco,com,k12,net,orgcom,net,org,edu,gov,int,ac,biz,info,name,pro,healthcom,edu,net,orgcom,net,org,gov,eduxn--55qx5d,xn--wcvs22d,xn--mxtq1m,xn--gmqw5a,xn--od0alg,xn--uc0atvxn--o1ac,xn--c1avg,xn--90azh,xn--d1at,xn--o1ach,xn--80auxn--12c1fe0br,xn--12co0c3b4eva,xn--h3cuzk1di,xn--o3cyx2a,xn--m3ch0j3a,xn--12cfi8ixb8lcom,edu,gov,net,mil,orgac,agric,alt,co,edu,gov,grondar,law,mil,net,ngo,nic,nis,nom,org,school,tm,webac,biz,co,com,edu,gov,info,mil,net,org,schac,co,gov,mil,org { + const labelsToCheck = labels.slice(); + const tlds = []; + let node = trie; + while (labelsToCheck.length !== 0) { + const label = labelsToCheck.pop(); + const labelLowerCase = label.toLowerCase(); + if (node.children.has(WILDCARD)) { + if (node.children.has(EXCEPTION + labelLowerCase)) { + break; + } + node = node.children.get(WILDCARD); + } else { + if (node.children.has(labelLowerCase) === false) { + break; + } + node = node.children.get(labelLowerCase); + } + tlds.unshift(label); + } + return tlds; +}; + +// node_modules/ip-regex/index.js +var word = "[a-fA-F\\d:]"; +var boundry = (options) => options && options.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : ""; +var v4 = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}"; +var v6segment = "[a-fA-F\\d]{1,4}"; +var v6 = ` +(?: +(?:${v6segment}:){7}(?:${v6segment}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8 +(?:${v6segment}:){6}(?:${v4}|:${v6segment}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4 +(?:${v6segment}:){5}(?::${v4}|(?::${v6segment}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4 +(?:${v6segment}:){4}(?:(?::${v6segment}){0,1}:${v4}|(?::${v6segment}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4 +(?:${v6segment}:){3}(?:(?::${v6segment}){0,2}:${v4}|(?::${v6segment}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4 +(?:${v6segment}:){2}(?:(?::${v6segment}){0,3}:${v4}|(?::${v6segment}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4 +(?:${v6segment}:){1}(?:(?::${v6segment}){0,4}:${v4}|(?::${v6segment}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 +(?::(?:(?::${v6segment}){0,5}:${v4}|(?::${v6segment}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 +)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 +`.replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim(); +var v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`); +var v4exact = new RegExp(`^${v4}$`); +var v6exact = new RegExp(`^${v6}$`); +var ipRegex = (options) => options && options.exact ? v46Exact : new RegExp(`(?:${boundry(options)}${v4}${boundry(options)})|(?:${boundry(options)}${v6}${boundry(options)})`, "g"); +ipRegex.v4 = (options) => options && options.exact ? v4exact : new RegExp(`${boundry(options)}${v4}${boundry(options)}`, "g"); +ipRegex.v6 = (options) => options && options.exact ? v6exact : new RegExp(`${boundry(options)}${v6}${boundry(options)}`, "g"); +var ip_regex_default = ipRegex; + +// node_modules/is-ip/index.js +function isIP(string) { + return ip_regex_default({ exact: true }).test(string); +} +function isIPv6(string) { + return ip_regex_default.v6({ exact: true }).test(string); +} +function ipVersion(string) { + return isIP(string) ? isIPv6(string) ? 6 : 4 : void 0; +} + +// node_modules/parse-domain/build/sanitize.js +var LABEL_SEPARATOR = "."; +var LABEL_LENGTH_MIN = 1; +var LABEL_LENGTH_MAX = 63; +var DOMAIN_LENGTH_MAX = 253; +var textEncoder = new TextEncoder(); +var Validation; +(function(Validation2) { + Validation2["Lax"] = "LAX"; + Validation2["Strict"] = "STRICT"; +})(Validation || (Validation = {})); +var ValidationErrorType; +(function(ValidationErrorType2) { + ValidationErrorType2["NoHostname"] = "NO_HOSTNAME"; + ValidationErrorType2["DomainMaxLength"] = "DOMAIN_MAX_LENGTH"; + ValidationErrorType2["LabelMinLength"] = "LABEL_MIN_LENGTH"; + ValidationErrorType2["LabelMaxLength"] = "LABEL_MAX_LENGTH"; + ValidationErrorType2["LabelInvalidCharacter"] = "LABEL_INVALID_CHARACTER"; + ValidationErrorType2["LastLabelInvalid"] = "LAST_LABEL_INVALID"; +})(ValidationErrorType || (ValidationErrorType = {})); +var SanitizationResultType; +(function(SanitizationResultType2) { + SanitizationResultType2["ValidIp"] = "VALID_IP"; + SanitizationResultType2["ValidDomain"] = "VALID_DOMAIN"; + SanitizationResultType2["Error"] = "ERROR"; +})(SanitizationResultType || (SanitizationResultType = {})); +var createNoHostnameError = (input) => { + return { + type: ValidationErrorType.NoHostname, + message: `The given input ${String(input)} does not look like a hostname.`, + column: 1 + }; +}; +var createDomainMaxLengthError = (domain, length) => { + return { + type: ValidationErrorType.DomainMaxLength, + message: `Domain "${domain}" is too long. Domain is ${length} octets long but should not be longer than ${DOMAIN_LENGTH_MAX}.`, + column: length + }; +}; +var createLabelMinLengthError = (label, column) => { + const length = label.length; + return { + type: ValidationErrorType.LabelMinLength, + message: `Label "${label}" is too short. Label is ${length} octets long but should be at least ${LABEL_LENGTH_MIN}.`, + column + }; +}; +var createLabelMaxLengthError = (label, column) => { + const length = label.length; + return { + type: ValidationErrorType.LabelMaxLength, + message: `Label "${label}" is too long. Label is ${length} octets long but should not be longer than ${LABEL_LENGTH_MAX}.`, + column + }; +}; +var createLabelInvalidCharacterError = (label, invalidCharacter, column) => { + return { + type: ValidationErrorType.LabelInvalidCharacter, + message: `Label "${label}" contains invalid character "${invalidCharacter}" at column ${column}.`, + column + }; +}; +var createLastLabelInvalidError = (label, column) => { + return { + type: ValidationErrorType.LabelInvalidCharacter, + message: `Last label "${label}" must not be all-numeric.`, + column + }; +}; +var sanitize = (input, options = {}) => { + if (typeof input !== "string") { + return { + type: SanitizationResultType.Error, + errors: [createNoHostnameError(input)] + }; + } + if (input === "") { + return { + type: SanitizationResultType.ValidDomain, + domain: input, + labels: [] + }; + } + const inputTrimmedAsIp = input.replace(/^\[|]$/g, ""); + const ipVersionOfInput = ipVersion(inputTrimmedAsIp); + if (ipVersionOfInput !== void 0) { + return { + type: SanitizationResultType.ValidIp, + ip: inputTrimmedAsIp, + ipVersion: ipVersionOfInput + }; + } + const lastChar = input.charAt(input.length - 1); + const canonicalInput = lastChar === LABEL_SEPARATOR ? input.slice(0, -1) : input; + const octets = new TextEncoder().encode(canonicalInput); + if (octets.length > DOMAIN_LENGTH_MAX) { + return { + type: SanitizationResultType.Error, + errors: [createDomainMaxLengthError(input, octets.length)] + }; + } + const labels = canonicalInput.split(LABEL_SEPARATOR); + const { validation = Validation.Strict } = options; + const labelValidationErrors = validateLabels[validation](labels); + if (labelValidationErrors.length > 0) { + return { + type: SanitizationResultType.Error, + errors: labelValidationErrors + }; + } + return { + type: SanitizationResultType.ValidDomain, + domain: input, + labels + }; +}; +var validateLabels = { + [Validation.Lax]: (labels) => { + const labelValidationErrors = []; + let column = 1; + for (const label of labels) { + const octets = textEncoder.encode(label); + if (octets.length < LABEL_LENGTH_MIN) { + labelValidationErrors.push(createLabelMinLengthError(label, column)); + } else if (octets.length > LABEL_LENGTH_MAX) { + labelValidationErrors.push(createLabelMaxLengthError(label, column)); + } + column += label.length + LABEL_SEPARATOR.length; + } + return labelValidationErrors; + }, + [Validation.Strict]: (labels) => { + const labelValidationErrors = []; + let column = 1; + let lastLabel; + for (const label of labels) { + const invalidCharacter = /[^\da-z-]/i.exec(label); + if (invalidCharacter) { + labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1)); + } + if (label.startsWith("-")) { + labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column)); + } else if (label.endsWith("-")) { + labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column + label.length - 1)); + } + if (label.length < LABEL_LENGTH_MIN) { + labelValidationErrors.push(createLabelMinLengthError(label, column)); + } else if (label.length > LABEL_LENGTH_MAX) { + labelValidationErrors.push(createLabelMaxLengthError(label, column)); + } + column += label.length + LABEL_SEPARATOR.length; + lastLabel = label; + } + if (lastLabel !== void 0 && /[a-z-]/iu.test(lastLabel) === false) { + labelValidationErrors.push(createLastLabelInvalidError(lastLabel, column - lastLabel.length - LABEL_SEPARATOR.length)); + } + return labelValidationErrors; + } +}; + +// node_modules/parse-domain/build/trie/nodes.js +var NODE_TYPE_ROOT = Symbol("ROOT"); +var NODE_TYPE_CHILD = Symbol("CHILD"); +var createRootNode = () => { + return { + type: NODE_TYPE_ROOT, + children: /* @__PURE__ */ new Map() + }; +}; +var createOrGetChild = (parent, label) => { + let child = parent.children.get(label); + if (child === void 0) { + child = { + type: NODE_TYPE_CHILD, + label, + children: /* @__PURE__ */ new Map(), + parent + }; + parent.children.set(label, child); + } + return child; +}; + +// node_modules/parse-domain/build/trie/parse-trie.js +var parseTrie = (serializedTrie) => { + const rootNode = createRootNode(); + let domain = ""; + let parentNode = rootNode; + let node = rootNode; + const addDomain = () => { + node = createOrGetChild(parentNode, domain); + domain = ""; + }; + for (let i = 0; i < serializedTrie.length; i++) { + const char = serializedTrie.charAt(i); + switch (char) { + case SAME: { + addDomain(); + continue; + } + case DOWN: { + addDomain(); + parentNode = node; + continue; + } + case RESET: { + addDomain(); + parentNode = rootNode; + continue; + } + case UP: { + if (parentNode.type === NODE_TYPE_ROOT) { + throw new Error(`Error in serialized trie at position ${i}: Cannot go up, current parent node is already root`); + } + addDomain(); + parentNode = parentNode.parent; + continue; + } + } + domain += char; + } + if (domain !== "") { + addDomain(); + } + return rootNode; +}; + +// node_modules/parse-domain/build/parse-domain.js +var RESERVED_TOP_LEVEL_DOMAINS = [ + "localhost", + "local", + "example", + "invalid", + "test" +]; +var ParseResultType; +(function(ParseResultType2) { + ParseResultType2["Invalid"] = "INVALID"; + ParseResultType2["Ip"] = "IP"; + ParseResultType2["Reserved"] = "RESERVED"; + ParseResultType2["NotListed"] = "NOT_LISTED"; + ParseResultType2["Listed"] = "LISTED"; +})(ParseResultType || (ParseResultType = {})); +var getAtIndex = (array, index) => { + return index >= 0 && index < array.length ? array[index] : void 0; +}; +var splitLabelsIntoDomains = (labels, index) => { + return { + subDomains: labels.slice(0, Math.max(0, index)), + domain: getAtIndex(labels, index), + topLevelDomains: labels.slice(index + 1) + }; +}; +var parsedIcannTrie; +var parsedPrivateTrie; +var parseDomain = (hostname, options) => { + const sanitizationResult = sanitize(hostname, options); + if (sanitizationResult.type === SanitizationResultType.Error) { + return { + type: ParseResultType.Invalid, + hostname, + errors: sanitizationResult.errors + }; + } + if (sanitizationResult.type === SanitizationResultType.ValidIp) { + return { + type: ParseResultType.Ip, + hostname: sanitizationResult.ip, + ipVersion: sanitizationResult.ipVersion + }; + } + const { labels, domain } = sanitizationResult; + if (hostname === "" || RESERVED_TOP_LEVEL_DOMAINS.includes(labels[labels.length - 1])) { + return { + type: ParseResultType.Reserved, + hostname: domain, + labels + }; + } + parsedIcannTrie = parsedIcannTrie !== null && parsedIcannTrie !== void 0 ? parsedIcannTrie : parseTrie(icann_default); + parsedPrivateTrie = parsedPrivateTrie !== null && parsedPrivateTrie !== void 0 ? parsedPrivateTrie : parseTrie(private_default); + const icannTlds = lookUpTldsInTrie(labels, parsedIcannTrie); + const privateTlds = lookUpTldsInTrie(labels, parsedPrivateTrie); + if (icannTlds.length === 0 && privateTlds.length === 0) { + return { + type: ParseResultType.NotListed, + hostname: domain, + labels + }; + } + const indexOfPublicSuffixDomain = labels.length - Math.max(privateTlds.length, icannTlds.length) - 1; + const indexOfIcannDomain = labels.length - icannTlds.length - 1; + return Object.assign({ type: ParseResultType.Listed, hostname: domain, labels, icann: splitLabelsIntoDomains(labels, indexOfIcannDomain) }, splitLabelsIntoDomains(labels, indexOfPublicSuffixDomain)); +}; + +// node_modules/parse-domain/build/from-url.js +var urlPattern = /^[a-z][*+.a-z-]+:\/\//i; +var invalidIpv6Pattern = /^([a-z][*+.a-z-]+:\/\/)([^[][^/?]*:[^/?]*:[^/?]*)(.*)/i; +var NO_HOSTNAME = Symbol("NO_HOSTNAME"); +var fromUrl = (urlLike) => { + if (typeof URL !== "function") { + throw new Error("Looks like the new URL() constructor is not globally available in your environment. Please make sure to use a polyfill."); + } + if (typeof urlLike !== "string") { + return NO_HOSTNAME; + } + let url = urlLike.startsWith("//") ? `http:${urlLike}` : urlLike.startsWith("/") ? urlLike : urlPattern.test(urlLike) ? urlLike : `http://${urlLike}`; + url = url.replace(invalidIpv6Pattern, "$1[$2]$3"); + try { + return new URL(url).hostname; + } catch (_a) { + return NO_HOSTNAME; + } +}; + +// src/utils/utility.ts +var Utility = class { + static assertNotNull(value) { + if (!value) { + throw new Error("Value is null"); + } + } + static parseDomainFromUrl(Url) { + return parseDomain(fromUrl(Url)).hostname.toString(); + } + static cleanHeading(heading) { + let cleanHeading = heading; + if (heading.startsWith("#") && heading[1] == " ") { + cleanHeading = heading.substring(2); + } + return cleanHeading; + } +}; + +// src/periodicnotes/filewriter.ts +var FileWriter = class { + constructor(app, openFileOnWrite) { + this.app = app; + this.openFileOnWrite = openFileOnWrite; + } + async write(file, clippedData, heading) { + const fileData = await this.app.vault.read(file); + const fileLines = fileData.split("\n"); + if (!heading) { + const startLine = this.getEndOfFrontmatter(file); + return this.writeAndOpenFile(file.path, this.positionDataWithNoHeader(fileData, clippedData, startLine)); + } else { + let insertSection = { + firstLine: 0, + lastLine: 0 + }; + try { + insertSection = this.getEndAndBeginningOfHeading(file, heading); + } catch (e) { + throw Error("Missing Expected Heading"); + } + const preSectionContent = fileLines.slice(0, insertSection.firstLine); + let targetSection = fileLines.slice(insertSection.firstLine, insertSection.lastLine); + targetSection = this.positionDataWithHeader(targetSection, clippedData); + let lines = []; + if (insertSection.lastLine !== -1) { + const postSectionContent = fileLines.slice(insertSection.lastLine); + lines = [...preSectionContent, ...targetSection, ...postSectionContent]; + } else { + lines = [...preSectionContent, ...targetSection]; + } + return this.writeAndOpenFile(file.path, lines.join("\n")); + } + } + async writeAndOpenFile(outputFileName, text2) { + const file = this.app.vault.getAbstractFileByPath(outputFileName); + if (file instanceof import_obsidian2.TFile) { + await this.app.vault.modify(file, text2); + } else { + const parts = outputFileName.split("/"); + const dir = parts.slice(0, parts.length - 1).join("/"); + if (parts.length > 1 && !(this.app.vault.getAbstractFileByPath(dir) instanceof import_obsidian2.TFolder)) { + await this.app.vault.createFolder(dir); + } + const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; + if (base64regex.test(text2)) { + await this.app.vault.createBinary(outputFileName, (0, import_obsidian2.base64ToArrayBuffer)(text2)); + } else { + await this.app.vault.create(outputFileName, text2); + } + } + if (this.openFileOnWrite) { + let fileIsAlreadyOpened = false; + this.app.workspace.iterateAllLeaves((leaf) => { + var _a; + if (((_a = leaf.view.file) == null ? void 0 : _a.path) === outputFileName) { + fileIsAlreadyOpened = true; + this.app.workspace.setActiveLeaf(leaf, { focus: true }); + } + }); + if (!fileIsAlreadyOpened) + await this.app.workspace.openLinkText(outputFileName, "", false); + } + return this.app.vault.getAbstractFileByPath(outputFileName); + } + getEndAndBeginningOfHeading(file, heading) { + const cache = this.app.metadataCache.getFileCache(file); + Utility.assertNotNull(cache); + heading = Utility.cleanHeading(heading); + try { + const cachedHeadings = cache.headings; + Utility.assertNotNull(cachedHeadings); + const foundHeadingIndex = cachedHeadings.findIndex((cachedHeading) => { + return cachedHeading.heading === heading && cachedHeading.level === 1; + }); + if (foundHeadingIndex !== -1) { + const foundHeading = cachedHeadings[foundHeadingIndex]; + let nextHeading = null; + for (let i = foundHeadingIndex + 1; i < (cachedHeadings == null ? void 0 : cachedHeadings.length); i++) { + const cachedHeading = cachedHeadings[i]; + if (cachedHeading.level === 1) { + nextHeading = cachedHeading; + break; + } + } + const prependLine = foundHeading.position.start.line; + let appendLine = -1; + if (nextHeading) { + appendLine = nextHeading.position.start.line; + } + return { lastLine: appendLine, firstLine: prependLine }; + } else { + throw Error("Heading not found"); + } + } catch (e) { + new import_obsidian2.Notice("Can't find heading"); + throw Error("Heading not found"); + } + } + getEndOfFrontmatter(file) { + var _a; + let endLine = 0; + if (file) { + const cache = this.app.metadataCache; + if (cache) { + const sections = (_a = cache.getFileCache(file)) == null ? void 0 : _a.sections; + const frontmatter = sections == null ? void 0 : sections.find((item) => { + return item.type === "yaml"; + }); + if (frontmatter) { + endLine = frontmatter.position.end.line; + } + } + } + return endLine + 1; + } +}; + +// src/periodicnotes/appendwriter.ts +var AppendWriter = class extends FileWriter { + positionDataWithNoHeader(fileData, clippedData) { + return fileData + "\n" + clippedData; + } + positionDataWithHeader(targetSection, clippedData) { + targetSection.push(clippedData); + return targetSection; + } +}; + +// src/periodicnotes/prependwriter.ts +var PrependWriter = class extends FileWriter { + positionDataWithNoHeader(fileData, clippedData, startLine = 0) { + const fileLines = fileData.split("\n"); + const preSectionContent = fileLines.slice(0, startLine); + const restOfContent = fileLines.slice(startLine); + return [...preSectionContent, clippedData, ...restOfContent].join("\n"); + } + positionDataWithHeader(targetSection, clippedData) { + targetSection.splice(1, 0, clippedData); + return targetSection; + } +}; + +// src/abstracts/noteentry.ts +var NoteEntry = class { + constructor(app, openFileOnWrite, sectionPosition, template) { + this.app = app; + this.openFileOnWrite = openFileOnWrite; + this.sectionPosition = sectionPosition; + this.template = template; + } + async handleWrite(noteFilePath, data, heading) { + const file = this.app.vault.getAbstractFileByPath(noteFilePath); + if (file instanceof import_obsidian3.TFile) { + if (this.sectionPosition === SectionPosition.PREPEND) { + new PrependWriter(this.app, this.openFileOnWrite).write(file, data, heading); + } else { + new AppendWriter(this.app, this.openFileOnWrite).write(file, data, heading); + } + } else { + new import_obsidian3.Notice(`Obsidian Clipper couldn't find the note to ${this.sectionPosition} to`); + } + } +}; + +// src/periodicnotes/periodicnoteentry.ts +var PeriodicNoteEntry = class extends NoteEntry { + constructor(app, openFileOnWrite, sectionPosition, template) { + super(app, openFileOnWrite, sectionPosition, template); + this.template = template; + } + async writeToPeriodicNote(noteEntry, heading) { + if (!this.hasPeriodicNoteEnabled()) { + new import_obsidian4.Notice(this.notice); + return; + } + const note = await this.getNote(); + this.handleWrite(note.path, await noteEntry.formattedEntry(this.template), heading); + } + async getNote() { + const now2 = globalThis.moment(); + const allNotes = this.getAllNotes(); + const periodicNote = this.getPeriodicNote(now2, allNotes); + if (!periodicNote) { + return await this.waitForNoteCreation(now2); + } + return periodicNote; + } +}; + +// src/periodicnotes/dailyperiodicnoteentry.ts +var DailyPeriodicNoteEntry = class extends PeriodicNoteEntry { + constructor(app, openFileOnWrite, sectionPosition, template) { + super(app, openFileOnWrite, sectionPosition, template); + this.notice = "To use a daily note with Obsidian Clipper the daily note needs to be enabled from the periodic-notes plugin"; + } + getPeriodicNote(moment, allNotes) { + return (0, import_obsidian_daily_notes_interface.getDailyNote)(moment, allNotes); + } + hasPeriodicNoteEnabled() { + return (0, import_obsidian_daily_notes_interface.appHasDailyNotesPluginLoaded)(); + } + async waitForNoteCreation(moment) { + const dailyNote = await (0, import_obsidian_daily_notes_interface.createDailyNote)(moment); + await new Promise((r) => setTimeout(r, 50)); + return dailyNote; + } + getAllNotes() { + return (0, import_obsidian_daily_notes_interface.getAllDailyNotes)(); + } +}; + +// src/periodicnotes/weeklyperiodicnoteentry.ts +var import_obsidian_daily_notes_interface2 = __toESM(require_main()); +var WeeklyPeriodicNoteEntry = class extends PeriodicNoteEntry { + constructor(app, openFileOnWrite, sectionPosition, template) { + super(app, openFileOnWrite, sectionPosition, template); + this.notice = "To use a weekly note with Obsidian Clipper the weekly note needs to be enabled from the periodic-notes plugin"; + } + getPeriodicNote(moment, allNotes) { + return (0, import_obsidian_daily_notes_interface2.getWeeklyNote)(moment, allNotes); + } + hasPeriodicNoteEnabled() { + return (0, import_obsidian_daily_notes_interface2.appHasWeeklyNotesPluginLoaded)(); + } + async waitForNoteCreation(moment) { + const weeklyNote = await (0, import_obsidian_daily_notes_interface2.createWeeklyNote)(moment); + await new Promise((r) => setTimeout(r, 50)); + return weeklyNote; + } + getAllNotes() { + return (0, import_obsidian_daily_notes_interface2.getAllWeeklyNotes)(); + } +}; + +// node_modules/svelte/internal/index.mjs +function noop() { +} +var identity = (x) => x; +function assign(tar, src) { + for (const k in src) + tar[k] = src[k]; + return tar; +} +function run(fn2) { + return fn2(); +} +function blank_object() { + return /* @__PURE__ */ 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 is_empty(obj) { + return Object.keys(obj).length === 0; +} +function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); +} +function create_slot(definition, ctx, $$scope, fn2) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, $$scope, fn2); + return definition[0](slot_ctx); + } +} +function get_slot_context(definition, ctx, $$scope, fn2) { + return definition[1] && fn2 ? assign($$scope.ctx.slice(), definition[1](fn2(ctx))) : $$scope.ctx; +} +function get_slot_changes(definition, $$scope, dirty, fn2) { + if (definition[2] && fn2) { + const lets = definition[2](fn2(dirty)); + if ($$scope.dirty === void 0) { + 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_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_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 get_all_dirty_from_scope($$scope) { + if ($$scope.ctx.length > 32) { + const dirty = []; + const length = $$scope.ctx.length / 32; + for (let i = 0; i < length; i++) { + dirty[i] = -1; + } + return dirty; + } + return -1; +} +function null_to_empty(value) { + return value == null ? "" : value; +} +function set_store_value(store, ret, value) { + store.set(value); + return ret; +} +function action_destroyer(action_result) { + return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; +} +var is_client = typeof window !== "undefined"; +var now = is_client ? () => window.performance.now() : () => Date.now(); +var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; +var tasks = /* @__PURE__ */ new Set(); +function run_tasks(now2) { + tasks.forEach((task) => { + if (!task.c(now2)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); +} +function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise((fulfill) => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} +var is_hydrating = false; +function start_hydrating() { + is_hydrating = true; +} +function end_hydrating() { + is_hydrating = false; +} +function append(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element("style"); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; +} +function append_empty_stylesheet(node) { + const style_element = element("style"); + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; +} +function append_stylesheet(node, style) { + append(node.head || node, style); + return style.sheet; +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + if (node.parentNode) { + 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 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 children(element2) { + return Array.from(element2.childNodes); +} +function set_data(text2, data) { + data = "" + data; + if (text2.wholeText !== data) + text2.data = data; +} +function set_input_value(input, value) { + input.value = value == null ? "" : value; +} +function set_style(node, key, value, important) { + if (value === null) { + node.style.removeProperty(key); + } else { + node.style.setProperty(key, value, important ? "important" : ""); + } +} +function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + if (option.__value === value) { + option.selected = true; + return; + } + } + select.selectedIndex = -1; +} +function select_value(select) { + const selected_option = select.querySelector(":checked") || select.options[0]; + return selected_option && selected_option.__value; +} +function toggle_class(element2, name, toggle) { + element2.classList[toggle ? "add" : "remove"](name); +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent("CustomEvent"); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; +} +function construct_svelte_component(component, props) { + return new component(props); +} +var managed_styles = /* @__PURE__ */ new Map(); +var active = 0; +function hash(str) { + let hash4 = 5381; + let i = str.length; + while (i--) + hash4 = (hash4 << 5) - hash4 ^ str.charCodeAt(i); + return hash4 >>> 0; +} +function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; +} +function create_rule(node, a, b, duration, delay, ease, fn2, uid = 0) { + const step = 16.666 / duration; + let keyframes = "{\n"; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn2(t, 1 - t)}} +`; + } + const rule = keyframes + `100% {${fn2(b, 1 - b)}} +}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ""; + node.style.animation = `${animation ? `${animation}, ` : ""}${name} ${duration}ms linear ${delay}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || "").split(", "); + const next = previous.filter(name ? (anim) => anim.indexOf(name) < 0 : (anim) => anim.indexOf("__svelte") === -1); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(", "); + active -= deleted; + if (!active) + clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) + return; + managed_styles.forEach((info) => { + const { ownerNode } = info.stylesheet; + if (ownerNode) + detach(ownerNode); + }); + managed_styles.clear(); + }); +} +var 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; +} +function onDestroy(fn2) { + get_current_component().$$.on_destroy.push(fn2); +} +function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + callbacks.slice().forEach((fn2) => fn2.call(this, event)); + } +} +var dirty_components = []; +var binding_callbacks = []; +var render_callbacks = []; +var flush_callbacks = []; +var resolved_promise = Promise.resolve(); +var update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn2) { + render_callbacks.push(fn2); +} +var seen_callbacks = /* @__PURE__ */ new Set(); +var flushidx = 0; +function flush() { + if (flushidx !== 0) { + return; + } + const saved_component = current_component; + do { + try { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + } catch (e) { + dirty_components.length = 0; + flushidx = 0; + throw e; + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +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); + } +} +var promise; +function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? "intro" : "outro"}${kind}`)); +} +var outroing = /* @__PURE__ */ new Set(); +var outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros + }; +} +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, detach2, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach2) + block.d(1); + callback(); + } + }); + block.o(local); + } else if (callback) { + callback(); + } +} +var null_transition = { duration: 0 }; +function create_in_transition(node, fn2, params) { + const options = { direction: "in" }; + let config = fn2(node, params, options); + let running = false; + let animation_name; + let task; + let uid = 0; + function cleanup() { + if (animation_name) + delete_rule(node, animation_name); + } + function go() { + const { delay = 0, duration = 300, easing = identity, tick: tick2 = noop, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick2(0, 1); + const start_time = now() + delay; + const end_time = start_time + duration; + if (task) + task.abort(); + running = true; + add_render_callback(() => dispatch(node, true, "start")); + task = loop((now2) => { + if (running) { + if (now2 >= end_time) { + tick2(1, 0); + dispatch(node, true, "end"); + cleanup(); + return running = false; + } + if (now2 >= start_time) { + const t = easing((now2 - start_time) / duration); + tick2(t, 1 - t); + } + } + return running; + }); + } + let started = false; + return { + start() { + if (started) + return; + started = true; + delete_rule(node); + if (is_function(config)) { + config = config(options); + wait().then(go); + } else { + go(); + } + }, + invalidate() { + started = false; + }, + end() { + if (running) { + cleanup(); + running = false; + } + } + }; +} +function create_out_transition(node, fn2, params) { + const options = { direction: "out" }; + let config = fn2(node, params, options); + let running = true; + let animation_name; + const group = outros; + group.r += 1; + function go() { + const { delay = 0, duration = 300, easing = identity, tick: tick2 = noop, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + const start_time = now() + delay; + const end_time = start_time + duration; + add_render_callback(() => dispatch(node, false, "start")); + loop((now2) => { + if (running) { + if (now2 >= end_time) { + tick2(0, 1); + dispatch(node, false, "end"); + if (!--group.r) { + run_all(group.c); + } + return false; + } + if (now2 >= start_time) { + const t = easing((now2 - start_time) / duration); + tick2(1 - t, t); + } + } + return running; + }); + } + if (is_function(config)) { + wait().then(() => { + config = config(options); + go(); + }); + } else { + go(); + } + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + if (running) { + if (animation_name) + delete_rule(node, animation_name); + running = false; + } + } + }; +} +var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : global; +function get_spread_update(levels, updates) { + const update2 = {}; + 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]) { + update2[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 update2)) + update2[key] = void 0; + } + return update2; +} +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, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } else { + 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); + $$.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, instance16, create_fragment16, not_equal, props, append_styles2, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + props, + update: noop, + not_equal, + bound: blank_object(), + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles2 && append_styles2($$.root); + let ready = false; + $$.ctx = instance16 ? instance16(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); + $$.fragment = create_fragment16 ? create_fragment16($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + start_hydrating(); + const nodes = children(options.target); + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } else { + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + end_hydrating(); + flush(); + } + set_current_component(parent_component); +} +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: "open" }); + } + connectedCallback() { + const { on_mount } = this.$$; + this.$$.on_disconnect = on_mount.map(run).filter(is_function); + for (const key in this.$$.slotted) { + this.appendChild(this.$$.slotted[key]); + } + } + attributeChangedCallback(attr2, _oldValue, newValue) { + this[attr2] = newValue; + } + disconnectedCallback() { + run_all(this.$$.on_disconnect); + } + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + 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; + } + } + }; +} +var SvelteComponent = class { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + 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; + } + } +}; + +// node_modules/svelte/easing/index.mjs +function cubicOut(t) { + const f = t - 1; + return f * f * f + 1; +} + +// node_modules/svelte/transition/index.mjs +function slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + return { + delay, + duration, + easing, + css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};height: ${t * height}px;padding-top: ${t * padding_top}px;padding-bottom: ${t * padding_bottom}px;margin-top: ${t * margin_top}px;margin-bottom: ${t * margin_bottom}px;border-top-width: ${t * border_top_width}px;border-bottom-width: ${t * border_bottom_width}px;` + }; +} + +// node_modules/@popperjs/core/lib/enums.js +var top = "top"; +var bottom = "bottom"; +var right = "right"; +var left = "left"; +var auto = "auto"; +var basePlacements = [top, bottom, right, left]; +var start = "start"; +var end = "end"; +var clippingParents = "clippingParents"; +var viewport = "viewport"; +var popper = "popper"; +var reference = "reference"; +var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); +}, []); +var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); +}, []); +var beforeRead = "beforeRead"; +var read = "read"; +var afterRead = "afterRead"; +var beforeMain = "beforeMain"; +var main = "main"; +var afterMain = "afterMain"; +var beforeWrite = "beforeWrite"; +var write = "write"; +var afterWrite = "afterWrite"; +var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + +// node_modules/@popperjs/core/lib/dom-utils/getNodeName.js +function getNodeName(element2) { + return element2 ? (element2.nodeName || "").toLowerCase() : null; +} + +// node_modules/@popperjs/core/lib/dom-utils/getWindow.js +function getWindow(node) { + if (node == null) { + return window; + } + if (node.toString() !== "[object Window]") { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + return node; +} + +// node_modules/@popperjs/core/lib/dom-utils/instanceOf.js +function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; +} +function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; +} +function isShadowRoot(node) { + if (typeof ShadowRoot === "undefined") { + return false; + } + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; +} + +// node_modules/@popperjs/core/lib/modifiers/applyStyles.js +function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function(name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element2 = state.elements[name]; + if (!isHTMLElement(element2) || !getNodeName(element2)) { + return; + } + Object.assign(element2.style, style); + Object.keys(attributes).forEach(function(name2) { + var value = attributes[name2]; + if (value === false) { + element2.removeAttribute(name2); + } else { + element2.setAttribute(name2, value === true ? "" : value); + } + }); + }); +} +function effect(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: "0", + top: "0", + margin: "0" + }, + arrow: { + position: "absolute" + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + return function() { + Object.keys(state.elements).forEach(function(name) { + var element2 = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); + var style = styleProperties.reduce(function(style2, property) { + style2[property] = ""; + return style2; + }, {}); + if (!isHTMLElement(element2) || !getNodeName(element2)) { + return; + } + Object.assign(element2.style, style); + Object.keys(attributes).forEach(function(attribute) { + element2.removeAttribute(attribute); + }); + }); + }; +} +var applyStyles_default = { + name: "applyStyles", + enabled: true, + phase: "write", + fn: applyStyles, + effect, + requires: ["computeStyles"] +}; + +// node_modules/@popperjs/core/lib/utils/getBasePlacement.js +function getBasePlacement(placement) { + return placement.split("-")[0]; +} + +// node_modules/@popperjs/core/lib/utils/math.js +var max = Math.max; +var min = Math.min; +var round = Math.round; + +// node_modules/@popperjs/core/lib/utils/userAgent.js +function getUAString() { + var uaData = navigator.userAgentData; + if (uaData != null && uaData.brands) { + return uaData.brands.map(function(item) { + return item.brand + "/" + item.version; + }).join(" "); + } + return navigator.userAgent; +} + +// node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js +function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); +} + +// node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js +function getBoundingClientRect(element2, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + var clientRect = element2.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + if (includeScale && isHTMLElement(element2)) { + scaleX = element2.offsetWidth > 0 ? round(clientRect.width) / element2.offsetWidth || 1 : 1; + scaleY = element2.offsetHeight > 0 ? round(clientRect.height) / element2.offsetHeight || 1 : 1; + } + var _ref = isElement(element2) ? getWindow(element2) : window, visualViewport = _ref.visualViewport; + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width, + height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x, + y + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js +function getLayoutRect(element2) { + var clientRect = getBoundingClientRect(element2); + var width = element2.offsetWidth; + var height = element2.offsetHeight; + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + return { + x: element2.offsetLeft, + y: element2.offsetTop, + width, + height + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/contains.js +function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); + if (parent.contains(child)) { + return true; + } else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + do { + if (next && parent.isSameNode(next)) { + return true; + } + next = next.parentNode || next.host; + } while (next); + } + return false; +} + +// node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js +function getComputedStyle2(element2) { + return getWindow(element2).getComputedStyle(element2); +} + +// node_modules/@popperjs/core/lib/dom-utils/isTableElement.js +function isTableElement(element2) { + return ["table", "td", "th"].indexOf(getNodeName(element2)) >= 0; +} + +// node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js +function getDocumentElement(element2) { + return ((isElement(element2) ? element2.ownerDocument : element2.document) || window.document).documentElement; +} + +// node_modules/@popperjs/core/lib/dom-utils/getParentNode.js +function getParentNode(element2) { + if (getNodeName(element2) === "html") { + return element2; + } + return element2.assignedSlot || element2.parentNode || (isShadowRoot(element2) ? element2.host : null) || getDocumentElement(element2); +} + +// node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js +function getTrueOffsetParent(element2) { + if (!isHTMLElement(element2) || getComputedStyle2(element2).position === "fixed") { + return null; + } + return element2.offsetParent; +} +function getContainingBlock(element2) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + if (isIE && isHTMLElement(element2)) { + var elementCss = getComputedStyle2(element2); + if (elementCss.position === "fixed") { + return null; + } + } + var currentNode = getParentNode(element2); + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle2(currentNode); + if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + return null; +} +function getOffsetParent(element2) { + var window2 = getWindow(element2); + var offsetParent = getTrueOffsetParent(element2); + while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { + offsetParent = getTrueOffsetParent(offsetParent); + } + if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) { + return window2; + } + return offsetParent || getContainingBlock(element2) || window2; +} + +// node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js +function getMainAxisFromPlacement(placement) { + return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; +} + +// node_modules/@popperjs/core/lib/utils/within.js +function within(min2, value, max2) { + return max(min2, min(value, max2)); +} +function withinMaxClamp(min2, value, max2) { + var v = within(min2, value, max2); + return v > max2 ? max2 : v; +} + +// node_modules/@popperjs/core/lib/utils/getFreshSideObject.js +function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; +} + +// node_modules/@popperjs/core/lib/utils/mergePaddingObject.js +function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); +} + +// node_modules/@popperjs/core/lib/utils/expandToHashMap.js +function expandToHashMap(value, keys) { + return keys.reduce(function(hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); +} + +// node_modules/@popperjs/core/lib/modifiers/arrow.js +var toPaddingObject = function toPaddingObject2(padding, state) { + padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); +}; +function arrow(_ref) { + var _state$modifiersData$; + var state = _ref.state, name = _ref.name, options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets2 = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? "height" : "width"; + if (!arrowElement || !popperOffsets2) { + return; + } + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === "y" ? top : left; + var maxProp = axis === "y" ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; + var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; + var min2 = paddingObject[minProp]; + var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset2 = within(min2, center, max2); + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$); +} +function effect2(_ref2) { + var state = _ref2.state, options = _ref2.options; + var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; + if (arrowElement == null) { + return; + } + if (typeof arrowElement === "string") { + arrowElement = state.elements.popper.querySelector(arrowElement); + if (!arrowElement) { + return; + } + } + if (true) { + if (!isHTMLElement(arrowElement)) { + console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" ")); + } + } + if (!contains(state.elements.popper, arrowElement)) { + if (true) { + console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" ")); + } + return; + } + state.elements.arrow = arrowElement; +} +var arrow_default = { + name: "arrow", + enabled: true, + phase: "main", + fn: arrow, + effect: effect2, + requires: ["popperOffsets"], + requiresIfExists: ["preventOverflow"] +}; + +// node_modules/@popperjs/core/lib/utils/getVariation.js +function getVariation(placement) { + return placement.split("-")[1]; +} + +// node_modules/@popperjs/core/lib/modifiers/computeStyles.js +var unsetSides = { + top: "auto", + right: "auto", + bottom: "auto", + left: "auto" +}; +function roundOffsetsByDPR(_ref) { + var x = _ref.x, y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; +} +function mapToStyles(_ref2) { + var _Object$assign2; + var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; + var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ + x, + y + }) : { + x, + y + }; + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty("x"); + var hasY = offsets.hasOwnProperty("y"); + var sideX = left; + var sideY = top; + var win = window; + if (adaptive) { + var offsetParent = getOffsetParent(popper2); + var heightProp = "clientHeight"; + var widthProp = "clientWidth"; + if (offsetParent === getWindow(popper2)) { + offsetParent = getDocumentElement(popper2); + if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") { + heightProp = "scrollHeight"; + widthProp = "scrollWidth"; + } + } + offsetParent = offsetParent; + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + var commonStyles = Object.assign({ + position + }, adaptive && unsetSides); + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x, + y + }) : { + x, + y + }; + x = _ref4.x; + y = _ref4.y; + if (gpuAcceleration) { + var _Object$assign; + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); +} +function computeStyles(_ref5) { + var state = _ref5.state, options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + if (true) { + var transitionProperty = getComputedStyle2(state.elements.popper).transitionProperty || ""; + if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) { + return transitionProperty.indexOf(property) >= 0; + })) { + console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" ")); + } + } + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration, + isFixed: state.options.strategy === "fixed" + }; + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive, + roundOffsets + }))); + } + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: "absolute", + adaptive: false, + roundOffsets + }))); + } + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-placement": state.placement + }); +} +var computeStyles_default = { + name: "computeStyles", + enabled: true, + phase: "beforeWrite", + fn: computeStyles, + data: {} +}; + +// node_modules/@popperjs/core/lib/modifiers/eventListeners.js +var passive = { + passive: true +}; +function effect3(_ref) { + var state = _ref.state, instance16 = _ref.instance, options = _ref.options; + var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; + var window2 = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + if (scroll) { + scrollParents.forEach(function(scrollParent) { + scrollParent.addEventListener("scroll", instance16.update, passive); + }); + } + if (resize) { + window2.addEventListener("resize", instance16.update, passive); + } + return function() { + if (scroll) { + scrollParents.forEach(function(scrollParent) { + scrollParent.removeEventListener("scroll", instance16.update, passive); + }); + } + if (resize) { + window2.removeEventListener("resize", instance16.update, passive); + } + }; +} +var eventListeners_default = { + name: "eventListeners", + enabled: true, + phase: "write", + fn: function fn() { + }, + effect: effect3, + data: {} +}; + +// node_modules/@popperjs/core/lib/utils/getOppositePlacement.js +var hash2 = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" +}; +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function(matched) { + return hash2[matched]; + }); +} + +// node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js +var hash3 = { + start: "end", + end: "start" +}; +function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function(matched) { + return hash3[matched]; + }); +} + +// node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js +function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft, + scrollTop + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js +function getWindowScrollBarX(element2) { + return getBoundingClientRect(getDocumentElement(element2)).left + getWindowScroll(element2).scrollLeft; +} + +// node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js +function getViewportRect(element2, strategy) { + var win = getWindow(element2); + var html = getDocumentElement(element2); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + if (layoutViewport || !layoutViewport && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + return { + width, + height, + x: x + getWindowScrollBarX(element2), + y + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js +function getDocumentRect(element2) { + var _element$ownerDocumen; + var html = getDocumentElement(element2); + var winScroll = getWindowScroll(element2); + var body = (_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element2); + var y = -winScroll.scrollTop; + if (getComputedStyle2(body || html).direction === "rtl") { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + return { + width, + height, + x, + y + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js +function isScrollParent(element2) { + var _getComputedStyle = getComputedStyle2(element2), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); +} + +// node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js +function getScrollParent(node) { + if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { + return node.ownerDocument.body; + } + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + return getScrollParent(getParentNode(node)); +} + +// node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js +function listScrollParents(element2, list) { + var _element$ownerDocumen; + if (list === void 0) { + list = []; + } + var scrollParent = getScrollParent(element2); + var isBody = scrollParent === ((_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target))); +} + +// node_modules/@popperjs/core/lib/utils/rectToClientRect.js +function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); +} + +// node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js +function getInnerBoundingClientRect(element2, strategy) { + var rect = getBoundingClientRect(element2, false, strategy === "fixed"); + rect.top = rect.top + element2.clientTop; + rect.left = rect.left + element2.clientLeft; + rect.bottom = rect.top + element2.clientHeight; + rect.right = rect.left + element2.clientWidth; + rect.width = element2.clientWidth; + rect.height = element2.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; +} +function getClientRectFromMixedType(element2, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element2, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element2))); +} +function getClippingParents(element2) { + var clippingParents2 = listScrollParents(getParentNode(element2)); + var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element2).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element2) ? getOffsetParent(element2) : element2; + if (!isElement(clipperElement)) { + return []; + } + return clippingParents2.filter(function(clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; + }); +} +function getClippingRect(element2, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element2) : [].concat(boundary); + var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents2[0]; + var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { + var rect = getClientRectFromMixedType(element2, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element2, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; +} + +// node_modules/@popperjs/core/lib/utils/computeOffsets.js +function computeOffsets(_ref) { + var reference2 = _ref.reference, element2 = _ref.element, placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference2.x + reference2.width / 2 - element2.width / 2; + var commonY = reference2.y + reference2.height / 2 - element2.height / 2; + var offsets; + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference2.y - element2.height + }; + break; + case bottom: + offsets = { + x: commonX, + y: reference2.y + reference2.height + }; + break; + case right: + offsets = { + x: reference2.x + reference2.width, + y: commonY + }; + break; + case left: + offsets = { + x: reference2.x - element2.width, + y: commonY + }; + break; + default: + offsets = { + x: reference2.x, + y: reference2.y + }; + } + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + if (mainAxis != null) { + var len = mainAxis === "y" ? "height" : "width"; + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element2[len] / 2); + break; + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element2[len] / 2); + break; + default: + } + } + return offsets; +} + +// node_modules/@popperjs/core/lib/utils/detectOverflow.js +function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element2 = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element2) ? element2 : element2.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets2 = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: "absolute", + placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; + if (elementContext === popper && offsetData) { + var offset2 = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function(key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; + overflowOffsets[key] += offset2[axis] * multiply; + }); + } + return overflowOffsets; +} + +// node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { + return getVariation(placement2) === variation; + }) : basePlacements; + var allowedPlacements = placements2.filter(function(placement2) { + return allowedAutoPlacements.indexOf(placement2) >= 0; + }); + if (allowedPlacements.length === 0) { + allowedPlacements = placements2; + if (true) { + console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" ")); + } + } + var overflows = allowedPlacements.reduce(function(acc, placement2) { + acc[placement2] = detectOverflow(state, { + placement: placement2, + boundary, + rootBoundary, + padding + })[getBasePlacement(placement2)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function(a, b) { + return overflows[a] - overflows[b]; + }); +} + +// node_modules/@popperjs/core/lib/modifiers/flip.js +function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; +} +function flip(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + if (state.modifiersData[name]._skip) { + return; + } + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { + return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { + placement: placement2, + boundary, + rootBoundary, + padding, + flipVariations, + allowedAutoPlacements + }) : placement2); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = /* @__PURE__ */ new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements2[0]; + for (var i = 0; i < placements2.length; i++) { + var placement = placements2[i]; + var _basePlacement = getBasePlacement(placement); + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? "width" : "height"; + var overflow = detectOverflow(state, { + placement, + boundary, + rootBoundary, + altBoundary, + padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + if (checks.every(function(check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + checksMap.set(placement, checks); + } + if (makeFallbackChecks) { + var numberOfChecks = flipVariations ? 3 : 1; + var _loop = function _loop2(_i2) { + var fittingPlacement = placements2.find(function(placement2) { + var checks2 = checksMap.get(placement2); + if (checks2) { + return checks2.slice(0, _i2).every(function(check) { + return check; + }); + } + }); + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + if (_ret === "break") + break; + } + } + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } +} +var flip_default = { + name: "flip", + enabled: true, + phase: "main", + fn: flip, + requiresIfExists: ["offset"], + data: { + _skip: false + } +}; + +// node_modules/@popperjs/core/lib/modifiers/hide.js +function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; +} +function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function(side) { + return overflow[side] >= 0; + }); +} +function hide(_ref) { + var state = _ref.state, name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: "reference" + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets, + popperEscapeOffsets, + isReferenceHidden, + hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-reference-hidden": isReferenceHidden, + "data-popper-escaped": hasPopperEscaped + }); +} +var hide_default = { + name: "hide", + enabled: true, + phase: "main", + requiresIfExists: ["preventOverflow"], + fn: hide +}; + +// node_modules/@popperjs/core/lib/modifiers/offset.js +function distanceAndSkiddingToXY(placement, rects, offset2) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, { + placement + })) : offset2, skidding = _ref[0], distance = _ref[1]; + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; +} +function offset(_ref2) { + var state = _ref2.state, options = _ref2.options, name = _ref2.name; + var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function(acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2); + return acc; + }, {}); + var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + state.modifiersData[name] = data; +} +var offset_default = { + name: "offset", + enabled: true, + phase: "main", + requires: ["popperOffsets"], + fn: offset +}; + +// node_modules/@popperjs/core/lib/modifiers/popperOffsets.js +function popperOffsets(_ref) { + var state = _ref.state, name = _ref.name; + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: "absolute", + placement: state.placement + }); +} +var popperOffsets_default = { + name: "popperOffsets", + enabled: true, + phase: "read", + fn: popperOffsets, + data: {} +}; + +// node_modules/@popperjs/core/lib/utils/getAltAxis.js +function getAltAxis(axis) { + return axis === "x" ? "y" : "x"; +} + +// node_modules/@popperjs/core/lib/modifiers/preventOverflow.js +function preventOverflow(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary, + rootBoundary, + padding, + altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets2 = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + if (!popperOffsets2) { + return; + } + if (checkMainAxis) { + var _offsetModifierState$; + var mainSide = mainAxis === "y" ? top : left; + var altSide = mainAxis === "y" ? bottom : right; + var len = mainAxis === "y" ? "height" : "width"; + var offset2 = popperOffsets2[mainAxis]; + var min2 = offset2 + overflow[mainSide]; + var max2 = offset2 - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset2 + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2); + popperOffsets2[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset2; + } + if (checkAltAxis) { + var _offsetModifierState$2; + var _mainSide = mainAxis === "x" ? top : left; + var _altSide = mainAxis === "x" ? bottom : right; + var _offset = popperOffsets2[altAxis]; + var _len = altAxis === "y" ? "height" : "width"; + var _min = _offset + overflow[_mainSide]; + var _max = _offset - overflow[_altSide]; + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + popperOffsets2[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + state.modifiersData[name] = data; +} +var preventOverflow_default = { + name: "preventOverflow", + enabled: true, + phase: "main", + fn: preventOverflow, + requiresIfExists: ["offset"] +}; + +// node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js +function getHTMLElementScroll(element2) { + return { + scrollLeft: element2.scrollLeft, + scrollTop: element2.scrollTop + }; +} + +// node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js +function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } +} + +// node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js +function isElementScaled(element2) { + var rect = element2.getBoundingClientRect(); + var scaleX = round(rect.width) / element2.offsetWidth || 1; + var scaleY = round(rect.height) / element2.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; +} +function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; +} + +// node_modules/@popperjs/core/lib/utils/orderModifiers.js +function order(modifiers) { + var map = /* @__PURE__ */ new Map(); + var visited = /* @__PURE__ */ new Set(); + var result = []; + modifiers.forEach(function(modifier) { + map.set(modifier.name, modifier); + }); + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function(dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + modifiers.forEach(function(modifier) { + if (!visited.has(modifier.name)) { + sort(modifier); + } + }); + return result; +} +function orderModifiers(modifiers) { + var orderedModifiers = order(modifiers); + return modifierPhases.reduce(function(acc, phase) { + return acc.concat(orderedModifiers.filter(function(modifier) { + return modifier.phase === phase; + })); + }, []); +} + +// node_modules/@popperjs/core/lib/utils/debounce.js +function debounce(fn2) { + var pending; + return function() { + if (!pending) { + pending = new Promise(function(resolve) { + Promise.resolve().then(function() { + pending = void 0; + resolve(fn2()); + }); + }); + } + return pending; + }; +} + +// node_modules/@popperjs/core/lib/utils/format.js +function format(str) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return [].concat(args).reduce(function(p, c) { + return p.replace(/%s/, c); + }, str); +} + +// node_modules/@popperjs/core/lib/utils/validateModifiers.js +var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; +var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; +var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"]; +function validateModifiers(modifiers) { + modifiers.forEach(function(modifier) { + [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self) { + return self.indexOf(value) === index; + }).forEach(function(key) { + switch (key) { + case "name": + if (typeof modifier.name !== "string") { + console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"')); + } + break; + case "enabled": + if (typeof modifier.enabled !== "boolean") { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"')); + } + break; + case "phase": + if (modifierPhases.indexOf(modifier.phase) < 0) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"')); + } + break; + case "fn": + if (typeof modifier.fn !== "function") { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"')); + } + break; + case "effect": + if (modifier.effect != null && typeof modifier.effect !== "function") { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"')); + } + break; + case "requires": + if (modifier.requires != null && !Array.isArray(modifier.requires)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"')); + } + break; + case "requiresIfExists": + if (!Array.isArray(modifier.requiresIfExists)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"')); + } + break; + case "options": + case "data": + break; + default: + console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) { + return '"' + s + '"'; + }).join(", ") + '; but "' + key + '" was provided.'); + } + modifier.requires && modifier.requires.forEach(function(requirement) { + if (modifiers.find(function(mod) { + return mod.name === requirement; + }) == null) { + console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); + } + }); + }); + }); +} + +// node_modules/@popperjs/core/lib/utils/uniqueBy.js +function uniqueBy(arr, fn2) { + var identifiers = /* @__PURE__ */ new Set(); + return arr.filter(function(item) { + var identifier = fn2(item); + if (!identifiers.has(identifier)) { + identifiers.add(identifier); + return true; + } + }); +} + +// node_modules/@popperjs/core/lib/utils/mergeByName.js +function mergeByName(modifiers) { + var merged = modifiers.reduce(function(merged2, current) { + var existing = merged2[current.name]; + merged2[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged2; + }, {}); + return Object.keys(merged).map(function(key) { + return merged[key]; + }); +} + +// node_modules/@popperjs/core/lib/createPopper.js +var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element."; +var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash."; +var DEFAULT_OPTIONS = { + placement: "bottom", + modifiers: [], + strategy: "absolute" +}; +function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return !args.some(function(element2) { + return !(element2 && typeof element2.getBoundingClientRect === "function"); + }); +} +function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper2(reference2, popper2, options) { + if (options === void 0) { + options = defaultOptions; + } + var state = { + placement: "bottom", + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference2, + popper: popper2 + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance16 = { + state, + setOptions: function setOptions(setOptionsAction) { + var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options2); + state.scrollParents = { + reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], + popper: listScrollParents(popper2) + }; + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); + state.orderedModifiers = orderedModifiers.filter(function(m) { + return m.enabled; + }); + if (true) { + var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) { + var name = _ref.name; + return name; + }); + validateModifiers(modifiers); + if (getBasePlacement(state.options.placement) === auto) { + var flipModifier = state.orderedModifiers.find(function(_ref2) { + var name = _ref2.name; + return name === "flip"; + }); + if (!flipModifier) { + console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" ")); + } + } + var _getComputedStyle = getComputedStyle2(popper2), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft; + if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) { + return parseFloat(margin); + })) { + console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" ")); + } + } + runModifierEffects(); + return instance16.update(); + }, + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; + if (!areValidElements(reference3, popper3)) { + if (true) { + console.error(INVALID_ELEMENT_ERROR); + } + return; + } + state.rects = { + reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), + popper: getLayoutRect(popper3) + }; + state.reset = false; + state.placement = state.options.placement; + state.orderedModifiers.forEach(function(modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + var __debug_loops__ = 0; + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (true) { + __debug_loops__ += 1; + if (__debug_loops__ > 100) { + console.error(INFINITE_LOOP_ERROR); + break; + } + } + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; + if (typeof fn2 === "function") { + state = fn2({ + state, + options: _options, + name, + instance: instance16 + }) || state; + } + } + }, + update: debounce(function() { + return new Promise(function(resolve) { + instance16.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + if (!areValidElements(reference2, popper2)) { + if (true) { + console.error(INVALID_ELEMENT_ERROR); + } + return instance16; + } + instance16.setOptions(options).then(function(state2) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state2); + } + }); + function runModifierEffects() { + state.orderedModifiers.forEach(function(_ref3) { + var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect4 = _ref3.effect; + if (typeof effect4 === "function") { + var cleanupFn = effect4({ + state, + name, + instance: instance16, + options: options2 + }); + var noopFn = function noopFn2() { + }; + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + function cleanupModifierEffects() { + effectCleanupFns.forEach(function(fn2) { + return fn2(); + }); + effectCleanupFns = []; + } + return instance16; + }; +} + +// node_modules/@popperjs/core/lib/popper.js +var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default]; +var createPopper = /* @__PURE__ */ popperGenerator({ + defaultModifiers +}); + +// node_modules/svelte-popperjs/dist/index.es.js +function createPopperActions(initOptions) { + let popperInstance = null; + let referenceNode; + let contentNode; + let options = initOptions; + const initPopper = () => { + if (referenceNode !== void 0 && contentNode !== void 0) { + popperInstance = createPopper(referenceNode, contentNode, options); + } + }; + const deinitPopper = () => { + if (popperInstance !== null) { + popperInstance.destroy(); + popperInstance = null; + } + }; + const referenceAction = (node) => { + if ("subscribe" in node) { + setupVirtualElementObserver(node); + return {}; + } else { + referenceNode = node; + initPopper(); + return { + destroy() { + deinitPopper(); + } + }; + } + }; + const setupVirtualElementObserver = (node) => { + const unsubscribe = node.subscribe(($node) => { + if (referenceNode === void 0) { + referenceNode = $node; + initPopper(); + } else { + Object.assign(referenceNode, $node); + popperInstance == null ? void 0 : popperInstance.update(); + } + }); + onDestroy(unsubscribe); + }; + const contentAction = (node, contentOptions) => { + contentNode = node; + options = { ...initOptions, ...contentOptions }; + initPopper(); + return { + update(newContentOptions) { + options = { ...initOptions, ...newContentOptions }; + popperInstance == null ? void 0 : popperInstance.setOptions(options); + }, + destroy() { + deinitPopper(); + } + }; + }; + return [referenceAction, contentAction, () => popperInstance]; +} + +// src/settings/components/TemplateSuggest.svelte +function add_css(target) { + append_styles(target, "svelte-153zjst", ".search_input.svelte-153zjst{width:calc(100% - 20px)}.suggestion-container.svelte-153zjst{text-align:left}"); +} +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[22] = list[i]; + return child_ctx; +} +function create_if_block(ctx) { + let div2; + let div1; + let div0; + let t1; + let popperContent_action; + let mounted; + let dispose; + let each_value = ctx[3]; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + return { + c() { + div2 = element("div"); + div1 = element("div"); + div0 = element("div"); + div0.textContent = "None"; + t1 = space(); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(div0, "class", "suggestion-item"); + attr(div1, "class", "suggestion"); + attr(div2, "class", "suggestion-container svelte-153zjst"); + }, + m(target, anchor) { + insert(target, div2, anchor); + append(div2, div1); + append(div1, div0); + append(div1, t1); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div1, null); + } + if (!mounted) { + dispose = [ + listen(div0, "keydown", ctx[16]), + listen(div0, "focus", ctx[17]), + listen(div0, "blur", ctx[18]), + listen(div0, "click", ctx[20]), + listen(div0, "mouseover", ctx[8]), + listen(div0, "mouseout", ctx[9]), + action_destroyer(popperContent_action = ctx[5].call(null, div2, ctx[6])) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty & 904) { + each_value = ctx2[3]; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div1, null); + } + } + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + each_blocks.length = each_value.length; + } + }, + d(detaching) { + if (detaching) + detach(div2); + destroy_each(each_blocks, detaching); + mounted = false; + run_all(dispose); + } + }; +} +function create_each_block(ctx) { + let div; + let t0_value = ctx[22] + ""; + let t0; + let t1; + let mounted; + let dispose; + function click_handler_1() { + return ctx[21](ctx[22]); + } + return { + c() { + div = element("div"); + t0 = text(t0_value); + t1 = space(); + attr(div, "class", "suggestion-item"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t0); + append(div, t1); + if (!mounted) { + dispose = [ + listen(div, "keydown", ctx[13]), + listen(div, "focus", ctx[14]), + listen(div, "blur", ctx[15]), + listen(div, "click", click_handler_1), + listen(div, "mouseover", ctx[8]), + listen(div, "mouseout", ctx[9]) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & 8 && t0_value !== (t0_value = ctx[22] + "")) + set_data(t0, t0_value); + }, + d(detaching) { + if (detaching) + detach(div); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment(ctx) { + let div3; + let div2; + let div0; + let t0; + let t1; + let div1; + let t2; + let t3; + let a; + let t5; + let div6; + let div5; + let div4; + let input; + let popperRef_action; + let t6; + let mounted; + let dispose; + let if_block = ctx[3].length > 0 && create_if_block(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + t0 = text(ctx[1]); + t1 = space(); + div1 = element("div"); + t2 = text(ctx[2]); + t3 = space(); + a = element("a"); + a.textContent = "Template Example"; + t5 = space(); + div6 = element("div"); + div5 = element("div"); + div4 = element("div"); + input = element("input"); + t6 = space(); + if (if_block) + if_block.c(); + attr(div0, "class", "setting-item-name"); + attr(div1, "class", "setting-item-description"); + attr(a, "href", "https://raw.githubusercontent.com/jgchristopher/obsidian-clipper/main/docs/example-template.md"); + attr(div2, "class", "setting-item-info"); + attr(div3, "class", "setting-item align-start"); + attr(input, "type", "text"); + attr(input, "spellcheck", "false"); + attr(input, "class", "search_input svelte-153zjst"); + attr(div4, "class", "search_input svelte-153zjst"); + attr(div5, "class", "setting-item-control"); + attr(div6, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div0); + append(div0, t0); + append(div2, t1); + append(div2, div1); + append(div1, t2); + append(div2, t3); + append(div2, a); + insert(target, t5, anchor); + insert(target, div6, anchor); + append(div6, div5); + append(div5, div4); + append(div4, input); + set_input_value(input, ctx[0]); + append(div5, t6); + if (if_block) + if_block.m(div5, null); + if (!mounted) { + dispose = [ + action_destroyer(popperRef_action = ctx[4].call(null, input)), + listen(input, "input", ctx[19]), + listen(input, "input", ctx[10]), + listen(input, "focusin", ctx[10]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 2) + set_data(t0, ctx2[1]); + if (dirty & 4) + set_data(t2, ctx2[2]); + if (dirty & 1 && input.value !== ctx2[0]) { + set_input_value(input, ctx2[0]); + } + if (ctx2[3].length > 0) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block(ctx2); + if_block.c(); + if_block.m(div5, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(div3); + if (detaching) + detach(t5); + if (detaching) + detach(div6); + if (if_block) + if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function instance($$self, $$props, $$invalidate) { + let { name } = $$props; + let { description } = $$props; + let { initialValue } = $$props; + let { onChange } = $$props; + let { dataProvider } = $$props; + const [popperRef, popperContent] = createPopperActions({ + placement: "bottom-start", + strategy: "fixed" + }); + const extraOpts = { + modifiers: [ + { + name: "offset", + options: { offset: [0, 5] } + }, + { + name: "sameWidth", + enabled: true, + fn: ({ state, instance: instance16 }) => { + const targetWidth = `${state.rects.reference.width}px`; + if (state.styles.popper.width === targetWidth) { + return; + } + state.styles.popper.width = targetWidth; + instance16.update(); + }, + phase: "beforeWrite", + requires: ["computeStyles"] + } + ] + }; + let templateOptions = []; + const setInputVal = (templateOption) => { + $$invalidate(3, templateOptions = []); + $$invalidate(0, initialValue = templateOption); + onChange(templateOption); + }; + const handleMouseOver = (e) => { + if (e && e.target) { + const target = e.target; + target.addClass("is-selected"); + } + }; + const handleMouseOut = (e) => { + if (e && e.target) { + const target = e.target; + target.removeClass("is-selected"); + } + }; + const filterFiles = () => { + let storageArr = []; + dataProvider().forEach((file) => { + if (initialValue) { + if (file.path.toLowerCase().startsWith(initialValue.toLowerCase())) { + storageArr = [...storageArr, file.path]; + } + } else { + storageArr = [...storageArr, file.path]; + } + }); + $$invalidate(3, templateOptions = storageArr); + }; + function keydown_handler_1(event) { + bubble.call(this, $$self, event); + } + function focus_handler_1(event) { + bubble.call(this, $$self, event); + } + function blur_handler_1(event) { + bubble.call(this, $$self, event); + } + function keydown_handler(event) { + bubble.call(this, $$self, event); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function blur_handler(event) { + bubble.call(this, $$self, event); + } + function input_input_handler() { + initialValue = this.value; + $$invalidate(0, initialValue); + } + const click_handler = () => setInputVal(""); + const click_handler_1 = (templateOption) => setInputVal(templateOption); + $$self.$$set = ($$props2) => { + if ("name" in $$props2) + $$invalidate(1, name = $$props2.name); + if ("description" in $$props2) + $$invalidate(2, description = $$props2.description); + if ("initialValue" in $$props2) + $$invalidate(0, initialValue = $$props2.initialValue); + if ("onChange" in $$props2) + $$invalidate(11, onChange = $$props2.onChange); + if ("dataProvider" in $$props2) + $$invalidate(12, dataProvider = $$props2.dataProvider); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 1) { + $: + if (!initialValue) { + $$invalidate(3, templateOptions = []); + } + } + }; + return [ + initialValue, + name, + description, + templateOptions, + popperRef, + popperContent, + extraOpts, + setInputVal, + handleMouseOver, + handleMouseOut, + filterFiles, + onChange, + dataProvider, + keydown_handler_1, + focus_handler_1, + blur_handler_1, + keydown_handler, + focus_handler, + blur_handler, + input_input_handler, + click_handler, + click_handler_1 + ]; +} +var TemplateSuggest = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, create_fragment, safe_not_equal, { + name: 1, + description: 2, + initialValue: 0, + onChange: 11, + dataProvider: 12 + }, add_css); + } +}; +var TemplateSuggest_default = TemplateSuggest; + +// node_modules/svelte/store/index.mjs +var subscriber_queue = []; +function writable(value, start2 = noop) { + let stop; + const subscribers = /* @__PURE__ */ new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, 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 update2(fn2) { + set(fn2(value)); + } + function subscribe2(run2, invalidate = noop) { + const subscriber = [run2, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start2(set) || noop; + } + run2(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update: update2, subscribe: subscribe2 }; +} + +// src/settings/settingsstore.ts +var settings; +function init2(plugin) { + if (settings) { + return; + } + const { subscribe: subscribe2, set, update: update2 } = writable(plugin.settings); + settings = { + subscribe: subscribe2, + update: update2, + set: (value) => { + set(value); + plugin.saveSettings(); + } + }; +} + +// src/settings/DailySettingsGroup.svelte +function create_if_block2(ctx) { + let div15; + let div4; + let div2; + let t3; + let div3; + let input; + let t4; + let div9; + let div7; + let t8; + let div8; + let select0; + let option0; + let option1; + let t11; + let div14; + let div12; + let t15; + let div13; + let select1; + let option2; + let option2_value_value; + let option3; + let option3_value_value; + let t18; + let suggest; + let div15_intro; + let div15_outro; + let current; + let mounted; + let dispose; + suggest = new TemplateSuggest_default({ + props: { + name: "Clipped Entry Template - Daily", + description: "Choose the template to use as for the clipped entry in the daily \n periodic note", + initialValue: ctx[1].dailyEntryTemplateLocation, + dataProvider: ctx[7], + onChange: ctx[2] + } + }); + return { + c() { + div15 = element("div"); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Daily Note Header
    +
    What header should highlight data be prepended/appended under in the + daily note?
    `; + t3 = space(); + div3 = element("div"); + input = element("input"); + t4 = space(); + div9 = element("div"); + div7 = element("div"); + div7.innerHTML = `
    Daily Note Position
    +
    Prepend clippings to the top of the section or append them to the + bottom of the section?
    `; + t8 = space(); + div8 = element("div"); + select0 = element("select"); + option0 = element("option"); + option0.textContent = "prepend"; + option1 = element("option"); + option1.textContent = "append"; + t11 = space(); + div14 = element("div"); + div12 = element("div"); + div12.innerHTML = `
    Open Note After Adding Clipping?
    +
    Open the daily note after adding the clipping?
    `; + t15 = space(); + div13 = element("div"); + select1 = element("select"); + option2 = element("option"); + option2.textContent = "Yes"; + option3 = element("option"); + option3.textContent = "No"; + t18 = space(); + create_component(suggest.$$.fragment); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", "false"); + attr(input, "placeholder", ""); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + attr(div7, "class", "setting-item-info"); + option0.__value = "prepend"; + option0.value = option0.__value; + option1.__value = "append"; + option1.value = option1.__value; + attr(select0, "class", "dropdown"); + if (ctx[1].dailyPosition === void 0) + add_render_callback(() => ctx[5].call(select0)); + attr(div8, "class", "setting-item-control"); + attr(div9, "class", "setting-item"); + attr(div12, "class", "setting-item-info"); + option2.__value = option2_value_value = true; + option2.value = option2.__value; + option3.__value = option3_value_value = false; + option3.value = option3.__value; + attr(select1, "class", "dropdown"); + if (ctx[1].dailyOpenOnWrite === void 0) + add_render_callback(() => ctx[6].call(select1)); + attr(div13, "class", "setting-item-control"); + attr(div14, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div15, anchor); + append(div15, div4); + append(div4, div2); + append(div4, t3); + append(div4, div3); + append(div3, input); + set_input_value(input, ctx[1].dailyNoteHeading); + append(div15, t4); + append(div15, div9); + append(div9, div7); + append(div9, t8); + append(div9, div8); + append(div8, select0); + append(select0, option0); + append(select0, option1); + select_option(select0, ctx[1].dailyPosition); + append(div15, t11); + append(div15, div14); + append(div14, div12); + append(div14, t15); + append(div14, div13); + append(div13, select1); + append(select1, option2); + append(select1, option3); + select_option(select1, ctx[1].dailyOpenOnWrite); + append(div15, t18); + mount_component(suggest, div15, null); + current = true; + if (!mounted) { + dispose = [ + listen(input, "input", ctx[4]), + listen(select0, "change", ctx[5]), + listen(select1, "change", ctx[6]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty & 2 && input.value !== ctx2[1].dailyNoteHeading) { + set_input_value(input, ctx2[1].dailyNoteHeading); + } + if (dirty & 2) { + select_option(select0, ctx2[1].dailyPosition); + } + if (dirty & 2) { + select_option(select1, ctx2[1].dailyOpenOnWrite); + } + const suggest_changes = {}; + if (dirty & 2) + suggest_changes.initialValue = ctx2[1].dailyEntryTemplateLocation; + if (dirty & 1) + suggest_changes.dataProvider = ctx2[7]; + suggest.$set(suggest_changes); + }, + i(local) { + if (current) + return; + transition_in(suggest.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (div15_outro) + div15_outro.end(1); + div15_intro = create_in_transition(div15, slide, { duration: 300 }); + div15_intro.start(); + }); + } + current = true; + }, + o(local) { + transition_out(suggest.$$.fragment, local); + if (div15_intro) + div15_intro.invalidate(); + if (local) { + div15_outro = create_out_transition(div15, slide, { duration: 300 }); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div15); + destroy_component(suggest); + if (detaching && div15_outro) + div15_outro.end(); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment2(ctx) { + let div3; + let div2; + let div0; + let t1; + let div1; + let label; + let input; + let t2; + let current; + let mounted; + let dispose; + let if_block = ctx[1].useDailyNote && create_if_block2(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = `

    Daily Note Entry

    `; + t1 = space(); + div1 = element("div"); + label = element("label"); + input = element("input"); + t2 = space(); + if (if_block) + if_block.c(); + attr(div0, "class", "setting-item-info"); + attr(input, "type", "checkbox"); + attr(label, "class", "checkbox-container"); + toggle_class(label, "is-enabled", ctx[1].useDailyNote); + attr(div1, "class", "setting-item-control"); + attr(div2, "class", "setting-item mod-toggle"); + attr(div3, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div0); + append(div2, t1); + append(div2, div1); + append(div1, label); + append(label, input); + input.checked = ctx[1].useDailyNote; + append(div3, t2); + if (if_block) + if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen(input, "change", ctx[3]); + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 2) { + input.checked = ctx2[1].useDailyNote; + } + if (!current || dirty & 2) { + toggle_class(label, "is-enabled", ctx2[1].useDailyNote); + } + if (ctx2[1].useDailyNote) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & 2) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block2(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(1, $settings = $$value)); + let { app } = $$props; + const onChange = (entry) => { + set_store_value(settings, $settings.dailyEntryTemplateLocation = entry, $settings); + }; + function input_change_handler() { + $settings.useDailyNote = this.checked; + settings.set($settings); + } + function input_input_handler() { + $settings.dailyNoteHeading = this.value; + settings.set($settings); + } + function select0_change_handler() { + $settings.dailyPosition = select_value(this); + settings.set($settings); + } + function select1_change_handler() { + $settings.dailyOpenOnWrite = select_value(this); + settings.set($settings); + } + const func = () => app.vault.getMarkdownFiles(); + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(0, app = $$props2.app); + }; + return [ + app, + $settings, + onChange, + input_change_handler, + input_input_handler, + select0_change_handler, + select1_change_handler, + func + ]; +} +var DailySettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance2, create_fragment2, safe_not_equal, { app: 0 }); + } +}; +var DailySettingsGroup_default = DailySettingsGroup; + +// src/settings/WeeklySettingsGroup.svelte +function create_if_block3(ctx) { + let div15; + let div4; + let div2; + let t3; + let div3; + let input; + let t4; + let div9; + let div7; + let t8; + let div8; + let select0; + let option0; + let option1; + let t11; + let div14; + let div12; + let t15; + let div13; + let select1; + let option2; + let option2_value_value; + let option3; + let option3_value_value; + let t18; + let suggest; + let div15_intro; + let div15_outro; + let current; + let mounted; + let dispose; + suggest = new TemplateSuggest_default({ + props: { + name: "Clipped Entry Template - Weekly", + description: "Choose the template to use as for the clipped entry in the weekly\n periodic note", + initialValue: ctx[1].weeklyEntryTemplateLocation, + dataProvider: ctx[7], + onChange: ctx[2] + } + }); + return { + c() { + div15 = element("div"); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Weekly Note Header
    +
    What header should highlight data be prepended/appended under in the + weekly note?
    `; + t3 = space(); + div3 = element("div"); + input = element("input"); + t4 = space(); + div9 = element("div"); + div7 = element("div"); + div7.innerHTML = `
    Weekly Note Position
    +
    Prepend clippings to the top of the section or append them to the + bottom of the section?
    `; + t8 = space(); + div8 = element("div"); + select0 = element("select"); + option0 = element("option"); + option0.textContent = "prepend"; + option1 = element("option"); + option1.textContent = "append"; + t11 = space(); + div14 = element("div"); + div12 = element("div"); + div12.innerHTML = `
    Open Note After Adding Clipping?
    +
    Open the weekly note after adding the clipping?
    `; + t15 = space(); + div13 = element("div"); + select1 = element("select"); + option2 = element("option"); + option2.textContent = "Yes"; + option3 = element("option"); + option3.textContent = "No"; + t18 = space(); + create_component(suggest.$$.fragment); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", "false"); + attr(input, "placeholder", ""); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + attr(div7, "class", "setting-item-info"); + option0.__value = "prepend"; + option0.value = option0.__value; + option1.__value = "append"; + option1.value = option1.__value; + attr(select0, "class", "dropdown"); + if (ctx[1].weeklyPosition === void 0) + add_render_callback(() => ctx[5].call(select0)); + attr(div8, "class", "setting-item-control"); + attr(div9, "class", "setting-item"); + attr(div12, "class", "setting-item-info"); + option2.__value = option2_value_value = true; + option2.value = option2.__value; + option3.__value = option3_value_value = false; + option3.value = option3.__value; + attr(select1, "class", "dropdown"); + if (ctx[1].weeklyOpenOnWrite === void 0) + add_render_callback(() => ctx[6].call(select1)); + attr(div13, "class", "setting-item-control"); + attr(div14, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div15, anchor); + append(div15, div4); + append(div4, div2); + append(div4, t3); + append(div4, div3); + append(div3, input); + set_input_value(input, ctx[1].weeklyNoteHeading); + append(div15, t4); + append(div15, div9); + append(div9, div7); + append(div9, t8); + append(div9, div8); + append(div8, select0); + append(select0, option0); + append(select0, option1); + select_option(select0, ctx[1].weeklyPosition); + append(div15, t11); + append(div15, div14); + append(div14, div12); + append(div14, t15); + append(div14, div13); + append(div13, select1); + append(select1, option2); + append(select1, option3); + select_option(select1, ctx[1].weeklyOpenOnWrite); + append(div15, t18); + mount_component(suggest, div15, null); + current = true; + if (!mounted) { + dispose = [ + listen(input, "input", ctx[4]), + listen(select0, "change", ctx[5]), + listen(select1, "change", ctx[6]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty & 2 && input.value !== ctx2[1].weeklyNoteHeading) { + set_input_value(input, ctx2[1].weeklyNoteHeading); + } + if (dirty & 2) { + select_option(select0, ctx2[1].weeklyPosition); + } + if (dirty & 2) { + select_option(select1, ctx2[1].weeklyOpenOnWrite); + } + const suggest_changes = {}; + if (dirty & 2) + suggest_changes.initialValue = ctx2[1].weeklyEntryTemplateLocation; + if (dirty & 1) + suggest_changes.dataProvider = ctx2[7]; + suggest.$set(suggest_changes); + }, + i(local) { + if (current) + return; + transition_in(suggest.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (div15_outro) + div15_outro.end(1); + div15_intro = create_in_transition(div15, slide, { duration: 300 }); + div15_intro.start(); + }); + } + current = true; + }, + o(local) { + transition_out(suggest.$$.fragment, local); + if (div15_intro) + div15_intro.invalidate(); + if (local) { + div15_outro = create_out_transition(div15, slide, { duration: 300 }); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div15); + destroy_component(suggest); + if (detaching && div15_outro) + div15_outro.end(); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment3(ctx) { + let div3; + let div2; + let div0; + let t1; + let div1; + let label; + let input; + let t2; + let current; + let mounted; + let dispose; + let if_block = ctx[1].useWeeklyNote && create_if_block3(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = `

    Weekly Note Entry

    `; + t1 = space(); + div1 = element("div"); + label = element("label"); + input = element("input"); + t2 = space(); + if (if_block) + if_block.c(); + attr(div0, "class", "setting-item-info"); + attr(input, "type", "checkbox"); + attr(label, "class", "checkbox-container"); + toggle_class(label, "is-enabled", ctx[1].useWeeklyNote); + attr(div1, "class", "setting-item-control"); + attr(div2, "class", "setting-item mod-toggle"); + attr(div3, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div0); + append(div2, t1); + append(div2, div1); + append(div1, label); + append(label, input); + input.checked = ctx[1].useWeeklyNote; + append(div3, t2); + if (if_block) + if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen(input, "change", ctx[3]); + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 2) { + input.checked = ctx2[1].useWeeklyNote; + } + if (!current || dirty & 2) { + toggle_class(label, "is-enabled", ctx2[1].useWeeklyNote); + } + if (ctx2[1].useWeeklyNote) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & 2) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block3(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function instance3($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(1, $settings = $$value)); + let { app } = $$props; + const onChange = (entry) => set_store_value(settings, $settings.weeklyEntryTemplateLocation = entry, $settings); + function input_change_handler() { + $settings.useWeeklyNote = this.checked; + settings.set($settings); + } + function input_input_handler() { + $settings.weeklyNoteHeading = this.value; + settings.set($settings); + } + function select0_change_handler() { + $settings.weeklyPosition = select_value(this); + settings.set($settings); + } + function select1_change_handler() { + $settings.weeklyOpenOnWrite = select_value(this); + settings.set($settings); + } + const func = () => app.vault.getMarkdownFiles(); + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(0, app = $$props2.app); + }; + return [ + app, + $settings, + onChange, + input_change_handler, + input_input_handler, + select0_change_handler, + select1_change_handler, + func + ]; +} +var WeeklySettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance3, create_fragment3, safe_not_equal, { app: 0 }); + } +}; +var WeeklySettingsGroup_default = WeeklySettingsGroup; + +// src/settings/CommonSettingsGroup.svelte +function create_fragment4(ctx) { + let div17; + let h1; + let t1; + let div4; + let div2; + let t5; + let div3; + let input0; + let t6; + let div10; + let div8; + let t12; + let div9; + let input1; + let t13; + let div16; + let div14; + let t19; + let div15; + let input2; + let mounted; + let dispose; + return { + c() { + div17 = element("div"); + h1 = element("h1"); + h1.textContent = "Common Settings"; + t1 = space(); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Tags
    +
    Tags to add to captured highlights?
    `; + t5 = space(); + div3 = element("div"); + input0 = element("input"); + t6 = space(); + div10 = element("div"); + div8 = element("div"); + div8.innerHTML = `
    Time Format
    +
    Format to use for the {{ time }} template in + clippings. See
    + format reference
    `; + t12 = space(); + div9 = element("div"); + input1 = element("input"); + t13 = space(); + div16 = element("div"); + div14 = element("div"); + div14.innerHTML = `
    Date Format
    +
    Format to use for the {{ date }} template in + clippings. See
    + format reference
    `; + t19 = space(); + div15 = element("div"); + input2 = element("input"); + attr(div2, "class", "setting-item-info"); + attr(input0, "type", "text"); + attr(input0, "spellcheck", "false"); + attr(input0, "placeholder", "tags,seperated,by,commas"); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + attr(div8, "class", "setting-item-info"); + attr(input1, "type", "text"); + attr(input1, "spellcheck", "false"); + attr(input1, "placeholder", "HH:mm"); + attr(div9, "class", "setting-item-control"); + attr(div10, "class", "setting-item"); + attr(div14, "class", "setting-item-info"); + attr(input2, "type", "text"); + attr(input2, "spellcheck", "false"); + attr(input2, "placeholder", "MM/DD/YY"); + attr(div15, "class", "setting-item-control"); + attr(div16, "class", "setting-item"); + attr(div17, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div17, anchor); + append(div17, h1); + append(div17, t1); + append(div17, div4); + append(div4, div2); + append(div4, t5); + append(div4, div3); + append(div3, input0); + set_input_value(input0, ctx[0].tags); + append(div17, t6); + append(div17, div10); + append(div10, div8); + append(div10, t12); + append(div10, div9); + append(div9, input1); + set_input_value(input1, ctx[0].timestampFormat); + append(div17, t13); + append(div17, div16); + append(div16, div14); + append(div16, t19); + append(div16, div15); + append(div15, input2); + set_input_value(input2, ctx[0].dateFormat); + if (!mounted) { + dispose = [ + listen(input0, "input", ctx[1]), + listen(input1, "input", ctx[2]), + listen(input2, "input", ctx[3]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 1 && input0.value !== ctx2[0].tags) { + set_input_value(input0, ctx2[0].tags); + } + if (dirty & 1 && input1.value !== ctx2[0].timestampFormat) { + set_input_value(input1, ctx2[0].timestampFormat); + } + if (dirty & 1 && input2.value !== ctx2[0].dateFormat) { + set_input_value(input2, ctx2[0].dateFormat); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(div17); + mounted = false; + run_all(dispose); + } + }; +} +function instance4($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(0, $settings = $$value)); + function input0_input_handler() { + $settings.tags = this.value; + settings.set($settings); + } + function input1_input_handler() { + $settings.timestampFormat = this.value; + settings.set($settings); + } + function input2_input_handler() { + $settings.dateFormat = this.value; + settings.set($settings); + } + return [$settings, input0_input_handler, input1_input_handler, input2_input_handler]; +} +var CommonSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance4, create_fragment4, safe_not_equal, {}); + } +}; +var CommonSettingsGroup_default = CommonSettingsGroup; + +// src/settings/BaseSettingsTab.svelte +function create_fragment5(ctx) { + let dailysettingsgroup; + let t0; + let weeklysettingsgroup; + let t1; + let commonsettingsgroup; + let current; + dailysettingsgroup = new DailySettingsGroup_default({ props: { app: ctx[0] } }); + weeklysettingsgroup = new WeeklySettingsGroup_default({ props: { app: ctx[0] } }); + commonsettingsgroup = new CommonSettingsGroup_default({}); + return { + c() { + create_component(dailysettingsgroup.$$.fragment); + t0 = space(); + create_component(weeklysettingsgroup.$$.fragment); + t1 = space(); + create_component(commonsettingsgroup.$$.fragment); + }, + m(target, anchor) { + mount_component(dailysettingsgroup, target, anchor); + insert(target, t0, anchor); + mount_component(weeklysettingsgroup, target, anchor); + insert(target, t1, anchor); + mount_component(commonsettingsgroup, target, anchor); + current = true; + }, + p(ctx2, [dirty]) { + const dailysettingsgroup_changes = {}; + if (dirty & 1) + dailysettingsgroup_changes.app = ctx2[0]; + dailysettingsgroup.$set(dailysettingsgroup_changes); + const weeklysettingsgroup_changes = {}; + if (dirty & 1) + weeklysettingsgroup_changes.app = ctx2[0]; + weeklysettingsgroup.$set(weeklysettingsgroup_changes); + }, + i(local) { + if (current) + return; + transition_in(dailysettingsgroup.$$.fragment, local); + transition_in(weeklysettingsgroup.$$.fragment, local); + transition_in(commonsettingsgroup.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(dailysettingsgroup.$$.fragment, local); + transition_out(weeklysettingsgroup.$$.fragment, local); + transition_out(commonsettingsgroup.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(dailysettingsgroup, detaching); + if (detaching) + detach(t0); + destroy_component(weeklysettingsgroup, detaching); + if (detaching) + detach(t1); + destroy_component(commonsettingsgroup, detaching); + } + }; +} +function instance5($$self, $$props, $$invalidate) { + let { app } = $$props; + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(0, app = $$props2.app); + }; + return [app]; +} +var BaseSettingsTab = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance5, create_fragment5, safe_not_equal, { app: 0 }); + } +}; +var BaseSettingsTab_default = BaseSettingsTab; + +// src/settings/Tabs.svelte +function add_css2(target) { + append_styles(target, "svelte-126qfyk", ".obs_clp_box.svelte-126qfyk.svelte-126qfyk{margin-bottom:10px;padding:40px;border:1px solid var(--tab-divider-color);border-radius:0 0 0.5rem 0.5rem;border-top:0}ul.svelte-126qfyk.svelte-126qfyk{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none;border-bottom:1px solid var(--tab-divider-color)}span.svelte-126qfyk.svelte-126qfyk{border:1px solid var(--tab-divider-color);border-top-left-radius:0.25rem;border-top-right-radius:0.25rem;display:block;padding:0.5rem 1rem;cursor:pointer;color:var(--tab-text-color)}span.svelte-126qfyk.svelte-126qfyk:hover{border-color:#e9ecef #e9ecef #dee2e6;background-color:var(--background-modifier-hover);color:var(--tab-text-color-active)}li.svelte-126qfyk.svelte-126qfyk:hover{background-color:var(--background-modifier-hover)}li.active.svelte-126qfyk>span.svelte-126qfyk{background-color:var(--tab-background-active);border-color:#e9ecef #e9ecef #dee2e6;color:var(--tab-text-color-active)}"); +} +function get_each_context2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[5] = list[i]; + return child_ctx; +} +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[5] = list[i]; + return child_ctx; +} +function create_each_block_1(ctx) { + let li; + let span; + let t0_value = ctx[5].label + ""; + let t0; + let t1; + let li_class_value; + let mounted; + let dispose; + function keypress_handler() { + return ctx[3](ctx[5]); + } + function click_handler() { + return ctx[4](ctx[5]); + } + return { + c() { + li = element("li"); + span = element("span"); + t0 = text(t0_value); + t1 = space(); + attr(span, "class", "svelte-126qfyk"); + attr(li, "class", li_class_value = null_to_empty(ctx[0] === ctx[5].value ? "active" : "") + " svelte-126qfyk"); + }, + m(target, anchor) { + insert(target, li, anchor); + append(li, span); + append(span, t0); + append(li, t1); + if (!mounted) { + dispose = [ + listen(span, "keypress", keypress_handler), + listen(span, "click", click_handler) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & 2 && t0_value !== (t0_value = ctx[5].label + "")) + set_data(t0, t0_value); + if (dirty & 3 && li_class_value !== (li_class_value = null_to_empty(ctx[0] === ctx[5].value ? "active" : "") + " svelte-126qfyk")) { + attr(li, "class", li_class_value); + } + }, + d(detaching) { + if (detaching) + detach(li); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block4(ctx) { + let div; + let switch_instance; + let t; + let current; + const switch_instance_spread_levels = [ctx[5].props]; + var switch_value = ctx[5].component; + function switch_props(ctx2) { + let switch_instance_props = {}; + for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { + switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); + } + return { props: switch_instance_props }; + } + if (switch_value) { + switch_instance = construct_svelte_component(switch_value, switch_props(ctx)); + } + return { + c() { + div = element("div"); + if (switch_instance) + create_component(switch_instance.$$.fragment); + t = space(); + attr(div, "class", "obs_clp_box svelte-126qfyk"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (switch_instance) + mount_component(switch_instance, div, null); + append(div, t); + current = true; + }, + p(ctx2, dirty) { + const switch_instance_changes = dirty & 2 ? get_spread_update(switch_instance_spread_levels, [get_spread_object(ctx2[5].props)]) : {}; + if (switch_value !== (switch_value = ctx2[5].component)) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + check_outros(); + } + if (switch_value) { + switch_instance = construct_svelte_component(switch_value, switch_props(ctx2)); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, div, t); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i(local) { + if (current) + return; + if (switch_instance) + transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o(local) { + if (switch_instance) + transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if (switch_instance) + destroy_component(switch_instance); + } + }; +} +function create_each_block2(ctx) { + let if_block_anchor; + let current; + let if_block = ctx[0] == ctx[5].value && create_if_block4(ctx); + return { + c() { + if (if_block) + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if (if_block) + if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (ctx2[0] == ctx2[5].value) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & 3) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block4(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (if_block) + if_block.d(detaching); + if (detaching) + detach(if_block_anchor); + } + }; +} +function create_fragment6(ctx) { + let div1; + let div0; + let ul; + let t; + let current; + let each_value_1 = ctx[1]; + let each_blocks_1 = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks_1[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + let each_value = ctx[1]; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + div1 = element("div"); + div0 = element("div"); + ul = element("ul"); + for (let i = 0; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].c(); + } + t = space(); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(ul, "class", "svelte-126qfyk"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, div0); + append(div0, ul); + for (let i = 0; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].m(ul, null); + } + append(div1, t); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div1, null); + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & 7) { + each_value_1 = ctx2[1]; + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks_1[i]) { + each_blocks_1[i].p(child_ctx, dirty); + } else { + each_blocks_1[i] = create_each_block_1(child_ctx); + each_blocks_1[i].c(); + each_blocks_1[i].m(ul, null); + } + } + for (; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].d(1); + } + each_blocks_1.length = each_value_1.length; + } + if (dirty & 3) { + each_value = ctx2[1]; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context2(ctx2, 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_block2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(div1, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + 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_1, detaching); + destroy_each(each_blocks, detaching); + } + }; +} +function instance6($$self, $$props, $$invalidate) { + let { tabs } = $$props; + let { activeTabValue = 1 } = $$props; + const handleClick = (tabValue) => $$invalidate(0, activeTabValue = tabValue); + const keypress_handler = (tab) => handleClick(tab.value); + const click_handler = (tab) => handleClick(tab.value); + $$self.$$set = ($$props2) => { + if ("tabs" in $$props2) + $$invalidate(1, tabs = $$props2.tabs); + if ("activeTabValue" in $$props2) + $$invalidate(0, activeTabValue = $$props2.activeTabValue); + }; + return [activeTabValue, tabs, handleClick, keypress_handler, click_handler]; +} +var Tabs = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance6, create_fragment6, safe_not_equal, { tabs: 1, activeTabValue: 0 }, add_css2); + } +}; +var Tabs_default = Tabs; + +// src/settings/Notice.svelte +var get_calloutLink_slot_changes = (dirty) => ({}); +var get_calloutLink_slot_context = (ctx) => ({}); +var get_noticeText_slot_changes = (dirty) => ({}); +var get_noticeText_slot_context = (ctx) => ({}); +function fallback_block(ctx) { + let span; + return { + c() { + span = element("span"); + }, + m(target, anchor) { + insert(target, span, anchor); + }, + p: noop, + d(detaching) { + if (detaching) + detach(span); + } + }; +} +function create_fragment7(ctx) { + let div3; + let div2; + let div0; + let t0; + let div1; + let p0; + let t1; + let p1; + let current; + const noticeText_slot_template = ctx[1].noticeText; + const noticeText_slot = create_slot(noticeText_slot_template, ctx, ctx[0], get_noticeText_slot_context); + const noticeText_slot_or_fallback = noticeText_slot || fallback_block(ctx); + const calloutLink_slot_template = ctx[1].calloutLink; + const calloutLink_slot = create_slot(calloutLink_slot_template, ctx, ctx[0], get_calloutLink_slot_context); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + p0 = element("p"); + if (noticeText_slot_or_fallback) + noticeText_slot_or_fallback.c(); + t1 = space(); + p1 = element("p"); + if (calloutLink_slot) + calloutLink_slot.c(); + attr(div0, "class", "flex-shrink-0"); + attr(p0, "class", "text-sm text-blue-700"); + attr(p1, "class", "mt-3 text-sm md:mt-0 md:ml-6"); + attr(div1, "class", "ml-3 flex-1 md:flex md:justify-between"); + attr(div2, "class", "flex"); + attr(div3, "class", "rounded-md bg-blue-50 p-4"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div0); + append(div2, t0); + append(div2, div1); + append(div1, p0); + if (noticeText_slot_or_fallback) { + noticeText_slot_or_fallback.m(p0, null); + } + append(div1, t1); + append(div1, p1); + if (calloutLink_slot) { + calloutLink_slot.m(p1, null); + } + current = true; + }, + p(ctx2, [dirty]) { + if (noticeText_slot) { + if (noticeText_slot.p && (!current || dirty & 1)) { + update_slot_base(noticeText_slot, noticeText_slot_template, ctx2, ctx2[0], !current ? get_all_dirty_from_scope(ctx2[0]) : get_slot_changes(noticeText_slot_template, ctx2[0], dirty, get_noticeText_slot_changes), get_noticeText_slot_context); + } + } + if (calloutLink_slot) { + if (calloutLink_slot.p && (!current || dirty & 1)) { + update_slot_base(calloutLink_slot, calloutLink_slot_template, ctx2, ctx2[0], !current ? get_all_dirty_from_scope(ctx2[0]) : get_slot_changes(calloutLink_slot_template, ctx2[0], dirty, get_calloutLink_slot_changes), get_calloutLink_slot_context); + } + } + }, + i(local) { + if (current) + return; + transition_in(noticeText_slot_or_fallback, local); + transition_in(calloutLink_slot, local); + current = true; + }, + o(local) { + transition_out(noticeText_slot_or_fallback, local); + transition_out(calloutLink_slot, local); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (noticeText_slot_or_fallback) + noticeText_slot_or_fallback.d(detaching); + if (calloutLink_slot) + calloutLink_slot.d(detaching); + } + }; +} +function instance7($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + $$self.$$set = ($$props2) => { + if ("$$scope" in $$props2) + $$invalidate(0, $$scope = $$props2.$$scope); + }; + return [$$scope, slots]; +} +var Notice5 = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance7, create_fragment7, safe_not_equal, {}); + } +}; +var Notice_default = Notice5; + +// src/settings/TopicSettingsGroup.svelte +function create_fragment8(ctx) { + let div10; + let div4; + let div2; + let t3; + let div3; + let select0; + let option0; + let option1; + let t6; + let div9; + let div7; + let t10; + let div8; + let select1; + let option2; + let option2_value_value; + let option3; + let option3_value_value; + let t13; + let suggest; + let current; + let mounted; + let dispose; + suggest = new TemplateSuggest_default({ + props: { + name: "Clipped Entry Template", + description: "Choose the template to use for the clipped entry in a topic note", + initialValue: ctx[1].topicEntryTemplateLocation, + dataProvider: ctx[5], + onChange: ctx[2] + } + }); + return { + c() { + div10 = element("div"); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Topic Note Position
    +
    Prepend clippings or append them to the bottom?
    `; + t3 = space(); + div3 = element("div"); + select0 = element("select"); + option0 = element("option"); + option0.textContent = "prepend"; + option1 = element("option"); + option1.textContent = "append"; + t6 = space(); + div9 = element("div"); + div7 = element("div"); + div7.innerHTML = `
    Open Note After Adding Clipping?
    +
    Open the note after adding the clipping?
    `; + t10 = space(); + div8 = element("div"); + select1 = element("select"); + option2 = element("option"); + option2.textContent = "Yes"; + option3 = element("option"); + option3.textContent = "No"; + t13 = space(); + create_component(suggest.$$.fragment); + attr(div2, "class", "setting-item-info"); + option0.__value = "prepend"; + option0.value = option0.__value; + option1.__value = "append"; + option1.value = option1.__value; + attr(select0, "class", "dropdown"); + if (ctx[1].topicPosition === void 0) + add_render_callback(() => ctx[3].call(select0)); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + attr(div7, "class", "setting-item-info"); + option2.__value = option2_value_value = true; + option2.value = option2.__value; + option3.__value = option3_value_value = false; + option3.value = option3.__value; + attr(select1, "class", "dropdown"); + if (ctx[1].topicOpenOnWrite === void 0) + add_render_callback(() => ctx[4].call(select1)); + attr(div8, "class", "setting-item-control"); + attr(div9, "class", "setting-item"); + attr(div10, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div10, anchor); + append(div10, div4); + append(div4, div2); + append(div4, t3); + append(div4, div3); + append(div3, select0); + append(select0, option0); + append(select0, option1); + select_option(select0, ctx[1].topicPosition); + append(div10, t6); + append(div10, div9); + append(div9, div7); + append(div9, t10); + append(div9, div8); + append(div8, select1); + append(select1, option2); + append(select1, option3); + select_option(select1, ctx[1].topicOpenOnWrite); + append(div10, t13); + mount_component(suggest, div10, null); + current = true; + if (!mounted) { + dispose = [ + listen(select0, "change", ctx[3]), + listen(select1, "change", ctx[4]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 2) { + select_option(select0, ctx2[1].topicPosition); + } + if (dirty & 2) { + select_option(select1, ctx2[1].topicOpenOnWrite); + } + const suggest_changes = {}; + if (dirty & 2) + suggest_changes.initialValue = ctx2[1].topicEntryTemplateLocation; + if (dirty & 1) + suggest_changes.dataProvider = ctx2[5]; + suggest.$set(suggest_changes); + }, + i(local) { + if (current) + return; + transition_in(suggest.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(suggest.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) + detach(div10); + destroy_component(suggest); + mounted = false; + run_all(dispose); + } + }; +} +function instance8($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(1, $settings = $$value)); + let { app } = $$props; + const onChange = (entry) => { + set_store_value(settings, $settings.topicEntryTemplateLocation = entry, $settings); + }; + function select0_change_handler() { + $settings.topicPosition = select_value(this); + settings.set($settings); + } + function select1_change_handler() { + $settings.topicOpenOnWrite = select_value(this); + settings.set($settings); + } + const func = () => app.vault.getMarkdownFiles(); + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(0, app = $$props2.app); + }; + return [app, $settings, onChange, select0_change_handler, select1_change_handler, func]; +} +var TopicSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance8, create_fragment8, safe_not_equal, { app: 0 }); + } +}; +var TopicSettingsGroup_default = TopicSettingsGroup; + +// src/settings/TopicSettingsTab.svelte +function create_fragment9(ctx) { + let topicsettingsgroup; + let current; + topicsettingsgroup = new TopicSettingsGroup_default({ props: { app: ctx[0] } }); + return { + c() { + create_component(topicsettingsgroup.$$.fragment); + }, + m(target, anchor) { + mount_component(topicsettingsgroup, target, anchor); + current = true; + }, + p(ctx2, [dirty]) { + const topicsettingsgroup_changes = {}; + if (dirty & 1) + topicsettingsgroup_changes.app = ctx2[0]; + topicsettingsgroup.$set(topicsettingsgroup_changes); + }, + i(local) { + if (current) + return; + transition_in(topicsettingsgroup.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(topicsettingsgroup.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(topicsettingsgroup, detaching); + } + }; +} +function instance9($$self, $$props, $$invalidate) { + let { app } = $$props; + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(0, app = $$props2.app); + }; + return [app]; +} +var TopicSettingsTab = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance9, create_fragment9, safe_not_equal, { app: 0 }); + } +}; +var TopicSettingsTab_default = TopicSettingsTab; + +// src/utils/fileutils.ts +function getFileName(filePath) { + const lastSlashIndex = filePath.lastIndexOf("/"); + let fileName = filePath; + if (lastSlashIndex !== -1) { + fileName = filePath.substring(lastSlashIndex + 1); + } + return fileName; +} + +// src/bookmarkletlink/bookmarkletgenerator.ts +var BookmarketlGenerator = class { + constructor(vaultName, notePath = "", markdownSettings, captureComments) { + this.vaultName = vaultName; + this.notePath = notePath; + this.markdownSettings = markdownSettings; + this.captureComments = captureComments; + } + generateBookmarklet() { + return `javascript:(function()%7B(()%3D%3E%7B%22use%20strict%22%3Bvar%20e%2Cn%2Ct%3D%7B36%3A(e%2Cn%2Ct)%3D%3E%7Bfunction%20r(e%2Cn)%7Breturn%20Array(n%2B1).join(e)%7Dt.r(n)%2Ct.d(n%2C%7Bdefault%3A()%3D%3EL%7D)%3Bvar%20i%3D%5B%22ADDRESS%22%2C%22ARTICLE%22%2C%22ASIDE%22%2C%22AUDIO%22%2C%22BLOCKQUOTE%22%2C%22BODY%22%2C%22CANVAS%22%2C%22CENTER%22%2C%22DD%22%2C%22DIR%22%2C%22DIV%22%2C%22DL%22%2C%22DT%22%2C%22FIELDSET%22%2C%22FIGCAPTION%22%2C%22FIGURE%22%2C%22FOOTER%22%2C%22FORM%22%2C%22FRAMESET%22%2C%22H1%22%2C%22H2%22%2C%22H3%22%2C%22H4%22%2C%22H5%22%2C%22H6%22%2C%22HEADER%22%2C%22HGROUP%22%2C%22HR%22%2C%22HTML%22%2C%22ISINDEX%22%2C%22LI%22%2C%22MAIN%22%2C%22MENU%22%2C%22NAV%22%2C%22NOFRAMES%22%2C%22NOSCRIPT%22%2C%22OL%22%2C%22OUTPUT%22%2C%22P%22%2C%22PRE%22%2C%22SECTION%22%2C%22TABLE%22%2C%22TBODY%22%2C%22TD%22%2C%22TFOOT%22%2C%22TH%22%2C%22THEAD%22%2C%22TR%22%2C%22UL%22%5D%3Bfunction%20o(e)%7Breturn%20c(e%2Ci)%7Dvar%20a%3D%5B%22AREA%22%2C%22BASE%22%2C%22BR%22%2C%22COL%22%2C%22COMMAND%22%2C%22EMBED%22%2C%22HR%22%2C%22IMG%22%2C%22INPUT%22%2C%22KEYGEN%22%2C%22LINK%22%2C%22META%22%2C%22PARAM%22%2C%22SOURCE%22%2C%22TRACK%22%2C%22WBR%22%5D%3Bfunction%20l(e)%7Breturn%20c(e%2Ca)%7Dvar%20d%3D%5B%22A%22%2C%22TABLE%22%2C%22THEAD%22%2C%22TBODY%22%2C%22TFOOT%22%2C%22TH%22%2C%22TD%22%2C%22IFRAME%22%2C%22SCRIPT%22%2C%22AUDIO%22%2C%22VIDEO%22%5D%3Bfunction%20c(e%2Cn)%7Breturn%20n.indexOf(e.nodeName)%3E%3D0%7Dfunction%20u(e%2Cn)%7Breturn%20e.getElementsByTagName%26%26n.some((function(n)%7Breturn%20e.getElementsByTagName(n).length%7D))%7Dvar%20s%3D%7B%7D%3Bfunction%20p(e)%7Breturn%20e%3Fe.replace(%2F(%5Cn%2B%5Cs*)%2B%2Fg%2C%22%5Cn%22)%3A%22%22%7Dfunction%20f(e)%7Bfor(var%20n%20in%20this.options%3De%2Cthis._keep%3D%5B%5D%2Cthis._remove%3D%5B%5D%2Cthis.blankRule%3D%7Breplacement%3Ae.blankReplacement%7D%2Cthis.keepReplacement%3De.keepReplacement%2Cthis.defaultRule%3D%7Breplacement%3Ae.defaultReplacement%7D%2Cthis.array%3D%5B%5D%2Ce.rules)this.array.push(e.rules%5Bn%5D)%7Dfunction%20m(e%2Cn%2Ct)%7Bfor(var%20r%3D0%3Br%3Ce.length%3Br%2B%2B)%7Bvar%20i%3De%5Br%5D%3Bif(h(i%2Cn%2Ct))return%20i%7D%7Dfunction%20h(e%2Cn%2Ct)%7Bvar%20r%3De.filter%3Bif(%22string%22%3D%3Dtypeof%20r)%7Bif(r%3D%3D%3Dn.nodeName.toLowerCase())return!0%7Delse%20if(Array.isArray(r))%7Bif(r.indexOf(n.nodeName.toLowerCase())%3E-1)return!0%7Delse%7Bif(%22function%22!%3Dtypeof%20r)throw%20new%20TypeError(%22%60filter%60%20needs%20to%20be%20a%20string%2C%20array%2C%20or%20function%22)%3Bif(r.call(e%2Cn%2Ct))return!0%7D%7Dfunction%20g(e)%7Bvar%20n%3De.nextSibling%7C%7Ce.parentNode%3Breturn%20e.parentNode.removeChild(e)%2Cn%7Dfunction%20b(e%2Cn%2Ct)%7Breturn%20e%26%26e.parentNode%3D%3D%3Dn%7C%7Ct(n)%3Fn.nextSibling%7C%7Cn.parentNode%3An.firstChild%7C%7Cn.nextSibling%7C%7Cn.parentNode%7Ds.paragraph%3D%7Bfilter%3A%22p%22%2Creplacement%3Afunction(e)%7Breturn%22%5Cn%5Cn%22%2Be%2B%22%5Cn%5Cn%22%7D%7D%2Cs.lineBreak%3D%7Bfilter%3A%22br%22%2Creplacement%3Afunction(e%2Cn%2Ct)%7Breturn%20t.br%2B%22%5Cn%22%7D%7D%2Cs.heading%3D%7Bfilter%3A%5B%22h1%22%2C%22h2%22%2C%22h3%22%2C%22h4%22%2C%22h5%22%2C%22h6%22%5D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Bvar%20i%3DNumber(n.nodeName.charAt(1))%3Breturn%22setext%22%3D%3D%3Dt.headingStyle%26%26i%3C3%3F%22%5Cn%5Cn%22%2Be%2B%22%5Cn%22%2Br(1%3D%3D%3Di%3F%22%3D%22%3A%22-%22%2Ce.length)%2B%22%5Cn%5Cn%22%3A%22%5Cn%5Cn%22%2Br(%22%23%22%2Ci)%2B%22%20%22%2Be%2B%22%5Cn%5Cn%22%7D%7D%2Cs.blockquote%3D%7Bfilter%3A%22blockquote%22%2Creplacement%3Afunction(e)%7Breturn%22%5Cn%5Cn%22%2B(e%3D(e%3De.replace(%2F%5E%5Cn%2B%7C%5Cn%2B%24%2Fg%2C%22%22)).replace(%2F%5E%2Fgm%2C%22%3E%20%22))%2B%22%5Cn%5Cn%22%7D%7D%2Cs.list%3D%7Bfilter%3A%5B%22ul%22%2C%22ol%22%5D%2Creplacement%3Afunction(e%2Cn)%7Bvar%20t%3Dn.parentNode%3Breturn%22LI%22%3D%3D%3Dt.nodeName%26%26t.lastElementChild%3D%3D%3Dn%3F%22%5Cn%22%2Be%3A%22%5Cn%5Cn%22%2Be%2B%22%5Cn%5Cn%22%7D%7D%2Cs.listItem%3D%7Bfilter%3A%22li%22%2Creplacement%3Afunction(e%2Cn%2Ct)%7Be%3De.replace(%2F%5E%5Cn%2B%2F%2C%22%22).replace(%2F%5Cn%2B%24%2F%2C%22%5Cn%22).replace(%2F%5Cn%2Fgm%2C%22%5Cn%20%20%20%20%22)%3Bvar%20r%3Dt.bulletListMarker%2B%22%20%20%20%22%2Ci%3Dn.parentNode%3Bif(%22OL%22%3D%3D%3Di.nodeName)%7Bvar%20o%3Di.getAttribute(%22start%22)%2Ca%3DArray.prototype.indexOf.call(i.children%2Cn)%3Br%3D(o%3FNumber(o)%2Ba%3Aa%2B1)%2B%22.%20%20%22%7Dreturn%20r%2Be%2B(n.nextSibling%26%26!%2F%5Cn%24%2F.test(e)%3F%22%5Cn%22%3A%22%22)%7D%7D%2Cs.indentedCodeBlock%3D%7Bfilter%3Afunction(e%2Cn)%7Breturn%22indented%22%3D%3D%3Dn.codeBlockStyle%26%26%22PRE%22%3D%3D%3De.nodeName%26%26e.firstChild%26%26%22CODE%22%3D%3D%3De.firstChild.nodeName%7D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Breturn%22%5Cn%5Cn%20%20%20%20%22%2Bn.firstChild.textContent.replace(%2F%5Cn%2Fg%2C%22%5Cn%20%20%20%20%22)%2B%22%5Cn%5Cn%22%7D%7D%2Cs.fencedCodeBlock%3D%7Bfilter%3Afunction(e%2Cn)%7Breturn%22fenced%22%3D%3D%3Dn.codeBlockStyle%26%26%22PRE%22%3D%3D%3De.nodeName%26%26e.firstChild%26%26%22CODE%22%3D%3D%3De.firstChild.nodeName%7D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Bfor(var%20i%2Co%3D((n.firstChild.getAttribute(%22class%22)%7C%7C%22%22).match(%2Flanguage-(%5CS%2B)%2F)%7C%7C%5Bnull%2C%22%22%5D)%5B1%5D%2Ca%3Dn.firstChild.textContent%2Cl%3Dt.fence.charAt(0)%2Cd%3D3%2Cc%3Dnew%20RegExp(%22%5E%22%2Bl%2B%22%7B3%2C%7D%22%2C%22gm%22)%3Bi%3Dc.exec(a)%3B)i%5B0%5D.length%3E%3Dd%26%26(d%3Di%5B0%5D.length%2B1)%3Bvar%20u%3Dr(l%2Cd)%3Breturn%22%5Cn%5Cn%22%2Bu%2Bo%2B%22%5Cn%22%2Ba.replace(%2F%5Cn%24%2F%2C%22%22)%2B%22%5Cn%22%2Bu%2B%22%5Cn%5Cn%22%7D%7D%2Cs.horizontalRule%3D%7Bfilter%3A%22hr%22%2Creplacement%3Afunction(e%2Cn%2Ct)%7Breturn%22%5Cn%5Cn%22%2Bt.hr%2B%22%5Cn%5Cn%22%7D%7D%2Cs.inlineLink%3D%7Bfilter%3Afunction(e%2Cn)%7Breturn%22inlined%22%3D%3D%3Dn.linkStyle%26%26%22A%22%3D%3D%3De.nodeName%26%26e.getAttribute(%22href%22)%7D%2Creplacement%3Afunction(e%2Cn)%7Bvar%20t%3Dn.getAttribute(%22href%22)%2Cr%3Dp(n.getAttribute(%22title%22))%3Breturn%20r%26%26(r%3D'%20%22'%2Br%2B'%22')%2C%22%5B%22%2Be%2B%22%5D(%22%2Bt%2Br%2B%22)%22%7D%7D%2Cs.referenceLink%3D%7Bfilter%3Afunction(e%2Cn)%7Breturn%22referenced%22%3D%3D%3Dn.linkStyle%26%26%22A%22%3D%3D%3De.nodeName%26%26e.getAttribute(%22href%22)%7D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Bvar%20r%2Ci%2Co%3Dn.getAttribute(%22href%22)%2Ca%3Dp(n.getAttribute(%22title%22))%3Bswitch(a%26%26(a%3D'%20%22'%2Ba%2B'%22')%2Ct.linkReferenceStyle)%7Bcase%22collapsed%22%3Ar%3D%22%5B%22%2Be%2B%22%5D%5B%5D%22%2Ci%3D%22%5B%22%2Be%2B%22%5D%3A%20%22%2Bo%2Ba%3Bbreak%3Bcase%22shortcut%22%3Ar%3D%22%5B%22%2Be%2B%22%5D%22%2Ci%3D%22%5B%22%2Be%2B%22%5D%3A%20%22%2Bo%2Ba%3Bbreak%3Bdefault%3Avar%20l%3Dthis.references.length%2B1%3Br%3D%22%5B%22%2Be%2B%22%5D%5B%22%2Bl%2B%22%5D%22%2Ci%3D%22%5B%22%2Bl%2B%22%5D%3A%20%22%2Bo%2Ba%7Dreturn%20this.references.push(i)%2Cr%7D%2Creferences%3A%5B%5D%2Cappend%3Afunction(e)%7Bvar%20n%3D%22%22%3Breturn%20this.references.length%26%26(n%3D%22%5Cn%5Cn%22%2Bthis.references.join(%22%5Cn%22)%2B%22%5Cn%5Cn%22%2Cthis.references%3D%5B%5D)%2Cn%7D%7D%2Cs.emphasis%3D%7Bfilter%3A%5B%22em%22%2C%22i%22%5D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Breturn%20e.trim()%3Ft.emDelimiter%2Be%2Bt.emDelimiter%3A%22%22%7D%7D%2Cs.strong%3D%7Bfilter%3A%5B%22strong%22%2C%22b%22%5D%2Creplacement%3Afunction(e%2Cn%2Ct)%7Breturn%20e.trim()%3Ft.strongDelimiter%2Be%2Bt.strongDelimiter%3A%22%22%7D%7D%2Cs.code%3D%7Bfilter%3Afunction(e)%7Bvar%20n%3De.previousSibling%7C%7Ce.nextSibling%2Ct%3D%22PRE%22%3D%3D%3De.parentNode.nodeName%26%26!n%3Breturn%22CODE%22%3D%3D%3De.nodeName%26%26!t%7D%2Creplacement%3Afunction(e)%7Bif(!e)return%22%22%3Be%3De.replace(%2F%5Cr%3F%5Cn%7C%5Cr%2Fg%2C%22%20%22)%3Bfor(var%20n%3D%2F%5E%60%7C%5E%20.*%3F%5B%5E%20%5D.*%20%24%7C%60%24%2F.test(e)%3F%22%20%22%3A%22%22%2Ct%3D%22%60%22%2Cr%3De.match(%2F%60%2B%2Fgm)%7C%7C%5B%5D%3B-1!%3D%3Dr.indexOf(t)%3B)t%2B%3D%22%60%22%3Breturn%20t%2Bn%2Be%2Bn%2Bt%7D%7D%2Cs.image%3D%7Bfilter%3A%22img%22%2Creplacement%3Afunction(e%2Cn)%7Bvar%20t%3Dp(n.getAttribute(%22alt%22))%2Cr%3Dn.getAttribute(%22src%22)%7C%7C%22%22%2Ci%3Dp(n.getAttribute(%22title%22))%3Breturn%20r%3F%22!%5B%22%2Bt%2B%22%5D(%22%2Br%2B(i%3F'%20%22'%2Bi%2B'%22'%3A%22%22)%2B%22)%22%3A%22%22%7D%7D%2Cf.prototype%3D%7Badd%3Afunction(e%2Cn)%7Bthis.array.unshift(n)%7D%2Ckeep%3Afunction(e)%7Bthis._keep.unshift(%7Bfilter%3Ae%2Creplacement%3Athis.keepReplacement%7D)%7D%2Cremove%3Afunction(e)%7Bthis._remove.unshift(%7Bfilter%3Ae%2Creplacement%3Afunction()%7Breturn%22%22%7D%7D)%7D%2CforNode%3Afunction(e)%7Breturn%20e.isBlank%3Fthis.blankRule%3A(n%3Dm(this.array%2Ce%2Cthis.options))%7C%7C(n%3Dm(this._keep%2Ce%2Cthis.options))%7C%7C(n%3Dm(this._remove%2Ce%2Cthis.options))%3Fn%3Athis.defaultRule%3Bvar%20n%7D%2CforEach%3Afunction(e)%7Bfor(var%20n%3D0%3Bn%3Cthis.array.length%3Bn%2B%2B)e(this.array%5Bn%5D%2Cn)%7D%7D%3Bvar%20v%2Cy%2CC%3D%22undefined%22!%3Dtypeof%20window%3Fwindow%3A%7B%7D%2CN%3Dfunction()%7Bvar%20e%3DC.DOMParser%2Cn%3D!1%3Btry%7B(new%20e).parseFromString(%22%22%2C%22text%2Fhtml%22)%26%26(n%3D!0)%7Dcatch(e)%7B%7Dreturn%20n%7D()%3FC.DOMParser%3A(v%3Dfunction()%7B%7D%2Cfunction()%7Bvar%20e%3D!1%3Btry%7Bdocument.implementation.createHTMLDocument(%22%22).open()%7Dcatch(n)%7Bwindow.ActiveXObject%26%26(e%3D!0)%7Dreturn%20e%7D()%3Fv.prototype.parseFromString%3Dfunction(e)%7Bvar%20n%3Dnew%20window.ActiveXObject(%22htmlfile%22)%3Breturn%20n.designMode%3D%22on%22%2Cn.open()%2Cn.write(e)%2Cn.close()%2Cn%7D%3Av.prototype.parseFromString%3Dfunction(e)%7Bvar%20n%3Ddocument.implementation.createHTMLDocument(%22%22)%3Breturn%20n.open()%2Cn.write(e)%2Cn.close()%2Cn%7D%2Cv)%3Bfunction%20T(e%2Cn)%7Bvar%20t%3Breturn%20function(e)%7Bvar%20n%3De.element%2Ct%3De.isBlock%2Cr%3De.isVoid%2Ci%3De.isPre%7C%7Cfunction(e)%7Breturn%22PRE%22%3D%3D%3De.nodeName%7D%3Bif(n.firstChild%26%26!i(n))%7Bfor(var%20o%3Dnull%2Ca%3D!1%2Cl%3Dnull%2Cd%3Db(l%2Cn%2Ci)%3Bd!%3D%3Dn%3B)%7Bif(3%3D%3D%3Dd.nodeType%7C%7C4%3D%3D%3Dd.nodeType)%7Bvar%20c%3Dd.data.replace(%2F%5B%20%5Cr%5Cn%5Ct%5D%2B%2Fg%2C%22%20%22)%3Bif(o%26%26!%2F%20%24%2F.test(o.data)%7C%7Ca%7C%7C%22%20%22!%3D%3Dc%5B0%5D%7C%7C(c%3Dc.substr(1))%2C!c)%7Bd%3Dg(d)%3Bcontinue%7Dd.data%3Dc%2Co%3Dd%7Delse%7Bif(1!%3D%3Dd.nodeType)%7Bd%3Dg(d)%3Bcontinue%7Dt(d)%7C%7C%22BR%22%3D%3D%3Dd.nodeName%3F(o%26%26(o.data%3Do.data.replace(%2F%20%24%2F%2C%22%22))%2Co%3Dnull%2Ca%3D!1)%3Ar(d)%7C%7Ci(d)%3F(o%3Dnull%2Ca%3D!0)%3Ao%26%26(a%3D!1)%7Dvar%20u%3Db(l%2Cd%2Ci)%3Bl%3Dd%2Cd%3Du%7Do%26%26(o.data%3Do.data.replace(%2F%20%24%2F%2C%22%22)%2Co.data%7C%7Cg(o))%7D%7D(%7Belement%3At%3D%22string%22%3D%3Dtypeof%20e%3F(y%3Dy%7C%7Cnew%20N).parseFromString('%3Cx-turndown%20id%3D%22turndown-root%22%3E'%2Be%2B%22%3C%2Fx-turndown%3E%22%2C%22text%2Fhtml%22).getElementById(%22turndown-root%22)%3Ae.cloneNode(!0)%2CisBlock%3Ao%2CisVoid%3Al%2CisPre%3An.preformattedCode%3FA%3Anull%7D)%2Ct%7Dfunction%20A(e)%7Breturn%22PRE%22%3D%3D%3De.nodeName%7C%7C%22CODE%22%3D%3D%3De.nodeName%7Dfunction%20w(e%2Cn)%7Breturn%20e.isBlock%3Do(e)%2Ce.isCode%3D%22CODE%22%3D%3D%3De.nodeName%7C%7Ce.parentNode.isCode%2Ce.isBlank%3Dfunction(e)%7Breturn!l(e)%26%26!function(e)%7Breturn%20c(e%2Cd)%7D(e)%26%26%2F%5E%5Cs*%24%2Fi.test(e.textContent)%26%26!function(e)%7Breturn%20u(e%2Ca)%7D(e)%26%26!function(e)%7Breturn%20u(e%2Cd)%7D(e)%7D(e)%2Ce.flankingWhitespace%3Dfunction(e%2Cn)%7Bif(e.isBlock%7C%7Cn.preformattedCode%26%26e.isCode)return%7Bleading%3A%22%22%2Ctrailing%3A%22%22%7D%3Bvar%20t%2Cr%3D%7Bleading%3A(t%3De.textContent.match(%2F%5E((%5B%20%5Ct%5Cr%5Cn%5D*)(%5Cs*))%5B%5Cs%5CS%5D*%3F((%5Cs*%3F)(%5B%20%5Ct%5Cr%5Cn%5D*))%24%2F))%5B1%5D%2CleadingAscii%3At%5B2%5D%2CleadingNonAscii%3At%5B3%5D%2Ctrailing%3At%5B4%5D%2CtrailingNonAscii%3At%5B5%5D%2CtrailingAscii%3At%5B6%5D%7D%3Breturn%20r.leadingAscii%26%26E(%22left%22%2Ce%2Cn)%26%26(r.leading%3Dr.leadingNonAscii)%2Cr.trailingAscii%26%26E(%22right%22%2Ce%2Cn)%26%26(r.trailing%3Dr.trailingNonAscii)%2C%7Bleading%3Ar.leading%2Ctrailing%3Ar.trailing%7D%7D(e%2Cn)%2Ce%7Dfunction%20E(e%2Cn%2Ct)%7Bvar%20r%2Ci%2Ca%3Breturn%22left%22%3D%3D%3De%3F(r%3Dn.previousSibling%2Ci%3D%2F%20%24%2F)%3A(r%3Dn.nextSibling%2Ci%3D%2F%5E%20%2F)%2Cr%26%26(3%3D%3D%3Dr.nodeType%3Fa%3Di.test(r.nodeValue)%3At.preformattedCode%26%26%22CODE%22%3D%3D%3Dr.nodeName%3Fa%3D!1%3A1!%3D%3Dr.nodeType%7C%7Co(r)%7C%7C(a%3Di.test(r.textContent)))%2Ca%7Dvar%20R%3DArray.prototype.reduce%2CS%3D%5B%5B%2F%5C%5C%2Fg%2C%22%5C%5C%5C%5C%22%5D%2C%5B%2F%5C*%2Fg%2C%22%5C%5C*%22%5D%2C%5B%2F%5E-%2Fg%2C%22%5C%5C-%22%5D%2C%5B%2F%5E%5C%2B%20%2Fg%2C%22%5C%5C%2B%20%22%5D%2C%5B%2F%5E(%3D%2B)%2Fg%2C%22%5C%5C%241%22%5D%2C%5B%2F%5E(%23%7B1%2C6%7D)%20%2Fg%2C%22%5C%5C%241%20%22%5D%2C%5B%2F%60%2Fg%2C%22%5C%5C%60%22%5D%2C%5B%2F%5E~~~%2Fg%2C%22%5C%5C~~~%22%5D%2C%5B%2F%5C%5B%2Fg%2C%22%5C%5C%5B%22%5D%2C%5B%2F%5C%5D%2Fg%2C%22%5C%5C%5D%22%5D%2C%5B%2F%5E%3E%2Fg%2C%22%5C%5C%3E%22%5D%2C%5B%2F_%2Fg%2C%22%5C%5C_%22%5D%2C%5B%2F%5E(%5Cd%2B)%5C.%20%2Fg%2C%22%241%5C%5C.%20%22%5D%5D%3Bfunction%20k(e)%7Bif(!(this%20instanceof%20k))return%20new%20k(e)%3Bvar%20n%3D%7Brules%3As%2CheadingStyle%3A%22setext%22%2Chr%3A%22*%20*%20*%22%2CbulletListMarker%3A%22*%22%2CcodeBlockStyle%3A%22indented%22%2Cfence%3A%22%60%60%60%22%2CemDelimiter%3A%22_%22%2CstrongDelimiter%3A%22**%22%2ClinkStyle%3A%22inlined%22%2ClinkReferenceStyle%3A%22full%22%2Cbr%3A%22%20%20%22%2CpreformattedCode%3A!1%2CblankReplacement%3Afunction(e%2Cn)%7Breturn%20n.isBlock%3F%22%5Cn%5Cn%22%3A%22%22%7D%2CkeepReplacement%3Afunction(e%2Cn)%7Breturn%20n.isBlock%3F%22%5Cn%5Cn%22%2Bn.outerHTML%2B%22%5Cn%5Cn%22%3An.outerHTML%7D%2CdefaultReplacement%3Afunction(e%2Cn)%7Breturn%20n.isBlock%3F%22%5Cn%5Cn%22%2Be%2B%22%5Cn%5Cn%22%3Ae%7D%7D%3Bthis.options%3Dfunction(e)%7Bfor(var%20n%3D1%3Bn%3Carguments.length%3Bn%2B%2B)%7Bvar%20t%3Darguments%5Bn%5D%3Bfor(var%20r%20in%20t)t.hasOwnProperty(r)%26%26(e%5Br%5D%3Dt%5Br%5D)%7Dreturn%20e%7D(%7B%7D%2Cn%2Ce)%2Cthis.rules%3Dnew%20f(this.options)%7Dfunction%20x(e)%7Bvar%20n%3Dthis%3Breturn%20R.call(e.childNodes%2C(function(e%2Ct)%7Bvar%20r%3D%22%22%3Breturn%203%3D%3D%3D(t%3Dnew%20w(t%2Cn.options)).nodeType%3Fr%3Dt.isCode%3Ft.nodeValue%3An.escape(t.nodeValue)%3A1%3D%3D%3Dt.nodeType%26%26(r%3DB.call(n%2Ct))%2CD(e%2Cr)%7D)%2C%22%22)%7Dfunction%20O(e)%7Bvar%20n%3Dthis%3Breturn%20this.rules.forEach((function(t)%7B%22function%22%3D%3Dtypeof%20t.append%26%26(e%3DD(e%2Ct.append(n.options)))%7D))%2Ce.replace(%2F%5E%5B%5Ct%5Cr%5Cn%5D%2B%2F%2C%22%22).replace(%2F%5B%5Ct%5Cr%5Cn%5Cs%5D%2B%24%2F%2C%22%22)%7Dfunction%20B(e)%7Bvar%20n%3Dthis.rules.forNode(e)%2Ct%3Dx.call(this%2Ce)%2Cr%3De.flankingWhitespace%3Breturn(r.leading%7C%7Cr.trailing)%26%26(t%3Dt.trim())%2Cr.leading%2Bn.replacement(t%2Ce%2Cthis.options)%2Br.trailing%7Dfunction%20D(e%2Cn)%7Bvar%20t%3Dfunction(e)%7Bfor(var%20n%3De.length%3Bn%3E0%26%26%22%5Cn%22%3D%3D%3De%5Bn-1%5D%3B)n--%3Breturn%20e.substring(0%2Cn)%7D(e)%2Cr%3Dn.replace(%2F%5E%5Cn*%2F%2C%22%22)%2Ci%3DMath.max(e.length-t.length%2Cn.length-r.length)%3Breturn%20t%2B%22%5Cn%5Cn%22.substring(0%2Ci)%2Br%7Dk.prototype%3D%7Bturndown%3Afunction(e)%7Bif(!function(e)%7Breturn%20null!%3De%26%26(%22string%22%3D%3Dtypeof%20e%7C%7Ce.nodeType%26%26(1%3D%3D%3De.nodeType%7C%7C9%3D%3D%3De.nodeType%7C%7C11%3D%3D%3De.nodeType))%7D(e))throw%20new%20TypeError(e%2B%22%20is%20not%20a%20string%2C%20or%20an%20element%2Fdocument%2Ffragment%20node.%22)%3Bif(%22%22%3D%3D%3De)return%22%22%3Bvar%20n%3Dx.call(this%2Cnew%20T(e%2Cthis.options))%3Breturn%20O.call(this%2Cn)%7D%2Cuse%3Afunction(e)%7Bif(Array.isArray(e))for(var%20n%3D0%3Bn%3Ce.length%3Bn%2B%2B)this.use(e%5Bn%5D)%3Belse%7Bif(%22function%22!%3Dtypeof%20e)throw%20new%20TypeError(%22plugin%20must%20be%20a%20Function%20or%20an%20Array%20of%20Functions%22)%3Be(this)%7Dreturn%20this%7D%2CaddRule%3Afunction(e%2Cn)%7Breturn%20this.rules.add(e%2Cn)%2Cthis%7D%2Ckeep%3Afunction(e)%7Breturn%20this.rules.keep(e)%2Cthis%7D%2Cremove%3Afunction(e)%7Breturn%20this.rules.remove(e)%2Cthis%7D%2Cescape%3Afunction(e)%7Breturn%20S.reduce((function(e%2Cn)%7Breturn%20e.replace(n%5B0%5D%2Cn%5B1%5D)%7D)%2Ce)%7D%7D%3Bconst%20L%3Dk%7D%2C402%3A(e%2Cn)%3D%3E%7Bn.__esModule%3D!0%2Cn.MarkdownTables%3Dvoid%200%3Bvar%20t%3Dfunction()%7Bfunction%20e()%7B%7Dreturn%20e.tableShouldBeSkipped%3Dfunction(n)%7Breturn!n%7C%7C!n.rows%7C%7C1%3D%3D%3Dn.rows.length%26%26n.rows%5B0%5D.childNodes.length%3C%3D1%7C%7C!!e.nodeContainsTable(n)%7D%2Ce.isHeadingRow%3Dfunction(n)%7Bvar%20t%3Dn.parentNode%2Cr%3D!1%3Breturn%20t%26%26(%22THEAD%22%3D%3D%3Dt.nodeName%3Fr%3D!0%3At.firstChild!%3D%3Dn%3Fr%3D!1%3A(%22TABLE%22%3D%3D%3Dt.nodeName%7C%7Ce.isFirstTbody(t))%26%26(r%3DArray.prototype.every.call(n.childNodes%2C(function(e)%7Breturn%22TH%22%3D%3D%3De.nodeName%7D))))%2Cr%7D%2Ce.isFirstTbody%3Dfunction(e)%7Bvar%20n%3De.previousSibling%2Ct%3D!1%3Breturn%20n%26%26(t%3D!(%22TBODY%22!%3D%3De.nodeName%7C%7Cn%26%26(%22THEAD%22!%3D%3Dn.nodeName%7C%7C!n.textContent%7C%7C!%2F%5E%5Cs*%24%2Fi.test(n.textContent))))%2Ct%7D%2Ce.cell%3Dfunction(n%2Ct%2Cr)%7Bvoid%200%3D%3D%3Dt%26%26(t%3Dnull)%2Cvoid%200%3D%3D%3Dr%26%26(r%3Dnull)%2Cnull%3D%3D%3Dr%26%26null!%3Dt%26%26t.parentNode%26%26(r%3DArray.prototype.indexOf.call(t.parentNode.childNodes%2Ct))%3Bvar%20i%3D%22%20%22%3B0%3D%3D%3Dr%26%26(i%3D%22%7C%20%22)%3Bvar%20o%3Dn.trim().replace(%2F%5Cn%5Cr%2Fg%2C%22%3Cbr%3E%22).replace(%2F%5Cn%2Fg%2C%22%3Cbr%3E%22)%3Bfor(o%3Do.replace(%2F%5C%7C%2B%2Fg%2C%22%5C%5C%7C%22)%3Bo.length%3C3%3B)o%2B%3D%22%20%22%3Breturn%20t%26%26(o%3De.handleColSpan(o%2Ct%2C%22%20%22))%2Ci%2Bo%2B%22%20%7C%22%7D%2Ce.nodeContainsTable%3Dfunction(n)%7Bif(!n.childNodes)return!1%3Bfor(var%20t%3D0%3Bt%3Cn.childNodes.length%3Bt%2B%2B)%7Bvar%20r%3Dn.childNodes%5Bt%5D%3Bif(%22TABLE%22%3D%3D%3Dr.nodeName)return!0%3Bif(e.nodeContainsTable(r))return!0%7Dreturn!1%7D%2Ce.nodeParentTable%3Dfunction(e)%7Bvar%20n%3De.parentNode%3Bif(n)for(%3Bn%26%26%22TABLE%22!%3D%3Dn.nodeName%3B)n%3Dn.parentNode%3Breturn%20n%7D%2Ce.handleColSpan%3Dfunction(e%2Cn%2Ct)%7Bfor(var%20r%3Dn.getAttribute(%22colspan%22)%7C%7C%221%22%2Ci%3D1%3Bi%3CparseInt(r%2C10)%3Bi%2B%2B)e%2B%3D%22%20%7C%20%22%2Bt.repeat(3)%3Breturn%20e%7D%2Ce.tableColCount%3Dfunction(e)%7Bvar%20n%3D0%3Bif(e%26%26e.rows)for(var%20t%3D0%3Bt%3Ce.rows.length%3Bt%2B%2B)%7Bvar%20r%3De.rows%5Bt%5D.childNodes.length%3Br%3En%26%26(n%3Dr)%7Dreturn%20n%7D%2Ce%7D()%2Cr%3Dfunction()%7Bfunction%20e()%7B%7Dreturn%20e.prototype.tables%3Dfunction(e)%7Be.keep((function(e)%7Bvar%20n%3D!1%3Breturn%20e.nodeName%26%26(n%3D%22TABLE%22%3D%3D%3De.nodeName)%2Cn%7D))%3Bvar%20n%2Cr%3D%7BtableCell%3A%7Bfilter%3A%5B%22th%22%2C%22td%22%5D%2Creplacement%3Afunction(e%2Cn)%7Breturn%20t.tableShouldBeSkipped(t.nodeParentTable(n))%3Fe%3At.cell(e%2Cn)%7D%7D%2CtableRow%3A%7Bfilter%3A%22tr%22%2Creplacement%3Afunction(e%2Cn)%7Bvar%20r%3Dt.nodeParentTable(n)%3Bif(t.tableShouldBeSkipped(r))return%20e%3Bvar%20i%3D%22%22%2Co%3D%7Bleft%3A%22%3A--%22%2Cright%3A%22--%3A%22%2Ccenter%3A%22%3A-%3A%22%7D%3Bif(t.isHeadingRow(n))for(var%20a%3Dt.tableColCount(r)%2Cl%3D0%3Bl%3Ca%3Bl%2B%2B)%7Bvar%20d%3Da%3E%3Dn.childNodes.length%3Fnull%3An.childNodes%5Bl%5D%2Cc%3D%22---%22%2Cu%3Dd%3F(d.getAttribute(%22align%22)%7C%7C%22%22).toLowerCase()%3A%22%22%3Bu%26%26(c%3Do%5Bu%5D%7C%7Cc)%2Ci%2B%3Dd%3Ft.cell(c%2Cn.childNodes%5Bl%5D)%3At.cell(c%2Cnull%2Cl)%7Dreturn%22%5Cn%22%2Be%2B(i%3F%22%5Cn%22%2Bi%3A%22%22)%7D%7D%2Ctable%3A%7Bfilter%3Afunction(e)%7Breturn%22TABLE%22%3D%3D%3De.nodeName%7D%2Creplacement%3Afunction(e%2Cn)%7Bif(t.tableShouldBeSkipped(n))return%20e%3Bvar%20r%3D(e%3De.replace(%2F%5Cn%2B%2Fg%2C%22%5Cn%22)).trim().split(%22%5Cn%22)%3Br.length%3E%3D2%26%26(r%3Dr%5B1%5D)%3Bvar%20i%3D0%3D%3D%3Dr.indexOf(%22%7C%20---%22)%2Co%3Dt.tableColCount(n)%2Ca%3D%22%22%3Breturn%20o%26%26!i%26%26(a%3D%22%7C%22%2B%22%20%20%20%20%20%7C%22.repeat(o)%2B%22%5Cn%7C%22%2B%22%20---%20%7C%22.repeat(o))%2C%22%5Cn%5Cn%22%2Ba%2Be%2B%22%5Cn%5Cn%22%7D%7D%2CtableSection%3A%7Bfilter%3A%5B%22thead%22%2C%22tbody%22%2C%22tfoot%22%5D%2Creplacement%3Afunction(e)%7Breturn%20e%7D%7D%7D%3Bfor(n%20in%20r)e.addRule(n%2Cr%5Bn%5D)%7D%2Ce%7D()%3Bn.MarkdownTables%3Dr%7D%7D%2Cr%3D%7B%7D%3Bfunction%20i(e)%7Bvar%20n%3Dr%5Be%5D%3Bif(void%200!%3D%3Dn)return%20n.exports%3Bvar%20o%3Dr%5Be%5D%3D%7Bexports%3A%7B%7D%7D%3Breturn%20t%5Be%5D(o%2Co.exports%2Ci)%2Co.exports%7Di.d%3D(e%2Cn)%3D%3E%7Bfor(var%20t%20in%20n)i.o(n%2Ct)%26%26!i.o(e%2Ct)%26%26Object.defineProperty(e%2Ct%2C%7Benumerable%3A!0%2Cget%3An%5Bt%5D%7D)%7D%2Ci.o%3D(e%2Cn)%3D%3EObject.prototype.hasOwnProperty.call(e%2Cn)%2Ci.r%3De%3D%3E%7B%22undefined%22!%3Dtypeof%20Symbol%26%26Symbol.toStringTag%26%26Object.defineProperty(e%2CSymbol.toStringTag%2C%7Bvalue%3A%22Module%22%7D)%2CObject.defineProperty(e%2C%22__esModule%22%2C%7Bvalue%3A!0%7D)%7D%2Ce%3Di(36)%2Cn%3Di(402)%2Cfunction(t%2Cr%2Ci%2Co)%7Bvar%20a%3DencodeURIComponent(%22${this.vaultName}%22)%2Cl%3DencodeURIComponent(%22${this.notePath}%22)%2Cd%3DencodeURIComponent(%22${this.captureComments}%22)%2Cc%3D%22%22%2Cu%3Dnew%20e.default(%7BheadingStyle%3A%22atx%22%2Chr%3A%22---%22%2CbulletListMarker%3A%22-%22%2CcodeBlockStyle%3A%22fenced%22%2CemDelimiter%3A%22*%22%7D)%2Cs%3Dnew%20n.MarkdownTables%3Bu.use(s.tables)%2Cu.addRule(%22heading_1_update%22%2C%7Bfilter%3A%5B%22h1%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h1%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22heading_2_update%22%2C%7Bfilter%3A%5B%22h2%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h2%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22heading_3_update%22%2C%7Bfilter%3A%5B%22h3%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h3%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22heading_4_update%22%2C%7Bfilter%3A%5B%22h4%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h4%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22heading_5_update%22%2C%7Bfilter%3A%5B%22h5%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h5%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22heading_6_update%22%2C%7Bfilter%3A%5B%22h6%22%5D%2Creplacement%3Afunction(e)%7Breturn%22%22.concat(i.h6%2C%22%20%22).concat(e)%7D%7D)%2Cu.addRule(%22fix_relative_links%22%2C%7Bfilter%3A%5B%22a%22%5D%2Creplacement%3Afunction(e%2Cn)%7Bvar%20t%3Dn.href%3Breturn%20t.includes(%22%3A%2F%2F%22)%7C%7C(t%3Dwindow.location.protocol%2B%22%2F%2F%22%2Bwindow.location.host%2Bt)%2C%22%5B%22.concat(e%2C%22%5D(%22).concat(t%2C%22)%22)%7D%7D)%3Bvar%20p%3Du.turndown(function()%7Bvar%20e%3D%22%22%3Bif(void%200!%3D%3Dwindow.getSelection)%7Bvar%20n%3Dwindow.getSelection()%3Bif(n%26%26n.rangeCount)%7Bfor(var%20t%3Ddocument.createElement(%22div%22)%2Cr%3D0%2Ci%3Dn.rangeCount%3Br%3Ci%3B%2B%2Br)t.appendChild(n.getRangeAt(r).cloneContents())%3Be%3Dt.innerHTML%7D%7Dreturn%20e%7D())%3Bfunction%20f()%7Bvar%20e%3Ddocument.getElementsByClassName(%22obsidian-clipper-modal-overlay%22)%5B0%5D%3Bif(e)%7Bvar%20n%3Ddocument.getElementById(%22obsidian-clipper-comment%22)%3Bc%3Dn.value%2Cn.value%3D%22%22%2Ce.style.display%3D%22none%22%7Dvar%20t%3Ddocument.URL%2Cr%3Ddocument.title%2Ci%3D%22obsidian%3A%2F%2Fobsidian-clipper%3Fvault%3D%22.concat(a%2C%22%26notePath%3D%22).concat(l%2C%22%26url%3D%22).concat(encodeURIComponent(t)%2C%22%26format%3Dmd%26title%3D%22).concat(encodeURIComponent(r)%2C%22%26highlightdata%3D%22).concat(encodeURIComponent(p)%2C%22%26comments%3D%22).concat(encodeURIComponent(c))%3B-1!%3D%3Dnavigator.userAgent.indexOf(%22Chrome%22)%26%26-1!%3D%3Dnavigator.userAgent.indexOf(%22Windows%22)%26%26i.length%3E%3D2e3%26%26alert(%22Chrome%20on%20Windows%20doesn't%20allow%20a%20highlight%20this%20large.%20%22.concat(i.length%2C%22%20characters%20have%20been%20selected%20and%20it%20must%20be%20less%20than%202000%22))%2Cfunction(e)%7Breturn-1!%3D%3Dnavigator.userAgent.indexOf(%22Chrome%22)%26%26-1!%3D%3Dnavigator.userAgent.indexOf(%22Windows%22)%26%26e.length%3E%3D2e3%26%26(alert(%22Chrome%20on%20Windows%20doesn't%20allow%20a%20highlight%20this%20large.%5Cn%20%22.concat(e.length%2C%22%20characters%20have%20been%20selected%20and%20it%20must%20be%20less%20than%202000.%20%5Cn%5Cn%20Firefox%20on%20Windows%20doesn't%20seem%20to%20have%20this%20same%20problem.%22))%2C!0)%7D(i)%7C%7C(document.location.href%3Di)%7D%22true%22%3D%3D%3Dd%3Ffunction()%7Bvar%20e%2Cn%3Ddocument.getElementsByClassName(%22obsidian-clipper-modal-overlay%22)%5B0%5D%3Bif(n)n.style.display%3D%22block%22%3Belse%7Bvar%20t%3Ddocument.createElement(%22style%22)%2Cr%3Ddocument.createTextNode(%22%5Cn.obsidian-clipper-modal%20%7B%5Cn%5Ctz-index%3A%2010000%3B%5Cn%5Ctposition%3A%20fixed%3B%5Cn%5Cttop%3A%2050%25%3B%5Cn%5Ctleft%3A%2050%25%3B%5Cn%5Cttransform%3A%20translate(-50%25%2C%20-50%25)%3B%5Cn%5Ctdisplay%3A%20flex%3B%5Cn%20%20flex-direction%3A%20column%3B%5Cn%20%20gap%3A%200.4rem%3B%5Cn%20%20width%3A%20450px%3B%5Cn%20%20padding%3A%201.3rem%3B%5Cn%20%20background-color%3A%20white%3B%5Cn%20%20border%3A%201px%20solid%20%23ddd%3B%5Cn%20%20border-radius%3A%2015px%3B%5Cn%7D%5Cn.obsidian-clipper-modal%20.flex%20%7B%5Cn%20%20display%3A%20flex%3B%5Cn%20%20align-items%3A%20center%3B%5Cn%20%20justify-content%3A%20space-between%3B%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal%20input%20%7B%5Cn%20%20padding%3A%200.7rem%201rem%3B%5Cn%20%20border%3A%201px%20solid%20%23ddd%3B%5Cn%20%20border-radius%3A%205px%3B%5Cn%20%20font-size%3A%200.9em%3B%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal%20p%20%7B%5Cn%20%20font-size%3A%200.9rem%3B%5Cn%20%20color%3A%20%23777%3B%5Cn%20%20margin%3A%200.4rem%200%200.2rem%3B%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal%20label%20%7B%5Cndisplay%3A%20block%3B%20%5Cnmargin-bottom%3A%200.5rem%3B%20%5Cncolor%3A%20%23111827%3B%20%5Cnfont-size%3A%200.875rem%3B%5Cnline-height%3A%201.25rem%3B%20%5Cnfont-weight%3A%20500%3B%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal%20textarea%20%7B%5Cn%5Ctdisplay%3A%20block%3B%20!important%3B%20%5Cn%5Ctpadding%3A%200.625rem%20!important%3B%20%5Cn%5Ctbackground-color%3A%20%23F9FAFB%20!important%3B%20%5Cn%5Ctcolor%3A%20%23111827%20!important%3B%20%5Cn%5Ctfont-size%3A%200.875rem%20!important%3B%20%5Cn%5Ctline-height%3A%201.25rem%20!important%3B%20%5Cn%20%5Ctwidth%3A%20100%25%20!important%3B%20%5Cn%5Ctborder-radius%3A%200.5rem%20!important%3B%20%5Cn%5Ctborder-width%3A%201px%20!important%3B%20%5Cn%5Ctborder-color%3A%20%23D1D5DB%20!important%3B%20%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal%20button%20%7B%5Cn%5Ctpadding-top%3A%200.625rem%20!important%3B%5Cnpadding-bottom%3A%200.625rem%20!important%3B%5Cnpadding-left%3A%201.25rem%20!important%3B%5Cnpadding-right%3A%201.25rem%20!important%3B%5Cnmargin-right%3A%200.5rem%20!important%3B%5Cnmargin-bottom%3A%200.5rem%20!important%3B%5Cnbackground-color%3A%20%231F2937%20!important%3B%5Cncolor%3A%20%23ffffff%20!important%3B%5Cnfont-size%3A%200.875rem%20!important%3B%5Cnline-height%3A%201.25rem%20!important%3B%5Cnfont-weight%3A%20500%20!important%3B%5Cnborder-radius%3A%200.5rem%20!important%3B%5Cn%7D%5Cn%5Cn.obsidian-clipper-modal-overlay%20%7B%5Cn%20%20background%3A%20rgba(0%2C%200%2C%200%2C%200.6)%3B%5Cn%20%20position%3A%20fixed%3B%5Cn%20%20top%3A%200%3B%5Cn%20%20left%3A%200%3B%5Cn%20%20right%3A%200%3B%5Cn%20%20bottom%3A%200%3B%5Cn%20%20z-index%3A%209999%3B%5Cn%7D%5Cn%5Cn%22)%3Bt.appendChild(r)%2Cdocument.getElementsByTagName(%22head%22)%5B0%5D.appendChild(t)%3Bvar%20i%3Ddocument.createElement(%22div%22)%2Co%3Ddocument.createElement(%22div%22)%3Bo.innerHTML%3D'%5Cn%5Ct%5Ct%3Cdiv%3E%5Cn%5Ct%5Ct%5Ct%3Clabel%3EObsidian%20Clipper%3C%2Flabel%3E%5Cn%5Ct%5Ct%5Ct%3Ctextarea%20id%3D%22obsidian-clipper-comment%22%20rows%3D%226%22%5Ctplaceholder%3D%22Add%20your%20thoughts...%22%3E%3C%2Ftextarea%3E%5Cn%5Ct%5Ct%3C%2Fdiv%3E'%3Bvar%20a%3Ddocument.createElement(%22button%22)%3Ba.appendChild(document.createTextNode(%22Submit%22))%2Ca.addEventListener(%22click%22%2Cf%2C!1)%2Co.appendChild(a)%2Co.classList.add(%22obsidian-clipper-modal%22)%2Ci.classList.add(%22obsidian-clipper-modal-overlay%22)%2Ci.appendChild(o)%2Cdocument.body.appendChild(i)%2Cnull%3D%3D%3D(e%3Ddocument.getElementById(%22obsidian-clipper-comment%22))%7C%7Cvoid%200%3D%3D%3De%7C%7Ce.focus()%7D%7D()%3Af()%7D(0%2C0%2C%7Bh1%3A%22${this.markdownSettings.h1}%22%2Ch2%3A%22${this.markdownSettings.h2}%22%2Ch3%3A%22${this.markdownSettings.h3}%22%2Ch4%3A%22${this.markdownSettings.h4}%22%2Ch5%3A%22${this.markdownSettings.h5}%22%2Ch6%3A%22${this.markdownSettings.h6}%22%7D)%7D)()%3B%7D)()`; + } +}; + +// src/settings/BookmarkletSettingsGroup.svelte +function create_fragment10(ctx) { + let div3; + let div2; + let div1; + let div0; + let t1; + let a; + let t2; + let t3; + let t4; + return { + c() { + div3 = element("div"); + div2 = element("div"); + div1 = element("div"); + div0 = element("div"); + div0.textContent = "You can drag or copy the link below to your browser bookmark bar. This\n bookmarklet will allow you to highlight information on the web and send\n it to obsidian"; + t1 = space(); + a = element("a"); + t2 = text("Obsidian Clipper ("); + t3 = text(ctx[1]); + t4 = text(")"); + attr(a, "href", ctx[0]); + attr(div1, "class", "flex-1 basis-0"); + attr(div2, "class", "flex flex-row"); + attr(div3, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div1); + append(div1, div0); + append(div1, t1); + append(div1, a); + append(a, t2); + append(a, t3); + append(a, t4); + }, + p(ctx2, [dirty]) { + if (dirty & 2) + set_data(t3, ctx2[1]); + if (dirty & 1) { + attr(a, "href", ctx2[0]); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(div3); + } + }; +} +function instance10($$self, $$props, $$invalidate) { + let { clipperHref } = $$props; + let { noteOrVault } = $$props; + $$self.$$set = ($$props2) => { + if ("clipperHref" in $$props2) + $$invalidate(0, clipperHref = $$props2.clipperHref); + if ("noteOrVault" in $$props2) + $$invalidate(1, noteOrVault = $$props2.noteOrVault); + }; + return [clipperHref, noteOrVault]; +} +var BookmarkletSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance10, create_fragment10, safe_not_equal, { clipperHref: 0, noteOrVault: 1 }); + } +}; +var BookmarkletSettingsGroup_default = BookmarkletSettingsGroup; + +// src/settings/ExtensionSettingsGroup.svelte +var import_obsidian5 = require("obsidian"); +function create_fragment11(ctx) { + let div3; + let div2; + let div0; + let t0; + let span; + let t1; + let t2; + let t3; + let div1; + let button; + let t4; + let t5; + let t6; + let mounted; + let dispose; + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + t0 = text("Click the button below to generate a personalized Chrome-based extension\n for the "); + span = element("span"); + t1 = text(ctx[0]); + t2 = text(". After clicking\n the button, use the link to download the .zip file."); + t3 = space(); + div1 = element("div"); + button = element("button"); + t4 = text("Chrome Extension ("); + t5 = text(ctx[0]); + t6 = text(")"); + attr(span, "class", "font-extrabold"); + attr(div1, "class", "my-4"); + attr(div3, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div2); + append(div2, div0); + append(div0, t0); + append(div0, span); + append(span, t1); + append(div0, t2); + append(div2, t3); + append(div2, div1); + append(div1, button); + append(button, t4); + append(button, t5); + append(button, t6); + ctx[4](div1); + if (!mounted) { + dispose = listen(button, "click", ctx[2]); + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 1) + set_data(t1, ctx2[0]); + if (dirty & 1) + set_data(t5, ctx2[0]); + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(div3); + ctx[4](null); + mounted = false; + dispose(); + } + }; +} +function instance11($$self, $$props, $$invalidate) { + let { clipperHref } = $$props; + let { noteOrVault } = $$props; + let s3LinkContainer; + const getExtension = async () => { + const response = await (0, import_obsidian5.requestUrl)({ + url: "https://obsidianclipper.com/api/extension", + contentType: "application/json", + method: "POST", + body: JSON.stringify({ + name: noteOrVault, + bookmarklet_code: clipperHref + }) + }); + const s3Link = window.document.createElement("a"); + s3Link.href = response.json.data.link; + s3Link.textContent = "Download Chrome Extension"; + s3LinkContainer.replaceChildren(s3Link); + }; + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + s3LinkContainer = $$value; + $$invalidate(1, s3LinkContainer); + }); + } + $$self.$$set = ($$props2) => { + if ("clipperHref" in $$props2) + $$invalidate(3, clipperHref = $$props2.clipperHref); + if ("noteOrVault" in $$props2) + $$invalidate(0, noteOrVault = $$props2.noteOrVault); + }; + return [noteOrVault, s3LinkContainer, getExtension, clipperHref, div1_binding]; +} +var ExtensionSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance11, create_fragment11, safe_not_equal, { clipperHref: 3, noteOrVault: 0 }); + } +}; +var ExtensionSettingsGroup_default = ExtensionSettingsGroup; + +// src/settings/LinksSettingsGroup.svelte +function create_if_block5(ctx) { + let div4; + let div2; + let t3; + let div3; + let input; + let mounted; + let dispose; + return { + c() { + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Capture Comment in Browser
    +
    Display a modal in the browser to capture any comments before sending + to Obsidian?
    `; + t3 = space(); + div3 = element("div"); + input = element("input"); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "checkbox"); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div4, anchor); + append(div4, div2); + append(div4, t3); + append(div4, div3); + append(div3, input); + input.checked = ctx[1].captureComments; + if (!mounted) { + dispose = [ + listen(input, "change", ctx[6]), + listen(input, "change", ctx[3]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty & 2) { + input.checked = ctx2[1].captureComments; + } + }, + d(detaching) { + if (detaching) + detach(div4); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment12(ctx) { + let div0; + let bookmarkletsettingsgroup; + let t0; + let extensionsettingsgroup; + let t1; + let div28; + let h10; + let t3; + let t4; + let div2; + let t6; + let div7; + let div5; + let t10; + let div6; + let input0; + let t11; + let div12; + let div10; + let t15; + let div11; + let input1; + let t16; + let div17; + let div15; + let t20; + let div16; + let input2; + let t21; + let div22; + let div20; + let t25; + let div21; + let input3; + let t26; + let div27; + let div25; + let t30; + let div26; + let input4; + let current; + let mounted; + let dispose; + bookmarkletsettingsgroup = new BookmarkletSettingsGroup_default({ + props: { + clipperHref: ctx[0], + noteOrVault: ctx[2] + } + }); + extensionsettingsgroup = new ExtensionSettingsGroup_default({ + props: { + clipperHref: ctx[0], + noteOrVault: ctx[2] + } + }); + let if_block = ctx[1].experimentalBookmarkletComment && create_if_block5(ctx); + return { + c() { + div0 = element("div"); + create_component(bookmarkletsettingsgroup.$$.fragment); + t0 = space(); + create_component(extensionsettingsgroup.$$.fragment); + t1 = space(); + div28 = element("div"); + h10 = element("h1"); + h10.textContent = "Bookmarklet Settings"; + t3 = space(); + if (if_block) + if_block.c(); + t4 = space(); + div2 = element("div"); + div2.innerHTML = `

    Markdown Headings

    `; + t6 = space(); + div7 = element("div"); + div5 = element("div"); + div5.innerHTML = `
    H2
    +
    What should replace H2 elements found in the highlight data?
    `; + t10 = space(); + div6 = element("div"); + input0 = element("input"); + t11 = space(); + div12 = element("div"); + div10 = element("div"); + div10.innerHTML = `
    H3
    +
    What should replace H3 elements found in the highlight data?
    `; + t15 = space(); + div11 = element("div"); + input1 = element("input"); + t16 = space(); + div17 = element("div"); + div15 = element("div"); + div15.innerHTML = `
    H4
    +
    What should replace H4 elements found in the highlight data?
    `; + t20 = space(); + div16 = element("div"); + input2 = element("input"); + t21 = space(); + div22 = element("div"); + div20 = element("div"); + div20.innerHTML = `
    H5
    +
    What should replace H5 elements found in the highlight data?
    `; + t25 = space(); + div21 = element("div"); + input3 = element("input"); + t26 = space(); + div27 = element("div"); + div25 = element("div"); + div25.innerHTML = `
    H6
    +
    What should replace H6 elements found in the highlight data?
    `; + t30 = space(); + div26 = element("div"); + input4 = element("input"); + attr(div0, "class", "clp_section_margin"); + attr(div2, "class", "setting-item"); + attr(div5, "class", "setting-item-info"); + attr(input0, "type", "text"); + attr(input0, "spellcheck", "false"); + attr(input0, "placeholder", ""); + attr(div6, "class", "setting-item-control"); + attr(div7, "class", "setting-item"); + attr(div10, "class", "setting-item-info"); + attr(input1, "type", "text"); + attr(input1, "spellcheck", "false"); + attr(input1, "placeholder", ""); + attr(div11, "class", "setting-item-control"); + attr(div12, "class", "setting-item"); + attr(div15, "class", "setting-item-info"); + attr(input2, "type", "text"); + attr(input2, "spellcheck", "false"); + attr(input2, "placeholder", ""); + attr(div16, "class", "setting-item-control"); + attr(div17, "class", "setting-item"); + attr(div20, "class", "setting-item-info"); + attr(input3, "type", "text"); + attr(input3, "spellcheck", "false"); + attr(input3, "placeholder", ""); + attr(div21, "class", "setting-item-control"); + attr(div22, "class", "setting-item"); + attr(div25, "class", "setting-item-info"); + attr(input4, "type", "text"); + attr(input4, "spellcheck", "false"); + attr(input4, "placeholder", ""); + attr(div26, "class", "setting-item-control"); + attr(div27, "class", "setting-item"); + attr(div28, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div0, anchor); + mount_component(bookmarkletsettingsgroup, div0, null); + append(div0, t0); + mount_component(extensionsettingsgroup, div0, null); + insert(target, t1, anchor); + insert(target, div28, anchor); + append(div28, h10); + append(div28, t3); + if (if_block) + if_block.m(div28, null); + append(div28, t4); + append(div28, div2); + append(div28, t6); + append(div28, div7); + append(div7, div5); + append(div7, t10); + append(div7, div6); + append(div6, input0); + set_input_value(input0, ctx[1].markdownSettings.h2); + append(div28, t11); + append(div28, div12); + append(div12, div10); + append(div12, t15); + append(div12, div11); + append(div11, input1); + set_input_value(input1, ctx[1].markdownSettings.h3); + append(div28, t16); + append(div28, div17); + append(div17, div15); + append(div17, t20); + append(div17, div16); + append(div16, input2); + set_input_value(input2, ctx[1].markdownSettings.h4); + append(div28, t21); + append(div28, div22); + append(div22, div20); + append(div22, t25); + append(div22, div21); + append(div21, input3); + set_input_value(input3, ctx[1].markdownSettings.h5); + append(div28, t26); + append(div28, div27); + append(div27, div25); + append(div27, t30); + append(div27, div26); + append(div26, input4); + set_input_value(input4, ctx[1].markdownSettings.h6); + current = true; + if (!mounted) { + dispose = [ + listen(input0, "input", ctx[7]), + listen(input1, "input", ctx[8]), + listen(input2, "input", ctx[9]), + listen(input3, "input", ctx[10]), + listen(input4, "input", ctx[11]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + const bookmarkletsettingsgroup_changes = {}; + if (dirty & 1) + bookmarkletsettingsgroup_changes.clipperHref = ctx2[0]; + bookmarkletsettingsgroup.$set(bookmarkletsettingsgroup_changes); + const extensionsettingsgroup_changes = {}; + if (dirty & 1) + extensionsettingsgroup_changes.clipperHref = ctx2[0]; + extensionsettingsgroup.$set(extensionsettingsgroup_changes); + if (ctx2[1].experimentalBookmarkletComment) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block5(ctx2); + if_block.c(); + if_block.m(div28, t4); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & 2 && input0.value !== ctx2[1].markdownSettings.h2) { + set_input_value(input0, ctx2[1].markdownSettings.h2); + } + if (dirty & 2 && input1.value !== ctx2[1].markdownSettings.h3) { + set_input_value(input1, ctx2[1].markdownSettings.h3); + } + if (dirty & 2 && input2.value !== ctx2[1].markdownSettings.h4) { + set_input_value(input2, ctx2[1].markdownSettings.h4); + } + if (dirty & 2 && input3.value !== ctx2[1].markdownSettings.h5) { + set_input_value(input3, ctx2[1].markdownSettings.h5); + } + if (dirty & 2 && input4.value !== ctx2[1].markdownSettings.h6) { + set_input_value(input4, ctx2[1].markdownSettings.h6); + } + }, + i(local) { + if (current) + return; + transition_in(bookmarkletsettingsgroup.$$.fragment, local); + transition_in(extensionsettingsgroup.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(bookmarkletsettingsgroup.$$.fragment, local); + transition_out(extensionsettingsgroup.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) + detach(div0); + destroy_component(bookmarkletsettingsgroup); + destroy_component(extensionsettingsgroup); + if (detaching) + detach(t1); + if (detaching) + detach(div28); + if (if_block) + if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function instance12($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(1, $settings = $$value)); + let { vaultName = "" } = $$props; + let { filePath = "" } = $$props; + let fileName = ""; + if (filePath !== "") { + fileName = getFileName(filePath); + } + let noteOrVault = fileName !== "" ? `${fileName} file` : `${vaultName} vault`; + let clipperHref = new BookmarketlGenerator(vaultName, filePath, $settings.markdownSettings, ($settings.experimentalBookmarkletComment && $settings.captureComments).toString()).generateBookmarklet(); + let updateClipperHref = () => { + $$invalidate(0, clipperHref = new BookmarketlGenerator(vaultName, filePath, $settings.markdownSettings, ($settings.experimentalBookmarkletComment && $settings.captureComments).toString()).generateBookmarklet()); + }; + function input_change_handler() { + $settings.captureComments = this.checked; + settings.set($settings); + } + function input0_input_handler() { + $settings.markdownSettings.h2 = this.value; + settings.set($settings); + } + function input1_input_handler() { + $settings.markdownSettings.h3 = this.value; + settings.set($settings); + } + function input2_input_handler() { + $settings.markdownSettings.h4 = this.value; + settings.set($settings); + } + function input3_input_handler() { + $settings.markdownSettings.h5 = this.value; + settings.set($settings); + } + function input4_input_handler() { + $settings.markdownSettings.h6 = this.value; + settings.set($settings); + } + $$self.$$set = ($$props2) => { + if ("vaultName" in $$props2) + $$invalidate(4, vaultName = $$props2.vaultName); + if ("filePath" in $$props2) + $$invalidate(5, filePath = $$props2.filePath); + }; + return [ + clipperHref, + $settings, + noteOrVault, + updateClipperHref, + vaultName, + filePath, + input_change_handler, + input0_input_handler, + input1_input_handler, + input2_input_handler, + input3_input_handler, + input4_input_handler + ]; +} +var LinksSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance12, create_fragment12, safe_not_equal, { vaultName: 4, filePath: 5 }); + } +}; +var LinksSettingsGroup_default = LinksSettingsGroup; + +// src/settings/AdvancedSettingsGroup.svelte +function create_if_block6(ctx) { + let div5; + let div4; + let div2; + let t3; + let div3; + let input; + let div5_intro; + let div5_outro; + let current; + let mounted; + let dispose; + return { + c() { + div5 = element("div"); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Clipped Entry Storage Location
    +
    Choose the folder to store all of your clippings. A note per domain + clipped from. Default is a \`clippings\`
    `; + t3 = space(); + div3 = element("div"); + input = element("input"); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", "false"); + attr(input, "placeholder", ""); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div5, anchor); + append(div5, div4); + append(div4, div2); + append(div4, t3); + append(div4, div3); + append(div3, input); + set_input_value(input, ctx[0].advancedStorageFolder); + current = true; + if (!mounted) { + dispose = listen(input, "input", ctx[2]); + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty & 1 && input.value !== ctx2[0].advancedStorageFolder) { + set_input_value(input, ctx2[0].advancedStorageFolder); + } + }, + i(local) { + if (current) + return; + if (local) { + add_render_callback(() => { + if (div5_outro) + div5_outro.end(1); + div5_intro = create_in_transition(div5, slide, { duration: 300 }); + div5_intro.start(); + }); + } + current = true; + }, + o(local) { + if (div5_intro) + div5_intro.invalidate(); + if (local) { + div5_outro = create_out_transition(div5, slide, { duration: 300 }); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div5); + if (detaching && div5_outro) + div5_outro.end(); + mounted = false; + dispose(); + } + }; +} +function create_fragment13(ctx) { + let div5; + let h10; + let t1; + let div4; + let div2; + let t5; + let div3; + let label0; + let input0; + let t6; + let t7; + let div13; + let h11; + let t9; + let div8; + let div6; + let t11; + let div7; + let label1; + let input1; + let t12; + let div12; + let div10; + let t16; + let div11; + let label2; + let input2; + let mounted; + let dispose; + let if_block = ctx[0].advanced && create_if_block6(ctx); + return { + c() { + div5 = element("div"); + h10 = element("h1"); + h10.textContent = "Advanced Settings"; + t1 = space(); + div4 = element("div"); + div2 = element("div"); + div2.innerHTML = `
    Store Clippings Per Domain
    +
    Creates a note per top-level domain and stores all clippings from that + domain within it. It will add an embedded document link in your Daily + Note.
    `; + t5 = space(); + div3 = element("div"); + label0 = element("label"); + input0 = element("input"); + t6 = space(); + if (if_block) + if_block.c(); + t7 = space(); + div13 = element("div"); + h11 = element("h1"); + h11.textContent = "Experimental Settings"; + t9 = space(); + div8 = element("div"); + div6 = element("div"); + div6.innerHTML = `

    Support Canvas

    `; + t11 = space(); + div7 = element("div"); + label1 = element("label"); + input1 = element("input"); + t12 = space(); + div12 = element("div"); + div10 = element("div"); + div10.innerHTML = `

    Comment Support in Browser

    +
    After enabling this option, you must go to the 'Browser' tab, update + your settings to turn on the 'Capture Comment in Browser' setting and + reinstall the bookmarklet.
    `; + t16 = space(); + div11 = element("div"); + label2 = element("label"); + input2 = element("input"); + attr(div2, "class", "setting-item-info"); + attr(input0, "type", "checkbox"); + attr(label0, "class", "checkbox-container"); + toggle_class(label0, "is-enabled", ctx[0].advanced); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item mod-toggle"); + attr(div5, "class", "clp_section_margin"); + attr(div6, "class", "setting-item-info"); + attr(input1, "type", "checkbox"); + attr(label1, "class", "checkbox-container"); + toggle_class(label1, "is-enabled", ctx[0].experimentalCanvas); + attr(div7, "class", "setting-item-control"); + attr(div8, "class", "setting-item mod-toggle"); + attr(div10, "class", "setting-item-info"); + attr(input2, "type", "checkbox"); + attr(label2, "class", "checkbox-container"); + toggle_class(label2, "is-enabled", ctx[0].experimentalBookmarkletComment); + attr(div11, "class", "setting-item-control"); + attr(div12, "class", "setting-item mod-toggle"); + set_style(div12, "border-top", "none", 1); + attr(div13, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div5, anchor); + append(div5, h10); + append(div5, t1); + append(div5, div4); + append(div4, div2); + append(div4, t5); + append(div4, div3); + append(div3, label0); + append(label0, input0); + input0.checked = ctx[0].advanced; + append(div5, t6); + if (if_block) + if_block.m(div5, null); + insert(target, t7, anchor); + insert(target, div13, anchor); + append(div13, h11); + append(div13, t9); + append(div13, div8); + append(div8, div6); + append(div8, t11); + append(div8, div7); + append(div7, label1); + append(label1, input1); + input1.checked = ctx[0].experimentalCanvas; + append(div13, t12); + append(div13, div12); + append(div12, div10); + append(div12, t16); + append(div12, div11); + append(div11, label2); + append(label2, input2); + input2.checked = ctx[0].experimentalBookmarkletComment; + if (!mounted) { + dispose = [ + listen(input0, "change", ctx[1]), + listen(input1, "change", ctx[3]), + listen(input2, "change", ctx[4]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 1) { + input0.checked = ctx2[0].advanced; + } + if (dirty & 1) { + toggle_class(label0, "is-enabled", ctx2[0].advanced); + } + if (ctx2[0].advanced) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block6(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div5, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (dirty & 1) { + input1.checked = ctx2[0].experimentalCanvas; + } + if (dirty & 1) { + toggle_class(label1, "is-enabled", ctx2[0].experimentalCanvas); + } + if (dirty & 1) { + input2.checked = ctx2[0].experimentalBookmarkletComment; + } + if (dirty & 1) { + toggle_class(label2, "is-enabled", ctx2[0].experimentalBookmarkletComment); + } + }, + i(local) { + transition_in(if_block); + }, + o(local) { + transition_out(if_block); + }, + d(detaching) { + if (detaching) + detach(div5); + if (if_block) + if_block.d(); + if (detaching) + detach(t7); + if (detaching) + detach(div13); + mounted = false; + run_all(dispose); + } + }; +} +function instance13($$self, $$props, $$invalidate) { + let $settings; + component_subscribe($$self, settings, ($$value) => $$invalidate(0, $settings = $$value)); + function input0_change_handler() { + $settings.advanced = this.checked; + settings.set($settings); + } + function input_input_handler() { + $settings.advancedStorageFolder = this.value; + settings.set($settings); + } + function input1_change_handler() { + $settings.experimentalCanvas = this.checked; + settings.set($settings); + } + function input2_change_handler() { + $settings.experimentalBookmarkletComment = this.checked; + settings.set($settings); + } + return [ + $settings, + input0_change_handler, + input_input_handler, + input1_change_handler, + input2_change_handler + ]; +} +var AdvancedSettingsGroup = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance13, create_fragment13, safe_not_equal, {}); + } +}; +var AdvancedSettingsGroup_default = AdvancedSettingsGroup; + +// src/settings/SettingsComponent.svelte +function create_noticeText_slot(ctx) { + let span; + return { + c() { + span = element("span"); + span.textContent = `${noticeText}`; + attr(span, "slot", "noticeText"); + }, + m(target, anchor) { + insert(target, span, anchor); + }, + p: noop, + d(detaching) { + if (detaching) + detach(span); + } + }; +} +function create_calloutLink_slot(ctx) { + let span1; + return { + c() { + span1 = element("span"); + span1.innerHTML = `Details + `; + attr(span1, "slot", "calloutLink"); + }, + m(target, anchor) { + insert(target, span1, anchor); + }, + p: noop, + d(detaching) { + if (detaching) + detach(span1); + } + }; +} +function create_fragment14(ctx) { + let notice; + let t0; + let br; + let t1; + let tabs_1; + let current; + notice = new Notice_default({ + props: { + $$slots: { + calloutLink: [create_calloutLink_slot], + noticeText: [create_noticeText_slot] + }, + $$scope: { ctx } + } + }); + tabs_1 = new Tabs_default({ props: { tabs: ctx[0] } }); + return { + c() { + create_component(notice.$$.fragment); + t0 = space(); + br = element("br"); + t1 = space(); + create_component(tabs_1.$$.fragment); + }, + m(target, anchor) { + mount_component(notice, target, anchor); + insert(target, t0, anchor); + insert(target, br, anchor); + insert(target, t1, anchor); + mount_component(tabs_1, target, anchor); + current = true; + }, + p(ctx2, [dirty]) { + const notice_changes = {}; + if (dirty & 8) { + notice_changes.$$scope = { dirty, ctx: ctx2 }; + } + notice.$set(notice_changes); + }, + i(local) { + if (current) + return; + transition_in(notice.$$.fragment, local); + transition_in(tabs_1.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(notice.$$.fragment, local); + transition_out(tabs_1.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(notice, detaching); + if (detaching) + detach(t0); + if (detaching) + detach(br); + if (detaching) + detach(t1); + destroy_component(tabs_1, detaching); + } + }; +} +var noticeText = "Lost on how to get started? Check out the new documentation website"; +function instance14($$self, $$props, $$invalidate) { + let { app } = $$props; + const vaultName = app.vault.getName(); + let tabs = [ + { + label: "Base", + value: 1, + component: BaseSettingsTab_default, + props: { app } + }, + { + label: "Topic Note", + value: 2, + component: TopicSettingsTab_default, + props: { app } + }, + { + label: "Browser", + value: 3, + component: LinksSettingsGroup_default, + props: { vaultName } + }, + { + label: "Advanced", + value: 4, + component: AdvancedSettingsGroup_default, + props: { app } + } + ]; + $$self.$$set = ($$props2) => { + if ("app" in $$props2) + $$invalidate(1, app = $$props2.app); + }; + return [tabs, app]; +} +var SettingsComponent = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance14, create_fragment14, safe_not_equal, { app: 1 }); + } +}; +var SettingsComponent_default = SettingsComponent; + +// src/modals/BookmarkletModalComponent.svelte +function create_if_block7(ctx) { + let notice; + let current; + notice = new Notice_default({ + props: { + $$slots: { noticeText: [create_noticeText_slot2] }, + $$scope: { ctx } + } + }); + return { + c() { + create_component(notice.$$.fragment); + }, + m(target, anchor) { + mount_component(notice, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const notice_changes = {}; + if (dirty & 9) { + notice_changes.$$scope = { dirty, ctx: ctx2 }; + } + notice.$set(notice_changes); + }, + i(local) { + if (current) + return; + transition_in(notice.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(notice.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(notice, detaching); + } + }; +} +function create_noticeText_slot2(ctx) { + let span; + let t; + return { + c() { + span = element("span"); + t = text(ctx[0]); + attr(span, "slot", "noticeText"); + }, + m(target, anchor) { + insert(target, span, anchor); + append(span, t); + }, + p(ctx2, dirty) { + if (dirty & 1) + set_data(t, ctx2[0]); + }, + d(detaching) { + if (detaching) + detach(span); + } + }; +} +function create_fragment15(ctx) { + let div; + let t; + let linkssettingsgroup; + let current; + let if_block = ctx[0] && create_if_block7(ctx); + linkssettingsgroup = new LinksSettingsGroup_default({ + props: { + vaultName: ctx[1], + filePath: ctx[2] + } + }); + return { + c() { + div = element("div"); + if (if_block) + if_block.c(); + t = space(); + create_component(linkssettingsgroup.$$.fragment); + attr(div, "class", "clp_section_margin"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (if_block) + if_block.m(div, null); + append(div, t); + mount_component(linkssettingsgroup, div, null); + current = true; + }, + p(ctx2, [dirty]) { + if (ctx2[0]) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block7(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div, t); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + const linkssettingsgroup_changes = {}; + if (dirty & 2) + linkssettingsgroup_changes.vaultName = ctx2[1]; + if (dirty & 4) + linkssettingsgroup_changes.filePath = ctx2[2]; + linkssettingsgroup.$set(linkssettingsgroup_changes); + }, + i(local) { + if (current) + return; + transition_in(if_block); + transition_in(linkssettingsgroup.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(if_block); + transition_out(linkssettingsgroup.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if (if_block) + if_block.d(); + destroy_component(linkssettingsgroup); + } + }; +} +function instance15($$self, $$props, $$invalidate) { + let { noticeText: noticeText2 } = $$props; + let { vaultName } = $$props; + let { filePath = "" } = $$props; + $$self.$$set = ($$props2) => { + if ("noticeText" in $$props2) + $$invalidate(0, noticeText2 = $$props2.noticeText); + if ("vaultName" in $$props2) + $$invalidate(1, vaultName = $$props2.vaultName); + if ("filePath" in $$props2) + $$invalidate(2, filePath = $$props2.filePath); + }; + return [noticeText2, vaultName, filePath]; +} +var BookmarkletModalComponent = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance15, create_fragment15, safe_not_equal, { noticeText: 0, vaultName: 1, filePath: 2 }); + } +}; +var BookmarkletModalComponent_default = BookmarkletModalComponent; + +// src/topicnoteentry.ts +var TopicNoteEntry = class extends NoteEntry { + async writeToNote(file, noteEntry) { + Utility.assertNotNull(file); + this.handleWrite(file.path, await noteEntry.formattedEntry(this.template)); + } +}; + +// src/advancednotes/advancednoteentry.ts +var import_obsidian6 = require("obsidian"); +var AdvancedNoteEntry = class extends NoteEntry { + constructor(app, storageFolder) { + super(app, false, SectionPosition.APPEND, ""); + this.storageFolder = storageFolder; + } + async writeToAdvancedNoteStorage(hostName, data, url) { + const noteFilePath = `${this.storageFolder}/${hostName}.md`; + const folder = this.app.vault.getAbstractFileByPath(this.storageFolder); + let file = this.app.vault.getAbstractFileByPath(noteFilePath); + const sectionHeader = window.moment().toISOString().replaceAll(":", "-"); + const entry = ` +# ${sectionHeader} + ${data} +[^1] + + [^1]: ${url} +`; + if (!(file instanceof import_obsidian6.TFile)) { + if (!(folder instanceof import_obsidian6.TFolder)) { + this.app.vault.createFolder(this.storageFolder); + await new Promise((r) => setTimeout(r, 50)); + } + file = await this.app.vault.create(noteFilePath, entry); + } else { + new AppendWriter(this.app, this.openFileOnWrite).write(file, entry); + } + await new Promise((r) => setTimeout(r, 50)); + if (!file) { + const errorMessage = `Unable to create clipper storage file. Most likely ${this.storageFolder} doesn't exist and we were unable to create it.`; + console.error(errorMessage); + new import_obsidian6.Notice(errorMessage); + throw Error(errorMessage); + } + return `![[${this.storageFolder}/${hostName}#${sectionHeader}|clipped]]`; + } +}; + +// src/canvasentry.ts +var import_crypto = require("crypto"); +var import_dagre = __toESM(require_dagre()); +var CanvasEntry = class { + constructor(app) { + this.app = app; + } + async writeToCanvas(file, noteEntry) { + const content = noteEntry.getEntryContent(); + Utility.assertNotNull(content); + const fileData = await this.app.vault.read(file); + const canvasData = JSON.parse(fileData); + const newNode = this.createTextNode(canvasData.nodes, `${content} +[^1] + +[^1](${noteEntry.getUrl()})`, { + width: 600, + height: 400 + }); + const domainNode = this.findDomainNodeOrCreate(canvasData, Utility.parseDomainFromUrl(noteEntry.getUrl())); + canvasData.nodes.push(newNode); + this.linkNewNodeToDomainNode(canvasData, domainNode, newNode); + const layout = this.processWithDagre(canvasData); + const nodesWithLayout = []; + layout.nodes().forEach((element2) => { + const nodeData = layout.node(element2); + console.log(nodeData); + const label = nodeData.label; + Utility.assertNotNull(label); + nodesWithLayout.push({ + id: element2, + type: "text", + text: label, + width: nodeData.width, + height: nodeData.height, + x: nodeData.x, + y: nodeData.y + }); + }); + canvasData.nodes = nodesWithLayout; + await this.app.vault.modify(file, JSON.stringify(canvasData)); + await new Promise((r) => setTimeout(r, 50)); + } + findDomainNodeOrCreate(canvasData, domain) { + if (!canvasData.nodes) { + canvasData.nodes = []; + } + let domainNode = canvasData.nodes.find((node) => node.text === domain); + if (!domainNode) { + domainNode = this.createTextNode(canvasData.nodes, domain); + canvasData.nodes.push(domainNode); + } + return domainNode; + } + createTextNode(nodes, content, options = { width: 240, height: 50 }) { + const { x, y } = this.getPositionCoordinatesForNewNode(nodes); + return { + id: (0, import_crypto.randomUUID)(), + type: "text", + text: content, + x, + y, + width: options.width, + height: options.height, + createdBy: "obsidian-clipper" + }; + } + getPositionCoordinatesForNewNode(nodes) { + return { x: -1300, y: -800 }; + } + linkNewNodeToDomainNode(canvasData, domainNode, newNode) { + const edge = { + id: (0, import_crypto.randomUUID)(), + fromNode: newNode.id, + fromSide: "top", + toNode: domainNode.id, + toSide: "bottom" + }; + if (!canvasData.edges) { + canvasData.edges = []; + } + canvasData.edges.push(edge); + } + processWithDagre(canvasData) { + const g = new import_dagre.default.graphlib.Graph({ directed: true, multigraph: true }); + g.setGraph({}); + g.setDefaultEdgeLabel(function() { + return {}; + }); + canvasData.nodes.forEach((node) => { + g.setNode(node.id, { + label: node.text, + width: node.width, + height: node.height, + createdBy: node.createdBy, + type: node.type, + x: node.x, + y: node.y + }); + }); + canvasData.edges.forEach((edge) => { + g.setEdge(edge.toNode, edge.fromNode); + }); + import_dagre.default.layout(g, { rankdir: "lr", align: "dr", ranker: "tight-tree" }); + return g; + } +}; + +// src/main.ts +var ObsidianClipperPlugin = class extends import_obsidian7.Plugin { + async onload() { + await this.loadSettings(); + this.addSettingTab(new SettingTab(this.app, this)); + this.addCommand({ + id: "copy-bookmarklet-address-clipboard", + name: "Vault Bookmarklet to Clipboard", + callback: () => this.handleCopyBookmarkletToClipboard() + }); + this.addCommand({ + id: "copy-bookmarklet-address", + name: "Vault Bookmarklet", + callback: () => this.handleCopyBookmarkletCommand() + }); + this.addCommand({ + id: "copy-note-bookmarklet-address-clipboard", + name: "Topic Bookmarklet to Clipboard", + editorCallback: (_editor, ctx) => { + var _a; + this.handleCopyBookmarkletToClipboard((_a = ctx.file) == null ? void 0 : _a.path); + } + }); + this.addCommand({ + id: "copy-note-bookmarklet-address", + name: "Topic Bookmarklet", + editorCallback: (_editor, ctx) => { + var _a; + this.handleCopyBookmarkletCommand(false, (_a = ctx.file) == null ? void 0 : _a.path); + } + }); + this.addCommand({ + id: "copy-note-bookmarklet-address-canvas", + name: "Canvas Bookmarklet", + checkCallback: (checking) => { + var _a; + if (checking) { + return this.settings.experimentalCanvas && ((_a = this.app.workspace.getActiveViewOfType(import_obsidian7.View)) == null ? void 0 : _a.file.extension) === "canvas"; + } else { + const ctx = this.app.workspace.getActiveViewOfType(import_obsidian7.View); + if (ctx) { + this.handleCopyBookmarkletCommand(false, ctx.file.path); + } + } + } + }); + this.registerObsidianProtocolHandler("obsidian-clipper", async (e) => { + const parameters = e; + const url = parameters.url; + const title = parameters.title; + const notePath = parameters.notePath; + const highlightData = parameters.highlightdata; + const comments = parameters.comments; + if (parameters.format === "html") { + if (notePath !== "") { + this.handleCopyBookmarkletCommand(true, notePath); + } else { + this.handleCopyBookmarkletCommand(true); + } + return; + } + let entryReference = highlightData; + if (this.settings.advanced && highlightData) { + const domain = Utility.parseDomainFromUrl(url); + entryReference = await new AdvancedNoteEntry(this.app, this.settings.advancedStorageFolder).writeToAdvancedNoteStorage(domain, highlightData, url); + } + const noteEntry = new ClippedData(title, url, this.settings, this.app, entryReference, comments); + if (notePath && notePath !== "") { + const file = this.app.vault.getAbstractFileByPath(notePath); + if (file.extension === "canvas") { + new CanvasEntry(this.app).writeToCanvas(file, noteEntry); + } else { + new TopicNoteEntry(this.app, this.settings.topicOpenOnWrite, this.settings.topicPosition, this.settings.topicEntryTemplateLocation).writeToNote(file, noteEntry); + } + } else { + if (this.settings.useDailyNote) { + new DailyPeriodicNoteEntry(this.app, this.settings.dailyOpenOnWrite, this.settings.dailyPosition, this.settings.dailyEntryTemplateLocation).writeToPeriodicNote(noteEntry, this.settings.dailyNoteHeading); + } + if (this.settings.useWeeklyNote) { + new WeeklyPeriodicNoteEntry(this.app, this.settings.weeklyOpenOnWrite, this.settings.weeklyPosition, this.settings.weeklyEntryTemplateLocation).writeToPeriodicNote(noteEntry, this.settings.weeklyNoteHeading); + } + } + }); + } + async loadSettings() { + let mergedSettings = DEFAULT_SETTINGS; + const settingsData = await this.loadData(); + if (settingsData !== null) { + mergedSettings = deepmerge(DEFAULT_SETTINGS, settingsData); + } + this.settings = mergedSettings; + } + async saveSettings() { + await this.saveData(this.settings); + } + handleCopyBookmarkletToClipboard(notePath = "") { + navigator.clipboard.writeText(new BookmarketlGenerator(this.app.vault.getName(), notePath, this.settings.markdownSettings, (this.settings.experimentalBookmarkletComment && this.settings.captureComments).toString()).generateBookmarklet()); + new import_obsidian7.Notice("Obsidian Clipper Bookmarklet copied to clipboard."); + } + handleCopyBookmarkletCommand(updateRequired = false, filePath = "") { + let noticeText2 = ""; + if (updateRequired) { + noticeText2 = `Notice: Your Bookmarklet is out of date and needs to be updated. + Please Drag the link below to replace your current bookmarklet`; + } + const bookmarkletLinkModal = new import_obsidian7.Modal(this.app); + bookmarkletLinkModal.titleEl.createEl("h2", { + text: "Copy Your Bookmarklet" + }); + new BookmarkletModalComponent_default({ + target: bookmarkletLinkModal.contentEl, + props: { + noticeText: noticeText2, + vaultName: this.app.vault.getName(), + filePath + } + }); + bookmarkletLinkModal.open(); + } +}; +var SettingTab = class extends import_obsidian7.PluginSettingTab { + constructor(app, plugin) { + super(app, plugin); + this.plugin = plugin; + init2(this.plugin); + } + display() { + const { containerEl } = this; + containerEl.empty(); + this.view = new SettingsComponent_default({ + target: containerEl, + props: { + app: this.app + } + }); + } + async hide() { + super.hide(); + this.view.$destroy(); + } +}; + +/* nosourcemap */ \ No newline at end of file diff --git a/liph/.obsidian/plugins/obsidian-clipper/manifest.json b/liph/.obsidian/plugins/obsidian-clipper/manifest.json new file mode 100755 index 0000000..2471a68 --- /dev/null +++ b/liph/.obsidian/plugins/obsidian-clipper/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "obsidian-clipper", + "name": "Clipper", + "version": "0.2.9", + "minAppVersion": "0.15.0", + "description": "This plugin helps you capture highlights from the web.", + "author": "John Christopher", + "authorUrl": "https://github.com/jgchristopher/", + "fundingUrl": "https://www.buymeacoffee.com/jgchristopher", + "isDesktopOnly": false +} diff --git a/liph/.obsidian/plugins/obsidian-clipper/styles.css b/liph/.obsidian/plugins/obsidian-clipper/styles.css new file mode 100755 index 0000000..ac2a55e --- /dev/null +++ b/liph/.obsidian/plugins/obsidian-clipper/styles.css @@ -0,0 +1,127 @@ +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.h-5 { + height: 1.25rem; +} + +.w-5 { + width: 1.25rem; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.basis-0 { + flex-basis: 0px; +} + +.flex-row { + flex-direction: row; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.border { + border-width: 1px; +} + +.bg-blue-50 { + --tw-bg-opacity: 1; + background-color: rgb(239 246 255 / var(--tw-bg-opacity)); +} + +.p-4 { + padding: 1rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.font-extrabold { + font-weight: 800; +} + +.font-medium { + font-weight: 500; +} + +.text-blue-400 { + --tw-text-opacity: 1; + color: rgb(96 165 250 / var(--tw-text-opacity)); +} + +.text-blue-700 { + --tw-text-opacity: 1; + color: rgb(29 78 216 / var(--tw-text-opacity)); +} + +a { + color: var(--link-color); +} + +div.clp_section_margin { + margin: 0 0 20px 0 !important; +} + +.internal-embed[alt="clipped"] h1 { + display: none; +} + +.hover\:text-blue-600:hover { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} + +@media (min-width: 768px) { + .md\:ml-6 { + margin-left: 1.5rem; + } + + .md\:mt-0 { + margin-top: 0px; + } + + .md\:flex { + display: flex; + } + + .md\:justify-between { + justify-content: space-between; + } +} diff --git a/liph/.obsidian/plugins/obsidian-icon-folder/data.json b/liph/.obsidian/plugins/obsidian-icon-folder/data.json index d801b21..e451b2e 100755 --- a/liph/.obsidian/plugins/obsidian-icon-folder/data.json +++ b/liph/.obsidian/plugins/obsidian-icon-folder/data.json @@ -2,10 +2,16 @@ "settings": { "migrated": 6, "iconPacksPath": ".obsidian/icons", - "fontSize": 16, + "fontSize": 13, "emojiStyle": "native", "iconColor": null, - "recentlyUsedIcons": [], + "recentlyUsedIcons": [ + "LiCloud", + "TiCategory", + "TiLibrary", + "TiTemplate", + "LiHeartHandshake" + ], "recentlyUsedIconsSize": 5, "rules": [], "extraMargin": { @@ -17,7 +23,7 @@ "iconInTabsEnabled": false, "iconInTitleEnabled": false, "iconInTitlePosition": "above", - "iconInFrontmatterEnabled": false, + "iconInFrontmatterEnabled": true, "iconInFrontmatterFieldName": "icon", "iconColorInFrontmatterFieldName": "iconColor", "iconsBackgroundCheckEnabled": false, @@ -27,5 +33,14 @@ "lucideIconPackType": "native", "debugMode": false, "useInternalPlugins": false - } + }, + "Tasks": "LiCheckSquare", + "Notes": "LiStickyNote", + "programming": "LiComputer", + "Breathwork": "LiHeartHandshake", + "_templates": "TiTemplate", + "References": "TiLibrary", + "Categories": "TiCategory", + "Oracel": "LiCircle", + "Dreams": "LiCloud" } \ No newline at end of file diff --git a/liph/.obsidian/plugins/obsidian-tasks-plugin/data.json b/liph/.obsidian/plugins/obsidian-tasks-plugin/data.json index 298ab5a..052cf38 100755 --- a/liph/.obsidian/plugins/obsidian-tasks-plugin/data.json +++ b/liph/.obsidian/plugins/obsidian-tasks-plugin/data.json @@ -9,7 +9,7 @@ "hide_query_elements": "# Hide toolbar, postpone, edit and backlinks\nhide toolbar\nhide postpone button\nhide edit button\nhide backlinks", "hide_everything": "# Hide everything except description and any tags\npreset hide_date_fields\npreset hide_non_date_fields\npreset hide_query_elements" }, - "globalQuery": "path does not include _templated\npath does not include _utilitiesp", + "globalQuery": "path does not include _templates\npath does not include _utilities", "globalFilter": "", "removeGlobalFilter": false, "taskFormat": "tasksPluginEmoji", diff --git a/liph/.obsidian/plugins/omnisearch/data.json b/liph/.obsidian/plugins/omnisearch/data.json index 10cc509..c472569 100755 --- a/liph/.obsidian/plugins/omnisearch/data.json +++ b/liph/.obsidian/plugins/omnisearch/data.json @@ -14,7 +14,7 @@ "unsupportedFilesIndexing": "default", "splitCamelCase": false, "openInNewPane": false, - "vimLikeNavigationShortcut": false, + "vimLikeNavigationShortcut": true, "ribbonIcon": true, "showExcerpt": true, "maxEmbeds": 5, diff --git a/liph/.obsidian/plugins/periodic-notes/data.json b/liph/.obsidian/plugins/periodic-notes/data.json new file mode 100755 index 0000000..2d22d95 --- /dev/null +++ b/liph/.obsidian/plugins/periodic-notes/data.json @@ -0,0 +1,35 @@ +{ + "showGettingStartedBanner": true, + "hasMigratedDailyNoteSettings": false, + "hasMigratedWeeklyNoteSettings": true, + "daily": { + "format": "YYYY-MM-DD ddd", + "template": "_templates/Daily Notes.md", + "folder": "Notes/1-Daily", + "enabled": true + }, + "weekly": { + "format": "YYYY-WW", + "folder": "Notes/2-Weekly", + "template": "", + "enabled": true + }, + "monthly": { + "format": "", + "template": "", + "folder": "Notes/3-Monthly", + "enabled": true + }, + "quarterly": { + "format": "", + "template": "", + "folder": "Notes/4-Quarterly", + "enabled": true + }, + "yearly": { + "format": "", + "template": "", + "folder": "Notes/5-Yearly", + "enabled": true + } +} \ No newline at end of file diff --git a/liph/.obsidian/plugins/periodic-notes/main.js b/liph/.obsidian/plugins/periodic-notes/main.js new file mode 100755 index 0000000..64325e6 --- /dev/null +++ b/liph/.obsidian/plugins/periodic-notes/main.js @@ -0,0 +1,5561 @@ +'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_DAILY_NOTE_FORMAT = "YYYY-MM-DD"; +const DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww"; +const DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM"; +const DEFAULT_QUARTERLY_NOTE_FORMAT = "YYYY-[Q]Q"; +const DEFAULT_YEARLY_NOTE_FORMAT = "YYYY"; + +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); + } +} +/** + * Read the user settings for the `periodic-notes` plugin + * to keep behavior of creating a new note in-sync. + */ +function getQuarterlyNoteSettings() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const pluginManager = window.app.plugins; + try { + const settings = (shouldUsePeriodicNotesSettings("quarterly") && + pluginManager.getPlugin("periodic-notes")?.settings?.quarterly) || + {}; + return { + format: settings.format || DEFAULT_QUARTERLY_NOTE_FORMAT, + folder: settings.folder?.trim() || "", + template: settings.template?.trim() || "", + }; + } + catch (err) { + console.info("No custom quarterly note settings found!", err); + } +} +/** + * Read the user settings for the `periodic-notes` plugin + * to keep behavior of creating a new note in-sync. + */ +function getYearlyNoteSettings() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const pluginManager = window.app.plugins; + try { + const settings = (shouldUsePeriodicNotesSettings("yearly") && + pluginManager.getPlugin("periodic-notes")?.settings?.yearly) || + {}; + return { + format: settings.format || DEFAULT_YEARLY_NOTE_FORMAT, + folder: settings.folder?.trim() || "", + template: settings.template?.trim() || "", + }; + } + catch (err) { + console.info("No custom yearly note settings found!", err); + } +} + +// 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]; + } +} + +/** + * 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}`; +} +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) { + return getDateFromFilename(file.basename, granularity); +} +function getDateFromFilename(filename, granularity) { + const getSettings = { + day: getDailyNoteSettings, + week: getWeeklyNoteSettings, + month: getMonthlyNoteSettings, + quarter: getQuarterlyNoteSettings, + year: getYearlyNoteSettings, + }; + const format = getSettings[granularity]().format.split("/").pop(); + const noteDate = window.moment(filename, 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(filename, + // If format contains week, remove day & month formatting + format.replace(/M{1,4}/g, "").replace(/D{1,4}/g, ""), false); + } + } + } + return noteDate; +} + +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(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(date, "day"); + dailyNotes[dateString] = note; + } + } + }); + return dailyNotes; +} + +class WeeklyNotesFolderMissingError extends Error { +} +function getDaysOfWeek() { + 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().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(date, "week")] ?? null; +} +function getAllWeeklyNotes() { + const weeklyNotes = {}; + if (!appHasWeeklyNotesPluginLoaded()) { + return weeklyNotes; + } + 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"); + } + obsidian__default['default'].Vault.recurseChildren(weeklyNotesFolder, (note) => { + if (note instanceof obsidian__default['default'].TFile) { + const date = getDateFromFile(note, "week"); + if (date) { + const dateString = getDateUID(date, "week"); + weeklyNotes[dateString] = note; + } + } + }); + return weeklyNotes; +} + +class MonthlyNotesFolderMissingError 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 createMonthlyNote(date) { + const { vault } = window.app; + const { template, format, folder } = getMonthlyNoteSettings(); + 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*date\s*}}/gi, filename) + .replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")) + .replace(/{{\s*title\s*}}/gi, filename)); + // 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 getMonthlyNote(date, monthlyNotes) { + return monthlyNotes[getDateUID(date, "month")] ?? null; +} +function getAllMonthlyNotes() { + const monthlyNotes = {}; + if (!appHasMonthlyNotesPluginLoaded()) { + return monthlyNotes; + } + const { vault } = window.app; + const { folder } = getMonthlyNoteSettings(); + const monthlyNotesFolder = vault.getAbstractFileByPath(obsidian__default['default'].normalizePath(folder)); + if (!monthlyNotesFolder) { + throw new MonthlyNotesFolderMissingError("Failed to find monthly notes folder"); + } + obsidian__default['default'].Vault.recurseChildren(monthlyNotesFolder, (note) => { + if (note instanceof obsidian__default['default'].TFile) { + const date = getDateFromFile(note, "month"); + if (date) { + const dateString = getDateUID(date, "month"); + monthlyNotes[dateString] = note; + } + } + }); + return monthlyNotes; +} + +class QuarterlyNotesFolderMissingError 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 createQuarterlyNote(date) { + const { vault } = window.app; + const { template, format, folder } = getQuarterlyNoteSettings(); + 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*date\s*}}/gi, filename) + .replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")) + .replace(/{{\s*title\s*}}/gi, filename)); + // 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 getQuarterlyNote(date, quarterly) { + return quarterly[getDateUID(date, "quarter")] ?? null; +} +function getAllQuarterlyNotes() { + const quarterly = {}; + if (!appHasQuarterlyNotesPluginLoaded()) { + return quarterly; + } + const { vault } = window.app; + const { folder } = getQuarterlyNoteSettings(); + const quarterlyFolder = vault.getAbstractFileByPath(obsidian__default['default'].normalizePath(folder)); + if (!quarterlyFolder) { + throw new QuarterlyNotesFolderMissingError("Failed to find quarterly notes folder"); + } + obsidian__default['default'].Vault.recurseChildren(quarterlyFolder, (note) => { + if (note instanceof obsidian__default['default'].TFile) { + const date = getDateFromFile(note, "quarter"); + if (date) { + const dateString = getDateUID(date, "quarter"); + quarterly[dateString] = note; + } + } + }); + return quarterly; +} + +class YearlyNotesFolderMissingError 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 createYearlyNote(date) { + const { vault } = window.app; + const { template, format, folder } = getYearlyNoteSettings(); + 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*date\s*}}/gi, filename) + .replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")) + .replace(/{{\s*title\s*}}/gi, filename)); + // 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 getYearlyNote(date, yearlyNotes) { + return yearlyNotes[getDateUID(date, "year")] ?? null; +} +function getAllYearlyNotes() { + const yearlyNotes = {}; + if (!appHasYearlyNotesPluginLoaded()) { + return yearlyNotes; + } + const { vault } = window.app; + const { folder } = getYearlyNoteSettings(); + const yearlyNotesFolder = vault.getAbstractFileByPath(obsidian__default['default'].normalizePath(folder)); + if (!yearlyNotesFolder) { + throw new YearlyNotesFolderMissingError("Failed to find yearly notes folder"); + } + obsidian__default['default'].Vault.recurseChildren(yearlyNotesFolder, (note) => { + if (note instanceof obsidian__default['default'].TFile) { + const date = getDateFromFile(note, "year"); + if (date) { + const dateString = getDateUID(date, "year"); + yearlyNotes[dateString] = note; + } + } + }); + return yearlyNotes; +} + +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; +} +/** + * XXX: "Weekly Notes" live in either the Calendar plugin or the periodic-notes plugin. + * Check both until the weekly notes feature is removed from the Calendar plugin. + */ +function appHasWeeklyNotesPluginLoaded() { + const { app } = window; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (app.plugins.getPlugin("calendar")) { + return true; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && periodicNotes.settings?.weekly?.enabled; +} +function appHasMonthlyNotesPluginLoaded() { + const { app } = window; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && periodicNotes.settings?.monthly?.enabled; +} +function appHasQuarterlyNotesPluginLoaded() { + const { app } = window; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && periodicNotes.settings?.quarterly?.enabled; +} +function appHasYearlyNotesPluginLoaded() { + const { app } = window; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const periodicNotes = app.plugins.getPlugin("periodic-notes"); + return periodicNotes && periodicNotes.settings?.yearly?.enabled; +} + +var DEFAULT_DAILY_NOTE_FORMAT_1 = DEFAULT_DAILY_NOTE_FORMAT; +var DEFAULT_MONTHLY_NOTE_FORMAT_1 = DEFAULT_MONTHLY_NOTE_FORMAT; +var DEFAULT_QUARTERLY_NOTE_FORMAT_1 = DEFAULT_QUARTERLY_NOTE_FORMAT; +var DEFAULT_WEEKLY_NOTE_FORMAT_1 = DEFAULT_WEEKLY_NOTE_FORMAT; +var DEFAULT_YEARLY_NOTE_FORMAT_1 = DEFAULT_YEARLY_NOTE_FORMAT; +var appHasDailyNotesPluginLoaded_1 = appHasDailyNotesPluginLoaded; +var createDailyNote_1 = createDailyNote; +var createMonthlyNote_1 = createMonthlyNote; +var createQuarterlyNote_1 = createQuarterlyNote; +var createWeeklyNote_1 = createWeeklyNote; +var createYearlyNote_1 = createYearlyNote; +var getAllDailyNotes_1 = getAllDailyNotes; +var getAllMonthlyNotes_1 = getAllMonthlyNotes; +var getAllQuarterlyNotes_1 = getAllQuarterlyNotes; +var getAllWeeklyNotes_1 = getAllWeeklyNotes; +var getAllYearlyNotes_1 = getAllYearlyNotes; +var getDailyNote_1 = getDailyNote; +var getDateFromFile_1 = getDateFromFile; +var getMonthlyNote_1 = getMonthlyNote; +var getQuarterlyNote_1 = getQuarterlyNote; +var getWeeklyNote_1 = getWeeklyNote; +var getYearlyNote_1 = getYearlyNote; + +const wrapAround = (value, size) => { + return ((value % size) + size) % size; +}; +function orderedValues(unordered) { + return Object.keys(unordered) + .sort() + .reduce((acc, key) => { + acc.push(unordered[key]); + return acc; + }, []); +} +function getCalendarPlugin() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return window.app.plugins.getPlugin("calendar"); +} +function getDailyNotesPlugin() { + var _a; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const { internalPlugins } = window.app; + return (_a = internalPlugins.getPluginById("daily-notes")) === null || _a === void 0 ? void 0 : _a.instance; +} +function capitalize(text) { + return text.charAt(0).toUpperCase() + text.slice(1); +} +function hasLegacyDailyNoteSettings() { + var _a; + if (!appHasDailyNotesPluginLoaded_1()) { + return false; + } + const options = (_a = getDailyNotesPlugin()) === null || _a === void 0 ? void 0 : _a.options; + return !!(options.format || options.folder || options.template); +} +function getLegacyDailyNoteSettings() { + var _a, _b; + const options = getDailyNotesPlugin().options || {}; + return { + format: options.format, + folder: (_a = options.folder) === null || _a === void 0 ? void 0 : _a.trim(), + template: (_b = options.template) === null || _b === void 0 ? void 0 : _b.trim(), + }; +} +function hasLegacyWeeklyNoteSettings() { + const calendarPlugin = getCalendarPlugin(); + if (!calendarPlugin) { + return false; + } + const options = calendarPlugin.options || {}; + return !!(options.weeklyNoteFormat || + options.weeklyNoteFolder || + options.weeklyNoteTemplate); +} +function getLegacyWeeklyNoteSettings() { + var _a, _b; + const options = getCalendarPlugin().options || {}; + return { + format: options.weeklyNoteFormat || "", + folder: ((_a = options.weeklyNoteFolder) === null || _a === void 0 ? void 0 : _a.trim()) || "", + template: ((_b = options.weeklyNoteTemplate) === null || _b === void 0 ? void 0 : _b.trim()) || "", + }; +} +function isMacOS() { + return navigator.appVersion.indexOf("Mac") !== -1; +} +function isMetaPressed(e) { + return isMacOS() ? e.metaKey : e.ctrlKey; +} + +const periodConfigs = { + daily: { + unitOfTime: "day", + relativeUnit: "today", + createNote: createDailyNote_1, + getNote: getDailyNote_1, + getAllNotes: getAllDailyNotes_1, + }, + weekly: { + unitOfTime: "week", + relativeUnit: "this week", + createNote: createWeeklyNote_1, + getNote: getWeeklyNote_1, + getAllNotes: getAllWeeklyNotes_1, + }, + monthly: { + unitOfTime: "month", + relativeUnit: "this month", + createNote: createMonthlyNote_1, + getNote: getMonthlyNote_1, + getAllNotes: getAllMonthlyNotes_1, + }, + quarterly: { + unitOfTime: "quarter", + relativeUnit: "this quarter", + createNote: createQuarterlyNote_1, + getNote: getQuarterlyNote_1, + getAllNotes: getAllQuarterlyNotes_1, + }, + yearly: { + unitOfTime: "year", + relativeUnit: "this year", + createNote: createYearlyNote_1, + getNote: getYearlyNote_1, + getAllNotes: getAllYearlyNotes_1, + }, +}; +async function openPeriodicNote(periodicity, date, inNewSplit) { + const config = periodConfigs[periodicity]; + const startOfPeriod = date.clone().startOf(config.unitOfTime); + let allNotes; + try { + allNotes = config.getAllNotes(); + } + catch (err) { + console.error(`failed to find your ${periodicity} notes folder`, err); + new obsidian.Notice(`Failed to find your ${periodicity} notes folder`); + return; + } + let periodicNote = config.getNote(startOfPeriod, allNotes); + if (!periodicNote) { + periodicNote = await config.createNote(startOfPeriod); + } + await openFile(periodicNote, inNewSplit); +} +function getActiveFile() { + const { workspace } = window.app; + const activeView = workspace.getActiveViewOfType(obsidian.MarkdownView); + return activeView === null || activeView === void 0 ? void 0 : activeView.file; +} +async function openFile(file, inNewSplit) { + const { workspace } = window.app; + const leaf = inNewSplit + ? workspace.splitActiveLeaf() + : workspace.getUnpinnedLeaf(); + await leaf.openFile(file, { active: true }); +} +async function openNextNote(periodicity) { + const config = periodConfigs[periodicity]; + const activeFile = getActiveFile(); + try { + const allNotes = orderedValues(config.getAllNotes()); + const activeNoteIndex = allNotes.findIndex((file) => file === activeFile); + const nextNote = allNotes[activeNoteIndex + 1]; + if (nextNote) { + await openFile(nextNote, false); + } + } + catch (err) { + console.error(`failed to find your ${periodicity} notes folder`, err); + new obsidian.Notice(`Failed to find your ${periodicity} notes folder`); + } +} +async function openPrevNote(periodicity) { + const config = periodConfigs[periodicity]; + const activeFile = getActiveFile(); + try { + const allNotes = orderedValues(config.getAllNotes()); + const activeNoteIndex = allNotes.findIndex((file) => file === activeFile); + const prevNote = allNotes[activeNoteIndex - 1]; + if (prevNote) { + await openFile(prevNote, false); + } + } + catch (err) { + console.error(`failed to find your ${periodicity} notes folder`, err); + new obsidian.Notice(`Failed to find your ${periodicity} notes folder`); + } +} +function getCommands(periodicity) { + const config = periodConfigs[periodicity]; + return [ + { + id: `open-${periodicity}-note`, + name: `Open ${periodicity} note`, + callback: () => openPeriodicNote(periodicity, window.moment(), false), + }, + { + id: `next-${periodicity}-note`, + name: `Open next ${periodicity} note`, + checkCallback: (checking) => { + if (checking) { + const activeFile = getActiveFile(); + return !!(activeFile && getDateFromFile_1(activeFile, config.unitOfTime)); + } + openNextNote(periodicity); + }, + }, + { + id: `prev-${periodicity}-note`, + name: `Open previous ${periodicity} note`, + checkCallback: (checking) => { + if (checking) { + const activeFile = getActiveFile(); + return !!(activeFile && getDateFromFile_1(activeFile, config.unitOfTime)); + } + openPrevNote(periodicity); + }, + }, + ]; +} + +const SETTINGS_UPDATED = "periodic-notes:settings-updated"; + +const calendarDayIcon = ` + + + + +`; +const calendarWeekIcon = ` + + + + +`; +const calendarMonthIcon = ` + + + + + +`; +const calendarQuarterIcon = ` + + + + +`; +const calendarYearIcon = ` + + + + +`; + +function showFileMenu(app, settings, position) { + const contextMenu = new obsidian.Menu(app); + ["daily", "weekly", "monthly"] + .filter((periodicity) => settings[periodicity].enabled) + .forEach((periodicity) => { + const config = periodConfigs[periodicity]; + contextMenu.addItem((item) => item + .setTitle(`Open ${config.relativeUnit}`) + .setIcon(`calendar-${config.unitOfTime}`) + .onClick(() => { + openPeriodicNote(periodicity, window.moment(), false); + })); + }); + contextMenu.showAtPosition(position); +} + +function noop() { } +const identity = x => x; +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 is_empty(obj) { + return Object.keys(obj).length === 0; +} +function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); +} +function set_store_value(store, ret, value = ret) { + store.set(value); + return ret; +} + +const is_client = typeof window !== 'undefined'; +let now = is_client + ? () => window.performance.now() + : () => Date.now(); +let raf = is_client ? cb => requestAnimationFrame(cb) : noop; + +const tasks = new Set(); +function run_tasks(now) { + tasks.forEach(task => { + if (!task.c(now)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); +} +/** + * Creates a new task that runs on each raf frame + * until it returns a falsy value or is aborted + */ +function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise(fulfill => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} + +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 children(element) { + return Array.from(element.childNodes); +} +function set_data(text, data) { + data = '' + data; + if (text.wholeText !== data) + text.data = data; +} +function set_input_value(input, value) { + input.value = value == null ? '' : value; +} +function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); +} +function custom_event(type, detail) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, false, false, detail); + return e; +} + +const active_docs = new Set(); +let active = 0; +// https://github.com/darkskyapp/string-hash/blob/master/index.js +function hash$2(str) { + let hash = 5381; + let i = str.length; + while (i--) + hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; +} +function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash$2(rule)}_${uid}`; + const doc = node.ownerDocument; + active_docs.add(doc); + const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet); + const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {}); + if (!current_rules[name]) { + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || '').split(', '); + const next = previous.filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(', '); + active -= deleted; + if (!active) + clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) + return; + active_docs.forEach(doc => { + const stylesheet = doc.__svelte_stylesheet; + let i = stylesheet.cssRules.length; + while (i--) + stylesheet.deleteRule(i); + doc.__svelte_rules = {}; + }); + active_docs.clear(); + }); +} + +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; +} +function onMount(fn) { + get_current_component().$$.on_mount.push(fn); +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} + +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); + } +} + +let promise; +function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); +} +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); + } +} +const null_transition = { duration: 0 }; +function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + function cleanup() { + if (animation_name) + delete_rule(node, animation_name); + } + function go() { + const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick(0, 1); + const start_time = now() + delay; + const end_time = start_time + duration; + if (task) + task.abort(); + running = true; + add_render_callback(() => dispatch(node, true, 'start')); + task = loop(now => { + if (running) { + if (now >= end_time) { + tick(1, 0); + dispatch(node, true, 'end'); + cleanup(); + return running = false; + } + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick(t, 1 - t); + } + } + return running; + }); + } + let started = false; + return { + start() { + if (started) + return; + delete_rule(node); + if (is_function(config)) { + config = config(); + wait().then(go); + } + else { + go(); + } + }, + invalidate() { + started = false; + }, + end() { + if (running) { + cleanup(); + running = false; + } + } + }; +} +function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + const group = outros; + group.r += 1; + function go() { + const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + const start_time = now() + delay; + const end_time = start_time + duration; + add_render_callback(() => dispatch(node, false, 'start')); + loop(now => { + if (running) { + if (now >= end_time) { + tick(0, 1); + dispatch(node, false, 'end'); + if (!--group.r) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.c); + } + return false; + } + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick(1 - t, t); + } + } + return running; + }); + } + if (is_function(config)) { + wait().then(() => { + // @ts-ignore + config = config(); + go(); + }); + } + else { + go(); + } + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + if (running) { + if (animation_name) + delete_rule(node, animation_name); + running = false; + } + } + }; +} +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; + } + } +} + +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) { + let stop; + const subscribers = []; + function set(new_value) { + if (safe_not_equal(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) { + const subscriber = [run, invalidate]; + subscribers.push(subscriber); + if (subscribers.length === 1) { + stop = start(set) || noop; + } + 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 }; +} + +function cubicOut(t) { + const f = t - 1.0; + return f * f * f + 1.0; +} + +function slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + return { + delay, + duration, + easing, + css: t => 'overflow: hidden;' + + `opacity: ${Math.min(t * 20, 1) * opacity};` + + `height: ${t * height}px;` + + `padding-top: ${t * padding_top}px;` + + `padding-bottom: ${t * padding_bottom}px;` + + `margin-top: ${t * margin_top}px;` + + `margin-bottom: ${t * margin_bottom}px;` + + `border-top-width: ${t * border_top_width}px;` + + `border-bottom-width: ${t * border_bottom_width}px;` + }; +} + +/* src/settings/Checkmark.svelte generated by Svelte v3.35.0 */ + +function add_css$1() { + var style = element("style"); + style.id = "svelte-1q3q9tf-style"; + style.textContent = ".check.svelte-1q3q9tf{margin-left:6px;width:12px;height:12px}"; + append(document.head, style); +} + +function create_fragment$5(ctx) { + let svg; + let path; + + return { + c() { + svg = svg_element("svg"); + path = svg_element("path"); + attr(path, "fill", "currentColor"); + attr(path, "d", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"); + attr(svg, "aria-hidden", "true"); + attr(svg, "focusable", "false"); + attr(svg, "class", "check svelte-1q3q9tf"); + attr(svg, "data-icon", "check"); + attr(svg, "role", "img"); + attr(svg, "xmlns", "http://www.w3.org/2000/svg"); + attr(svg, "viewBox", "0 0 512 512"); + }, + m(target, anchor) { + insert(target, svg, anchor); + append(svg, path); + }, + p: noop, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(svg); + } + }; +} + +class Checkmark extends SvelteComponent { + constructor(options) { + super(); + if (!document.getElementById("svelte-1q3q9tf-style")) add_css$1(); + init(this, options, null, create_fragment$5, safe_not_equal, {}); + } +} + +/* src/settings/GettingStartedBanner.svelte generated by Svelte v3.35.0 */ + +function add_css() { + var style = element("style"); + style.id = "svelte-1alo0m9-style"; + style.textContent = "button.svelte-1alo0m9{display:flex;align-items:center}"; + append(document.head, style); +} + +// (20:2) {#if hasDailyNoteSettings} +function create_if_block_3(ctx) { + let div2; + let div0; + let h4; + let t1; + let t2; + let div1; + let current_block_type_index; + let if_block1; + let current; + + function select_block_type(ctx, dirty) { + if (/*$settings*/ ctx[5].hasMigratedDailyNoteSettings) return create_if_block_5; + return create_else_block_2; + } + + let current_block_type = select_block_type(ctx); + let if_block0 = current_block_type(ctx); + const if_block_creators = [create_if_block_4, create_else_block_1]; + const if_blocks = []; + + function select_block_type_1(ctx, dirty) { + if (/*$settings*/ ctx[5].hasMigratedDailyNoteSettings) return 0; + return 1; + } + + current_block_type_index = select_block_type_1(ctx); + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + return { + c() { + div2 = element("div"); + div0 = element("div"); + h4 = element("h4"); + h4.textContent = "Daily Notes plugin is enabled"; + t1 = space(); + if_block0.c(); + t2 = space(); + div1 = element("div"); + if_block1.c(); + attr(div0, "class", "setting-item-info"); + attr(div1, "class", "setting-item-control"); + attr(div2, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div2, anchor); + append(div2, div0); + append(div0, h4); + append(div0, t1); + if_block0.m(div0, null); + append(div2, t2); + append(div2, div1); + if_blocks[current_block_type_index].m(div1, null); + current = true; + }, + p(ctx, dirty) { + if (current_block_type !== (current_block_type = select_block_type(ctx))) { + if_block0.d(1); + if_block0 = current_block_type(ctx); + + if (if_block0) { + if_block0.c(); + if_block0.m(div0, null); + } + } + + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(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_block1 = if_blocks[current_block_type_index]; + + if (!if_block1) { + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block1.c(); + } else { + if_block1.p(ctx, dirty); + } + + transition_in(if_block1, 1); + if_block1.m(div1, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) detach(div2); + if_block0.d(); + if_blocks[current_block_type_index].d(); + } + }; +} + +// (31:8) {:else} +function create_else_block_2(ctx) { + let p; + + return { + c() { + p = element("p"); + p.textContent = "You are currently using the core Daily Notes plugin. You can migrate\n those settings over to Periodic Notes to enjoy the same\n functionality as well as some notable improvements"; + attr(p, "class", "setting-item-description"); + }, + m(target, anchor) { + insert(target, p, anchor); + }, + d(detaching) { + if (detaching) detach(p); + } + }; +} + +// (24:8) {#if $settings.hasMigratedDailyNoteSettings} +function create_if_block_5(ctx) { + let p; + + return { + c() { + p = element("p"); + + p.innerHTML = `You have successfully migrated your daily notes settings. You can + now disable the Daily Notes core plugin to avoid any confusion.
    If you have an custom hotkeys for daily notes, make sure to update + them to use the new "Periodic Notes" commands.`; + + attr(p, "class", "setting-item-description"); + }, + m(target, anchor) { + insert(target, p, anchor); + }, + d(detaching) { + if (detaching) detach(p); + } + }; +} + +// (42:8) {:else} +function create_else_block_1(ctx) { + let button; + let mounted; + let dispose; + + return { + c() { + button = element("button"); + button.textContent = "Migrate"; + attr(button, "class", "mod-cta svelte-1alo0m9"); + }, + m(target, anchor) { + insert(target, button, anchor); + + if (!mounted) { + dispose = listen(button, "click", function () { + if (is_function(/*migrateDailyNoteSettings*/ ctx[2])) /*migrateDailyNoteSettings*/ ctx[2].apply(this, arguments); + }); + + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(button); + mounted = false; + dispose(); + } + }; +} + +// (40:8) {#if $settings.hasMigratedDailyNoteSettings} +function create_if_block_4(ctx) { + let button; + let t; + let checkmark; + let current; + checkmark = new Checkmark({}); + + return { + c() { + button = element("button"); + t = text("Migrated "); + create_component(checkmark.$$.fragment); + button.disabled = true; + attr(button, "class", "svelte-1alo0m9"); + }, + m(target, anchor) { + insert(target, button, anchor); + append(button, t); + mount_component(checkmark, button, null); + current = true; + }, + p: noop, + i(local) { + if (current) return; + transition_in(checkmark.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(checkmark.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) detach(button); + destroy_component(checkmark); + } + }; +} + +// (51:2) {#if hasWeeklyNoteSettings} +function create_if_block_1$2(ctx) { + let div2; + let div0; + let t3; + let div1; + let current_block_type_index; + let if_block; + let current; + const if_block_creators = [create_if_block_2, create_else_block]; + const if_blocks = []; + + function select_block_type_2(ctx, dirty) { + if (/*$settings*/ ctx[5].hasMigratedWeeklyNoteSettings) return 0; + return 1; + } + + current_block_type_index = select_block_type_2(ctx); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + return { + c() { + div2 = element("div"); + div0 = element("div"); + + div0.innerHTML = `

    Weekly Note settings migrated

    +

    Your existing weekly-note settings from the Calendar plugin have been + migrated over automatically. The functionality will be removed from + the Calendar plugin in the future.

    `; + + t3 = space(); + div1 = element("div"); + if_block.c(); + attr(div0, "class", "setting-item-info"); + attr(div1, "class", "setting-item-control"); + attr(div2, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div2, anchor); + append(div2, div0); + append(div2, t3); + append(div2, div1); + if_blocks[current_block_type_index].m(div1, null); + current = true; + }, + p(ctx, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_2(ctx); + + if (current_block_type_index !== previous_block_index) { + 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(); + } + + transition_in(if_block, 1); + if_block.m(div1, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) detach(div2); + if_blocks[current_block_type_index].d(); + } + }; +} + +// (67:8) {:else} +function create_else_block(ctx) { + let button; + + return { + c() { + button = element("button"); + button.textContent = "Migrate"; + attr(button, "class", "mod-cta svelte-1alo0m9"); + }, + m(target, anchor) { + insert(target, button, anchor); + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(button); + } + }; +} + +// (62:8) {#if $settings.hasMigratedWeeklyNoteSettings} +function create_if_block_2(ctx) { + let button; + let t; + let checkmark; + let current; + checkmark = new Checkmark({}); + + return { + c() { + button = element("button"); + t = text("Migrated\n "); + create_component(checkmark.$$.fragment); + button.disabled = true; + attr(button, "class", "svelte-1alo0m9"); + }, + m(target, anchor) { + insert(target, button, anchor); + append(button, t); + mount_component(checkmark, button, null); + current = true; + }, + i(local) { + if (current) return; + transition_in(checkmark.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(checkmark.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) detach(button); + destroy_component(checkmark); + } + }; +} + +// (74:2) {#if !hasDailyNoteSettings && !hasWeeklyNoteSettings} +function create_if_block$4(ctx) { + let p; + + return { + c() { + p = element("p"); + p.textContent = "With this plugin, you can quickly create and navigate to daily, weekly,\n and monthly notes. Enable them below to get started."; + }, + m(target, anchor) { + insert(target, p, anchor); + }, + d(detaching) { + if (detaching) detach(p); + } + }; +} + +function create_fragment$4(ctx) { + let div; + let h3; + let t1; + let t2; + let t3; + let t4; + let button; + let div_outro; + let current; + let mounted; + let dispose; + let if_block0 = /*hasDailyNoteSettings*/ ctx[3] && create_if_block_3(ctx); + let if_block1 = /*hasWeeklyNoteSettings*/ ctx[4] && create_if_block_1$2(ctx); + let if_block2 = !/*hasDailyNoteSettings*/ ctx[3] && !/*hasWeeklyNoteSettings*/ ctx[4] && create_if_block$4(); + + return { + c() { + div = element("div"); + h3 = element("h3"); + h3.textContent = "Getting Started"; + t1 = space(); + if (if_block0) if_block0.c(); + t2 = space(); + if (if_block1) if_block1.c(); + t3 = space(); + if (if_block2) if_block2.c(); + t4 = space(); + button = element("button"); + button.textContent = "Dismiss"; + attr(button, "class", "svelte-1alo0m9"); + attr(div, "class", "settings-banner"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, h3); + append(div, t1); + if (if_block0) if_block0.m(div, null); + append(div, t2); + if (if_block1) if_block1.m(div, null); + append(div, t3); + if (if_block2) if_block2.m(div, null); + append(div, t4); + append(div, button); + current = true; + + if (!mounted) { + dispose = listen(button, "click", function () { + if (is_function(/*handleTeardown*/ ctx[1])) /*handleTeardown*/ ctx[1].apply(this, arguments); + }); + + mounted = true; + } + }, + p(new_ctx, [dirty]) { + ctx = new_ctx; + + if (/*hasDailyNoteSettings*/ ctx[3]) { + if (if_block0) { + if_block0.p(ctx, dirty); + + if (dirty & /*hasDailyNoteSettings*/ 8) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_3(ctx); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(div, t2); + } + } else if (if_block0) { + group_outros(); + + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + + check_outros(); + } + + if (/*hasWeeklyNoteSettings*/ ctx[4]) { + if (if_block1) { + if_block1.p(ctx, dirty); + + if (dirty & /*hasWeeklyNoteSettings*/ 16) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_1$2(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div, t3); + } + } else if (if_block1) { + group_outros(); + + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + + check_outros(); + } + + if (!/*hasDailyNoteSettings*/ ctx[3] && !/*hasWeeklyNoteSettings*/ ctx[4]) { + if (if_block2) ; else { + if_block2 = create_if_block$4(); + if_block2.c(); + if_block2.m(div, t4); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + }, + i(local) { + if (current) return; + transition_in(if_block0); + transition_in(if_block1); + if (div_outro) div_outro.end(1); + current = true; + }, + o(local) { + transition_out(if_block0); + transition_out(if_block1); + div_outro = create_out_transition(div, slide, {}); + current = false; + }, + d(detaching) { + if (detaching) detach(div); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + if (if_block2) if_block2.d(); + if (detaching && div_outro) div_outro.end(); + mounted = false; + dispose(); + } + }; +} + +function instance$4($$self, $$props, $$invalidate) { + let $settings, + $$unsubscribe_settings = noop, + $$subscribe_settings = () => ($$unsubscribe_settings(), $$unsubscribe_settings = subscribe(settings, $$value => $$invalidate(5, $settings = $$value)), settings); + + $$self.$$.on_destroy.push(() => $$unsubscribe_settings()); + + + let { settings } = $$props; + $$subscribe_settings(); + let { handleTeardown } = $$props; + let { migrateDailyNoteSettings } = $$props; + let hasDailyNoteSettings; + let hasWeeklyNoteSettings; + + $$self.$$set = $$props => { + if ("settings" in $$props) $$subscribe_settings($$invalidate(0, settings = $$props.settings)); + if ("handleTeardown" in $$props) $$invalidate(1, handleTeardown = $$props.handleTeardown); + if ("migrateDailyNoteSettings" in $$props) $$invalidate(2, migrateDailyNoteSettings = $$props.migrateDailyNoteSettings); + }; + + { + $$invalidate(3, hasDailyNoteSettings = hasLegacyDailyNoteSettings()); + $$invalidate(4, hasWeeklyNoteSettings = hasLegacyWeeklyNoteSettings()); + } + + return [ + settings, + handleTeardown, + migrateDailyNoteSettings, + hasDailyNoteSettings, + hasWeeklyNoteSettings, + $settings + ]; +} + +class GettingStartedBanner extends SvelteComponent { + constructor(options) { + super(); + if (!document.getElementById("svelte-1alo0m9-style")) add_css(); + + init(this, options, instance$4, create_fragment$4, safe_not_equal, { + settings: 0, + handleTeardown: 1, + migrateDailyNoteSettings: 2 + }); + } +} + +function getBasename(format) { + const isTemplateNested = format.indexOf("/") !== -1; + return isTemplateNested ? format.split("/").pop() : format; +} +function isValidFilename(filename) { + const illegalRe = /[?<>\\:*|"]/g; + const controlRe = /[\x00-\x1f\x80-\x9f]/g; + const reservedRe = /^\.+$/; + const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i; + return (!illegalRe.test(filename) && + !controlRe.test(filename) && + !reservedRe.test(filename) && + !windowsReservedRe.test(filename)); +} +function validateFormat(format, periodicity) { + if (!format) { + return ""; + } + if (!isValidFilename(format)) { + return "Format contains illegal characters"; + } + if (periodicity === "daily" && + !["m", "d", "y"].every((requiredChar) => getBasename(format) + .replace(/\[[^\]]*\]/g, "") // remove everything within brackets + .toLowerCase() + .indexOf(requiredChar) !== -1)) { + return "Filename must be unique"; + } +} +function validateTemplate(template) { + if (!template) { + return ""; + } + const { metadataCache } = window.app; + const file = metadataCache.getFirstLinkpathDest(template, ""); + if (!file) { + return "Template file not found"; + } + return ""; +} +function validateFolder(folder) { + if (!folder || folder === "/") { + return ""; + } + const { vault } = window.app; + if (!vault.getAbstractFileByPath(obsidian.normalizePath(folder))) { + return "Folder not found in vault"; + } + return ""; +} + +/* src/settings/NoteFormatSetting.svelte generated by Svelte v3.35.0 */ + +function create_if_block_1$1(ctx) { + let div; + let t0; + let strong0; + let t1; + let br; + let t2; + let strong1; + let t3; + + return { + c() { + div = element("div"); + t0 = text("New files will be created at "); + strong0 = element("strong"); + t1 = text(/*value*/ ctx[2]); + br = element("br"); + t2 = text("\n Format: "); + strong1 = element("strong"); + t3 = text(/*basename*/ ctx[7]); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t0); + append(div, strong0); + append(strong0, t1); + append(div, br); + append(div, t2); + append(div, strong1); + append(strong1, t3); + }, + p(ctx, dirty) { + if (dirty & /*value*/ 4) set_data(t1, /*value*/ ctx[2]); + if (dirty & /*basename*/ 128) set_data(t3, /*basename*/ ctx[7]); + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +// (56:4) {#if error} +function create_if_block$3(ctx) { + let div; + let t; + + return { + c() { + div = element("div"); + t = text(/*error*/ ctx[5]); + attr(div, "class", "has-error"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); + }, + p(ctx, dirty) { + if (dirty & /*error*/ 32) set_data(t, /*error*/ ctx[5]); + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +function create_fragment$3(ctx) { + let div5; + let div3; + let div0; + let t1; + let div2; + let a; + let t3; + let div1; + let t4; + let b; + let t5_value = window.moment().format(/*value*/ ctx[2] || /*defaultFormat*/ ctx[8]) + ""; + let t5; + let t6; + let t7; + let t8; + let div4; + let input; + let mounted; + let dispose; + let if_block0 = /*isTemplateNested*/ ctx[6] && create_if_block_1$1(ctx); + let if_block1 = /*error*/ ctx[5] && create_if_block$3(ctx); + + return { + c() { + div5 = element("div"); + div3 = element("div"); + div0 = element("div"); + div0.textContent = "Format"; + t1 = space(); + div2 = element("div"); + a = element("a"); + a.textContent = "Syntax Reference"; + t3 = space(); + div1 = element("div"); + t4 = text("Your current syntax looks like this: "); + b = element("b"); + t5 = text(t5_value); + t6 = space(); + if (if_block0) if_block0.c(); + t7 = space(); + if (if_block1) if_block1.c(); + t8 = space(); + div4 = element("div"); + input = element("input"); + attr(div0, "class", "setting-item-name"); + attr(a, "href", "https://momentjs.com/docs/#/displaying/format/"); + attr(b, "class", "u-pop"); + attr(div2, "class", "setting-item-description"); + attr(div3, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", false); + attr(input, "placeholder", /*defaultFormat*/ ctx[8]); + toggle_class(input, "has-error", !!/*error*/ ctx[5]); + attr(div4, "class", "setting-item-control"); + attr(div5, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div5, anchor); + append(div5, div3); + append(div3, div0); + append(div3, t1); + append(div3, div2); + append(div2, a); + append(div2, t3); + append(div2, div1); + append(div1, t4); + append(div1, b); + append(b, t5); + append(div2, t6); + if (if_block0) if_block0.m(div2, null); + append(div3, t7); + if (if_block1) if_block1.m(div3, null); + append(div5, t8); + append(div5, div4); + append(div4, input); + set_input_value(input, /*$settings*/ ctx[3][/*periodicity*/ ctx[1]].format); + /*input_binding*/ ctx[12](input); + + if (!mounted) { + dispose = [ + listen(input, "input", /*input_input_handler*/ ctx[11]), + listen(input, "change", /*onChange*/ ctx[10]), + listen(input, "input", /*clearError*/ ctx[9]) + ]; + + mounted = true; + } + }, + p(ctx, [dirty]) { + if (dirty & /*value*/ 4 && t5_value !== (t5_value = window.moment().format(/*value*/ ctx[2] || /*defaultFormat*/ ctx[8]) + "")) set_data(t5, t5_value); + + if (/*isTemplateNested*/ ctx[6]) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_1$1(ctx); + if_block0.c(); + if_block0.m(div2, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (/*error*/ ctx[5]) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block$3(ctx); + if_block1.c(); + if_block1.m(div3, null); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + if (dirty & /*$settings, periodicity*/ 10 && input.value !== /*$settings*/ ctx[3][/*periodicity*/ ctx[1]].format) { + set_input_value(input, /*$settings*/ ctx[3][/*periodicity*/ ctx[1]].format); + } + + if (dirty & /*error*/ 32) { + toggle_class(input, "has-error", !!/*error*/ ctx[5]); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div5); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + /*input_binding*/ ctx[12](null); + mounted = false; + run_all(dispose); + } + }; +} + +function instance$3($$self, $$props, $$invalidate) { + let $settings, + $$unsubscribe_settings = noop, + $$subscribe_settings = () => ($$unsubscribe_settings(), $$unsubscribe_settings = subscribe(settings, $$value => $$invalidate(3, $settings = $$value)), settings); + + $$self.$$.on_destroy.push(() => $$unsubscribe_settings()); + + + let { settings } = $$props; + $$subscribe_settings(); + let { periodicity } = $$props; + + const DEFAULT_FORMATS = { + daily: DEFAULT_DAILY_NOTE_FORMAT_1, + weekly: DEFAULT_WEEKLY_NOTE_FORMAT_1, + monthly: DEFAULT_MONTHLY_NOTE_FORMAT_1, + quarterly: DEFAULT_QUARTERLY_NOTE_FORMAT_1, + yearly: DEFAULT_YEARLY_NOTE_FORMAT_1 + }; + + const defaultFormat = DEFAULT_FORMATS[periodicity]; + let inputEl; + let value; + let error; + let isTemplateNested; + let basename; + + onMount(() => { + $$invalidate(5, error = validateFormat(inputEl.value, periodicity)); + }); + + function clearError() { + $$invalidate(5, error = ""); + } + + function onChange() { + $$invalidate(5, error = validateFormat(inputEl.value, periodicity)); + } + + function input_input_handler() { + $settings[periodicity].format = this.value; + settings.set($settings); + $$invalidate(1, periodicity); + } + + function input_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + inputEl = $$value; + $$invalidate(4, inputEl); + }); + } + + $$self.$$set = $$props => { + if ("settings" in $$props) $$subscribe_settings($$invalidate(0, settings = $$props.settings)); + if ("periodicity" in $$props) $$invalidate(1, periodicity = $$props.periodicity); + }; + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$settings, periodicity, value*/ 14) { + { + $$invalidate(2, value = $settings[periodicity].format || ""); + $$invalidate(6, isTemplateNested = value.indexOf("/") !== -1); + $$invalidate(7, basename = getBasename(value)); + } + } + }; + + return [ + settings, + periodicity, + value, + $settings, + inputEl, + error, + isTemplateNested, + basename, + defaultFormat, + clearError, + onChange, + input_input_handler, + input_binding + ]; +} + +class NoteFormatSetting extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$3, create_fragment$3, safe_not_equal, { settings: 0, periodicity: 1 }); + } +} + +var top = 'top'; +var bottom = 'bottom'; +var right = 'right'; +var left = 'left'; +var auto = 'auto'; +var basePlacements = [top, bottom, right, left]; +var start = 'start'; +var end = 'end'; +var clippingParents = 'clippingParents'; +var viewport = 'viewport'; +var popper = 'popper'; +var reference = 'reference'; +var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); +}, []); +var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); +}, []); // modifiers that need to read the DOM + +var beforeRead = 'beforeRead'; +var read = 'read'; +var afterRead = 'afterRead'; // pure-logic modifiers + +var beforeMain = 'beforeMain'; +var main = 'main'; +var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + +var beforeWrite = 'beforeWrite'; +var write = 'write'; +var afterWrite = 'afterWrite'; +var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + +function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; +} + +function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; +} + +function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; +} + +function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; +} + +function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; +} + +// and applies them to the HTMLElements such as popper and arrow + +function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); +} + +function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; +} // eslint-disable-next-line import/no-unused-modules + + +var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] +}; + +function getBasePlacement(placement) { + return placement.split('-')[0]; +} + +function getBoundingClientRect(element) { + var rect = element.getBoundingClientRect(); + return { + width: rect.width, + height: rect.height, + top: rect.top, + right: rect.right, + bottom: rect.bottom, + left: rect.left, + x: rect.left, + y: rect.top + }; +} + +// means it doesn't take into account transforms. + +function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; +} + +function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; +} + +function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); +} + +function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; +} + +function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; +} + +function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); +} + +function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle$1(element).position === 'fixed') { + return null; + } + + return element.offsetParent; +} // `.offsetParent` reports `null` for fixed elements, while absolute elements +// return the containing block + + +function getContainingBlock(element) { + var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; + var currentNode = getParentNode(element); + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; +} // Gets the closest ancestor positioned element. Handles some edge cases, +// such as table ancestors and cross browser bugs. + + +function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; +} + +function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; +} + +var max = Math.max; +var min = Math.min; +var round = Math.round; + +function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); +} + +function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; +} + +function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); +} + +function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); +} + +var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); +}; + +function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; + } + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); +} + +function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; + + if (arrowElement == null) { + return; + } // CSS selector + + + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; + } + } + + if (process.env.NODE_ENV !== "production") { + if (!isHTMLElement(arrowElement)) { + console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' ')); + } + } + + if (!contains(state.elements.popper, arrowElement)) { + if (process.env.NODE_ENV !== "production") { + console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', 'element.'].join(' ')); + } + + return; + } + + state.elements.arrow = arrowElement; +} // eslint-disable-next-line import/no-unused-modules + + +var arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] +}; + +var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' +}; // Round the offsets to the nearest suitable subpixel based on the DPR. +// Zooming can change the DPR, but it seems to report a value that will +// cleanly divide the values into the appropriate subpixels. + +function roundOffsetsByDPR(_ref) { + var x = _ref.x, + y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: round(round(x * dpr) / dpr) || 0, + y: round(round(y * dpr) / dpr) || 0 + }; +} + +function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets; + + var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets, + _ref3$x = _ref3.x, + x = _ref3$x === void 0 ? 0 : _ref3$x, + _ref3$y = _ref3.y, + y = _ref3$y === void 0 ? 0 : _ref3$y; + + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle$1(offsetParent).position !== 'static') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top) { + sideY = bottom; // $FlowFixMe[prop-missing] + + y -= offsetParent[heightProp] - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + + if (placement === left) { + sideX = right; // $FlowFixMe[prop-missing] + + x -= offsetParent[widthProp] - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); +} + +function computeStyles(_ref4) { + var state = _ref4.state, + options = _ref4.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + + if (process.env.NODE_ENV !== "production") { + var transitionProperty = getComputedStyle$1(state.elements.popper).transitionProperty || ''; + + if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) { + return transitionProperty.indexOf(property) >= 0; + })) { + console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: "transform", "top", "right", "bottom", "left".', '\n\n', 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\n\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' ')); + } + } + + var commonStyles = { + placement: getBasePlacement(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} +}; + +var passive = { + passive: true +}; + +function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; +} // eslint-disable-next-line import/no-unused-modules + + +var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} +}; + +var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' +}; +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); +} + +var hash = { + start: 'end', + end: 'start' +}; +function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); +} + +function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; +} + +function getWindowScrollBarX(element) { + // If has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; +} + +function getViewportRect(element) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper + // can be obscured underneath it. + // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even + // if it isn't open, so if this isn't available, the popper will be detected + // to overflow the bottom of the screen too early. + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) + // In Chrome, it returns a value very close to 0 (+/-) but contains rounding + // errors due to floating point numbers, so we need to check precision. + // Safari returns a number <= 0, usually < -1 when pinch-zoomed + // Feature detection fails in mobile emulation mode in Chrome. + // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < + // 0.001 + // Fallback here: "Not Safari" userAgent + + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; +} + +// of the `` and `` rect bounds if horizontally scrollable + +function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle$1(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; +} + +function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle$1(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); +} + +function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); +} + +/* +given a DOM element, return the list of all scroll parents, up the list of ancesors +until we get to the top window object. This list is what we attach scroll listeners +to, because if any of these parent elements scroll, we'll need to re-calculate the +reference element's position. +*/ + +function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); +} + +function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); +} + +function getInnerBoundingClientRect(element) { + var rect = getBoundingClientRect(element); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; +} + +function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); +} // A "clipping parent" is an overflowable container with the characteristic of +// clipping (or hiding) overflowing elements with a position different from +// `initial` + + +function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); +} // Gets the maximum area that the element is visible in due to any number of +// clipping parents + + +function getClippingRect(element, boundary, rootBoundary) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; +} + +function getVariation(placement) { + return placement.split('-')[1]; +} + +function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; +} + +function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var referenceElement = state.elements.reference; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var referenceClientRect = getBoundingClientRect(referenceElement); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; +} + +function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); + + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + + if (process.env.NODE_ENV !== "production") { + console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(' ')); + } + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); +} + +function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; +} + +function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + + if (state.modifiersData[name]._skip) { + return; + } + + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; + } + } + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } +} // eslint-disable-next-line import/no-unused-modules + + +var flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } +}; + +function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; +} + +function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); +} + +function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); +} // eslint-disable-next-line import/no-unused-modules + + +var hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide +}; + +function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; +} + +function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset +}; + +function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} +}; + +function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; +} + +function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis || checkAltAxis) { + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = popperOffsets[mainAxis] + overflow[mainSide]; + var max$1 = popperOffsets[mainAxis] - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0; + var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset; + var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue; + + if (checkMainAxis) { + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + } + + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] +}; + +function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; +} + +function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } +} + +// Composite means it takes into account transforms as well as layout. + +function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement); + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; +} + +function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; +} + +function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); +} + +function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; +} + +function format(str) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return [].concat(args).reduce(function (p, c) { + return p.replace(/%s/, c); + }, str); +} + +var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; +var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; +var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options']; +function validateModifiers(modifiers) { + modifiers.forEach(function (modifier) { + Object.keys(modifier).forEach(function (key) { + switch (key) { + case 'name': + if (typeof modifier.name !== 'string') { + console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\"")); + } + + break; + + case 'enabled': + if (typeof modifier.enabled !== 'boolean') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\"")); + } + + case 'phase': + if (modifierPhases.indexOf(modifier.phase) < 0) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\"")); + } + + break; + + case 'fn': + if (typeof modifier.fn !== 'function') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\"")); + } + + break; + + case 'effect': + if (typeof modifier.effect !== 'function') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\"")); + } + + break; + + case 'requires': + if (!Array.isArray(modifier.requires)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\"")); + } + + break; + + case 'requiresIfExists': + if (!Array.isArray(modifier.requiresIfExists)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\"")); + } + + break; + + case 'options': + case 'data': + break; + + default: + console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) { + return "\"" + s + "\""; + }).join(', ') + "; but \"" + key + "\" was provided."); + } + + modifier.requires && modifier.requires.forEach(function (requirement) { + if (modifiers.find(function (mod) { + return mod.name === requirement; + }) == null) { + console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); + } + }); + }); + }); +} + +function uniqueBy(arr, fn) { + var identifiers = new Set(); + return arr.filter(function (item) { + var identifier = fn(item); + + if (!identifiers.has(identifier)) { + identifiers.add(identifier); + return true; + } + }); +} + +function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); +} + +var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.'; +var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.'; +var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' +}; + +function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); +} + +function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(options) { + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); // Validate the provided modifiers so that the consumer will get warned + // if one of the modifiers is invalid for any reason + + if (process.env.NODE_ENV !== "production") { + var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) { + var name = _ref.name; + return name; + }); + validateModifiers(modifiers); + + if (getBasePlacement(state.options.placement) === auto) { + var flipModifier = state.orderedModifiers.find(function (_ref2) { + var name = _ref2.name; + return name === 'flip'; + }); + + if (!flipModifier) { + console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' ')); + } + } + + var _getComputedStyle = getComputedStyle$1(popper), + marginTop = _getComputedStyle.marginTop, + marginRight = _getComputedStyle.marginRight, + marginBottom = _getComputedStyle.marginBottom, + marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can + // cause bugs with positioning, so we'll warn the consumer + + + if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) { + return parseFloat(margin); + })) { + console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' ')); + } + } + + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + if (process.env.NODE_ENV !== "production") { + console.error(INVALID_ELEMENT_ERROR); + } + + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + var __debug_loops__ = 0; + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (process.env.NODE_ENV !== "production") { + __debug_loops__ += 1; + + if (__debug_loops__ > 100) { + console.error(INFINITE_LOOP_ERROR); + break; + } + } + + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + if (process.env.NODE_ENV !== "production") { + console.error(INVALID_ELEMENT_ERROR); + } + + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref3) { + var name = _ref3.name, + _ref3$options = _ref3.options, + options = _ref3$options === void 0 ? {} : _ref3$options, + effect = _ref3.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; +} + +var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; +var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers +}); // eslint-disable-next-line import/no-unused-modules + +class Suggest { + constructor(owner, containerEl, scope) { + this.owner = owner; + this.containerEl = containerEl; + containerEl.on("click", ".suggestion-item", this.onSuggestionClick.bind(this)); + containerEl.on("mousemove", ".suggestion-item", this.onSuggestionMouseover.bind(this)); + scope.register([], "ArrowUp", (event) => { + if (!event.isComposing) { + this.setSelectedItem(this.selectedItem - 1, true); + return false; + } + }); + scope.register([], "ArrowDown", (event) => { + if (!event.isComposing) { + this.setSelectedItem(this.selectedItem + 1, true); + return false; + } + }); + scope.register([], "Enter", (event) => { + if (!event.isComposing) { + this.useSelectedItem(event); + return false; + } + }); + } + onSuggestionClick(event, el) { + event.preventDefault(); + const item = this.suggestions.indexOf(el); + this.setSelectedItem(item, false); + this.useSelectedItem(event); + } + onSuggestionMouseover(_event, el) { + const item = this.suggestions.indexOf(el); + this.setSelectedItem(item, false); + } + setSuggestions(values) { + this.containerEl.empty(); + const suggestionEls = []; + values.forEach((value) => { + const suggestionEl = this.containerEl.createDiv("suggestion-item"); + this.owner.renderSuggestion(value, suggestionEl); + suggestionEls.push(suggestionEl); + }); + this.values = values; + this.suggestions = suggestionEls; + this.setSelectedItem(0, false); + } + useSelectedItem(event) { + const currentValue = this.values[this.selectedItem]; + if (currentValue) { + this.owner.selectSuggestion(currentValue, event); + } + } + setSelectedItem(selectedIndex, scrollIntoView) { + const normalizedIndex = wrapAround(selectedIndex, this.suggestions.length); + const prevSelectedSuggestion = this.suggestions[this.selectedItem]; + const selectedSuggestion = this.suggestions[normalizedIndex]; + prevSelectedSuggestion === null || prevSelectedSuggestion === void 0 ? void 0 : prevSelectedSuggestion.removeClass("is-selected"); + selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.addClass("is-selected"); + this.selectedItem = normalizedIndex; + if (scrollIntoView) { + selectedSuggestion.scrollIntoView(false); + } + } +} +class TextInputSuggest { + constructor(app, inputEl) { + this.app = app; + this.inputEl = inputEl; + this.scope = new obsidian.Scope(); + this.suggestEl = createDiv("suggestion-container"); + const suggestion = this.suggestEl.createDiv("suggestion"); + this.suggest = new Suggest(this, suggestion, this.scope); + this.scope.register([], "Escape", this.close.bind(this)); + this.inputEl.addEventListener("input", this.onInputChanged.bind(this)); + this.inputEl.addEventListener("focus", this.onInputChanged.bind(this)); + this.inputEl.addEventListener("blur", this.close.bind(this)); + this.suggestEl.on("mousedown", ".suggestion-container", (event) => { + event.preventDefault(); + }); + } + onInputChanged() { + const inputStr = this.inputEl.value; + const suggestions = this.getSuggestions(inputStr); + if (suggestions.length > 0) { + this.suggest.setSuggestions(suggestions); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.open(this.app.dom.appContainerEl, this.inputEl); + } + } + open(container, inputEl) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.app.keymap.pushScope(this.scope); + container.appendChild(this.suggestEl); + this.popper = createPopper(inputEl, this.suggestEl, { + placement: "bottom-start", + modifiers: [ + { + name: "sameWidth", + enabled: true, + fn: ({ state, instance }) => { + // Note: positioning needs to be calculated twice - + // first pass - positioning it according to the width of the popper + // second pass - position it with the width bound to the reference element + // we need to early exit to avoid an infinite loop + const targetWidth = `${state.rects.reference.width}px`; + if (state.styles.popper.width === targetWidth) { + return; + } + state.styles.popper.width = targetWidth; + instance.update(); + }, + phase: "beforeWrite", + requires: ["computeStyles"], + }, + ], + }); + } + close() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.app.keymap.popScope(this.scope); + this.suggest.setSuggestions([]); + this.popper.destroy(); + this.suggestEl.detach(); + } +} + +class FileSuggest extends TextInputSuggest { + getSuggestions(inputStr) { + const abstractFiles = this.app.vault.getAllLoadedFiles(); + const files = []; + const lowerCaseInputStr = inputStr.toLowerCase(); + abstractFiles.forEach((file) => { + if (file instanceof obsidian.TFile && + file.extension === "md" && + file.path.toLowerCase().contains(lowerCaseInputStr)) { + files.push(file); + } + }); + return files; + } + renderSuggestion(file, el) { + el.setText(file.path); + } + selectSuggestion(file) { + this.inputEl.value = file.path; + this.inputEl.trigger("input"); + this.close(); + } +} +class FolderSuggest extends TextInputSuggest { + getSuggestions(inputStr) { + const abstractFiles = this.app.vault.getAllLoadedFiles(); + const folders = []; + const lowerCaseInputStr = inputStr.toLowerCase(); + abstractFiles.forEach((folder) => { + if (folder instanceof obsidian.TFolder && + folder.path.toLowerCase().contains(lowerCaseInputStr)) { + folders.push(folder); + } + }); + return folders; + } + renderSuggestion(file, el) { + el.setText(file.path); + } + selectSuggestion(file) { + this.inputEl.value = file.path; + this.inputEl.trigger("input"); + this.close(); + } +} + +/* src/settings/NoteTemplateSetting.svelte generated by Svelte v3.35.0 */ + +function create_if_block$2(ctx) { + let div; + let t; + + return { + c() { + div = element("div"); + t = text(/*error*/ ctx[3]); + attr(div, "class", "has-error"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); + }, + p(ctx, dirty) { + if (dirty & /*error*/ 8) set_data(t, /*error*/ ctx[3]); + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +function create_fragment$2(ctx) { + let div4; + let div2; + let div0; + let t0_value = capitalize(/*periodicity*/ ctx[1]) + ""; + let t0; + let t1; + let t2; + let div1; + let t4; + let t5; + let div3; + let input; + let mounted; + let dispose; + let if_block = /*error*/ ctx[3] && create_if_block$2(ctx); + + return { + c() { + div4 = element("div"); + div2 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = text(" Note Template"); + t2 = space(); + div1 = element("div"); + div1.textContent = "Choose the file to use as a template"; + t4 = space(); + if (if_block) if_block.c(); + t5 = space(); + div3 = element("div"); + input = element("input"); + attr(div0, "class", "setting-item-name"); + attr(div1, "class", "setting-item-description"); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", false); + attr(input, "placeholder", "Example: folder/note"); + toggle_class(input, "has-error", !!/*error*/ ctx[3]); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div4, anchor); + append(div4, div2); + append(div2, div0); + append(div0, t0); + append(div0, t1); + append(div2, t2); + append(div2, div1); + append(div2, t4); + if (if_block) if_block.m(div2, null); + append(div4, t5); + append(div4, div3); + append(div3, input); + /*input_binding*/ ctx[7](input); + set_input_value(input, /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].template); + + if (!mounted) { + dispose = [ + listen(input, "input", /*input_input_handler*/ ctx[8]), + listen(input, "change", /*validateOnBlur*/ ctx[5]), + listen(input, "input", /*clearError*/ ctx[6]) + ]; + + mounted = true; + } + }, + p(ctx, [dirty]) { + if (dirty & /*periodicity*/ 2 && t0_value !== (t0_value = capitalize(/*periodicity*/ ctx[1]) + "")) set_data(t0, t0_value); + + if (/*error*/ ctx[3]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$2(ctx); + if_block.c(); + if_block.m(div2, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if (dirty & /*$settings, periodicity*/ 6 && input.value !== /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].template) { + set_input_value(input, /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].template); + } + + if (dirty & /*error*/ 8) { + toggle_class(input, "has-error", !!/*error*/ ctx[3]); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div4); + if (if_block) if_block.d(); + /*input_binding*/ ctx[7](null); + mounted = false; + run_all(dispose); + } + }; +} + +function instance$2($$self, $$props, $$invalidate) { + let $settings, + $$unsubscribe_settings = noop, + $$subscribe_settings = () => ($$unsubscribe_settings(), $$unsubscribe_settings = subscribe(settings, $$value => $$invalidate(2, $settings = $$value)), settings); + + $$self.$$.on_destroy.push(() => $$unsubscribe_settings()); + + + let { settings } = $$props; + $$subscribe_settings(); + let { periodicity } = $$props; + let error; + let inputEl; + + function validateOnBlur() { + $$invalidate(3, error = validateTemplate(inputEl.value)); + } + + function clearError() { + $$invalidate(3, error = ""); + } + + onMount(() => { + $$invalidate(3, error = validateTemplate(inputEl.value)); + new FileSuggest(window.app, inputEl); + }); + + function input_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + inputEl = $$value; + $$invalidate(4, inputEl); + }); + } + + function input_input_handler() { + $settings[periodicity].template = this.value; + settings.set($settings); + $$invalidate(1, periodicity); + } + + $$self.$$set = $$props => { + if ("settings" in $$props) $$subscribe_settings($$invalidate(0, settings = $$props.settings)); + if ("periodicity" in $$props) $$invalidate(1, periodicity = $$props.periodicity); + }; + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$settings, periodicity*/ 6) { + $settings[periodicity].template || ""; + } + }; + + return [ + settings, + periodicity, + $settings, + error, + inputEl, + validateOnBlur, + clearError, + input_binding, + input_input_handler + ]; +} + +class NoteTemplateSetting extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$2, create_fragment$2, safe_not_equal, { settings: 0, periodicity: 1 }); + } +} + +/* src/settings/NoteFolderSetting.svelte generated by Svelte v3.35.0 */ + +function create_if_block$1(ctx) { + let div; + let t; + + return { + c() { + div = element("div"); + t = text(/*error*/ ctx[4]); + attr(div, "class", "has-error"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); + }, + p(ctx, dirty) { + if (dirty & /*error*/ 16) set_data(t, /*error*/ ctx[4]); + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +function create_fragment$1(ctx) { + let div4; + let div2; + let div0; + let t1; + let div1; + let t2; + let t3; + let t4; + let t5; + let t6; + let div3; + let input; + let mounted; + let dispose; + let if_block = /*error*/ ctx[4] && create_if_block$1(ctx); + + return { + c() { + div4 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.textContent = "Note Folder"; + t1 = space(); + div1 = element("div"); + t2 = text("New "); + t3 = text(/*periodicity*/ ctx[1]); + t4 = text(" notes will be placed here"); + t5 = space(); + if (if_block) if_block.c(); + t6 = space(); + div3 = element("div"); + input = element("input"); + attr(div0, "class", "setting-item-name"); + attr(div1, "class", "setting-item-description"); + attr(div2, "class", "setting-item-info"); + attr(input, "type", "text"); + attr(input, "spellcheck", false); + attr(input, "placeholder", "Example: folder 1/folder 2"); + toggle_class(input, "has-error", !!/*error*/ ctx[4]); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item"); + }, + m(target, anchor) { + insert(target, div4, anchor); + append(div4, div2); + append(div2, div0); + append(div2, t1); + append(div2, div1); + append(div1, t2); + append(div1, t3); + append(div1, t4); + append(div2, t5); + if (if_block) if_block.m(div2, null); + append(div4, t6); + append(div4, div3); + append(div3, input); + set_input_value(input, /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].folder); + /*input_binding*/ ctx[8](input); + + if (!mounted) { + dispose = [ + listen(input, "input", /*input_input_handler*/ ctx[7]), + listen(input, "change", /*onChange*/ ctx[5]), + listen(input, "input", /*clearError*/ ctx[6]) + ]; + + mounted = true; + } + }, + p(ctx, [dirty]) { + if (dirty & /*periodicity*/ 2) set_data(t3, /*periodicity*/ ctx[1]); + + if (/*error*/ ctx[4]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$1(ctx); + if_block.c(); + if_block.m(div2, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if (dirty & /*$settings, periodicity*/ 6 && input.value !== /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].folder) { + set_input_value(input, /*$settings*/ ctx[2][/*periodicity*/ ctx[1]].folder); + } + + if (dirty & /*error*/ 16) { + toggle_class(input, "has-error", !!/*error*/ ctx[4]); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div4); + if (if_block) if_block.d(); + /*input_binding*/ ctx[8](null); + mounted = false; + run_all(dispose); + } + }; +} + +function instance$1($$self, $$props, $$invalidate) { + let $settings, + $$unsubscribe_settings = noop, + $$subscribe_settings = () => ($$unsubscribe_settings(), $$unsubscribe_settings = subscribe(settings, $$value => $$invalidate(2, $settings = $$value)), settings); + + $$self.$$.on_destroy.push(() => $$unsubscribe_settings()); + + + let { settings } = $$props; + $$subscribe_settings(); + let { periodicity } = $$props; + let inputEl; + let error; + + function onChange() { + $$invalidate(4, error = validateFolder(inputEl.value)); + } + + function clearError() { + $$invalidate(4, error = ""); + } + + onMount(() => { + $$invalidate(4, error = validateFolder(inputEl.value)); + new FolderSuggest(window.app, inputEl); + }); + + function input_input_handler() { + $settings[periodicity].folder = this.value; + settings.set($settings); + $$invalidate(1, periodicity); + } + + function input_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + inputEl = $$value; + $$invalidate(3, inputEl); + }); + } + + $$self.$$set = $$props => { + if ("settings" in $$props) $$subscribe_settings($$invalidate(0, settings = $$props.settings)); + if ("periodicity" in $$props) $$invalidate(1, periodicity = $$props.periodicity); + }; + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$settings, periodicity*/ 6) { + $settings[periodicity].folder || ""; + } + }; + + return [ + settings, + periodicity, + $settings, + inputEl, + error, + onChange, + clearError, + input_input_handler, + input_binding + ]; +} + +class NoteFolderSetting extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$1, create_fragment$1, safe_not_equal, { settings: 0, periodicity: 1 }); + } +} + +/* src/settings/SettingsTab.svelte generated by Svelte v3.35.0 */ + +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[9] = list[i]; + return child_ctx; +} + +// (33:0) {#if $settingsStore.showGettingStartedBanner} +function create_if_block_1(ctx) { + let gettingstartedbanner; + let current; + + gettingstartedbanner = new GettingStartedBanner({ + props: { + migrateDailyNoteSettings: /*migrateDailyNoteSettings*/ ctx[2], + settings: /*settingsStore*/ ctx[1], + handleTeardown: /*func*/ ctx[6] + } + }); + + return { + c() { + create_component(gettingstartedbanner.$$.fragment); + }, + m(target, anchor) { + mount_component(gettingstartedbanner, target, anchor); + current = true; + }, + p(ctx, dirty) { + const gettingstartedbanner_changes = {}; + if (dirty & /*$settingsStore*/ 1) gettingstartedbanner_changes.handleTeardown = /*func*/ ctx[6]; + gettingstartedbanner.$set(gettingstartedbanner_changes); + }, + i(local) { + if (current) return; + transition_in(gettingstartedbanner.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(gettingstartedbanner.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(gettingstartedbanner, detaching); + } + }; +} + +// (62:2) {#if $settingsStore[periodicity].enabled} +function create_if_block(ctx) { + let div; + let noteformatsetting; + let t0; + let notetemplatesetting; + let t1; + let notefoldersetting; + let t2; + let div_intro; + let div_outro; + let current; + + noteformatsetting = new NoteFormatSetting({ + props: { + periodicity: /*periodicity*/ ctx[9], + settings: /*settingsStore*/ ctx[1] + } + }); + + notetemplatesetting = new NoteTemplateSetting({ + props: { + periodicity: /*periodicity*/ ctx[9], + settings: /*settingsStore*/ ctx[1] + } + }); + + notefoldersetting = new NoteFolderSetting({ + props: { + periodicity: /*periodicity*/ ctx[9], + settings: /*settingsStore*/ ctx[1] + } + }); + + return { + c() { + div = element("div"); + create_component(noteformatsetting.$$.fragment); + t0 = space(); + create_component(notetemplatesetting.$$.fragment); + t1 = space(); + create_component(notefoldersetting.$$.fragment); + t2 = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(noteformatsetting, div, null); + append(div, t0); + mount_component(notetemplatesetting, div, null); + append(div, t1); + mount_component(notefoldersetting, div, null); + append(div, t2); + current = true; + }, + p: noop, + i(local) { + if (current) return; + transition_in(noteformatsetting.$$.fragment, local); + transition_in(notetemplatesetting.$$.fragment, local); + transition_in(notefoldersetting.$$.fragment, local); + + add_render_callback(() => { + if (div_outro) div_outro.end(1); + if (!div_intro) div_intro = create_in_transition(div, slide, {}); + div_intro.start(); + }); + + current = true; + }, + o(local) { + transition_out(noteformatsetting.$$.fragment, local); + transition_out(notetemplatesetting.$$.fragment, local); + transition_out(notefoldersetting.$$.fragment, local); + if (div_intro) div_intro.invalidate(); + div_outro = create_out_transition(div, slide, {}); + current = false; + }, + d(detaching) { + if (detaching) detach(div); + destroy_component(noteformatsetting); + destroy_component(notetemplatesetting); + destroy_component(notefoldersetting); + if (detaching && div_outro) div_outro.end(); + } + }; +} + +// (42:0) {#each periodicities as periodicity} +function create_each_block(ctx) { + let div4; + let div1; + let div0; + let h3; + let t0_value = capitalize(/*periodicity*/ ctx[9]) + ""; + let t0; + let t1; + let t2; + let div3; + let div2; + let t3; + let if_block_anchor; + let current; + let mounted; + let dispose; + + function click_handler() { + return /*click_handler*/ ctx[7](/*periodicity*/ ctx[9]); + } + + let if_block = /*$settingsStore*/ ctx[0][/*periodicity*/ ctx[9]].enabled && create_if_block(ctx); + + return { + c() { + div4 = element("div"); + div1 = element("div"); + div0 = element("div"); + h3 = element("h3"); + t0 = text(t0_value); + t1 = text(" Notes"); + t2 = space(); + div3 = element("div"); + div2 = element("div"); + t3 = space(); + if (if_block) if_block.c(); + if_block_anchor = empty(); + attr(div0, "class", "setting-item-name"); + attr(div1, "class", "setting-item-info"); + attr(div2, "class", "checkbox-container"); + toggle_class(div2, "is-enabled", /*$settingsStore*/ ctx[0][/*periodicity*/ ctx[9]].enabled); + attr(div3, "class", "setting-item-control"); + attr(div4, "class", "setting-item setting-item-heading"); + }, + m(target, anchor) { + insert(target, div4, anchor); + append(div4, div1); + append(div1, div0); + append(div0, h3); + append(h3, t0); + append(h3, t1); + append(div4, t2); + append(div4, div3); + append(div3, div2); + insert(target, t3, anchor); + if (if_block) if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + + if (!mounted) { + dispose = listen(div2, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + + if (dirty & /*$settingsStore, periodicities*/ 9) { + toggle_class(div2, "is-enabled", /*$settingsStore*/ ctx[0][/*periodicity*/ ctx[9]].enabled); + } + + if (/*$settingsStore*/ ctx[0][/*periodicity*/ ctx[9]].enabled) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$settingsStore*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) detach(div4); + if (detaching) detach(t3); + if (if_block) if_block.d(detaching); + if (detaching) detach(if_block_anchor); + mounted = false; + dispose(); + } + }; +} + +function create_fragment(ctx) { + let t; + let each_1_anchor; + let current; + let if_block = /*$settingsStore*/ ctx[0].showGettingStartedBanner && create_if_block_1(ctx); + let each_value = /*periodicities*/ ctx[3]; + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + return { + c() { + if (if_block) if_block.c(); + t = space(); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = empty(); + }, + m(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert(target, t, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx, [dirty]) { + if (/*$settingsStore*/ ctx[0].showGettingStartedBanner) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$settingsStore*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_1(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(t.parentNode, t); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + + if (dirty & /*periodicities, settingsStore, $settingsStore, capitalize*/ 11) { + each_value = /*periodicities*/ ctx[3]; + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(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(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + group_outros(); + + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o(local) { + transition_out(if_block); + 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 (if_block) if_block.d(detaching); + if (detaching) detach(t); + destroy_each(each_blocks, detaching); + if (detaching) detach(each_1_anchor); + } + }; +} + +function instance($$self, $$props, $$invalidate) { + let $settingsStore; + + let { settings } = $$props; + let { onUpdateSettings } = $$props; + let settingsStore = writable(settings); + component_subscribe($$self, settingsStore, value => $$invalidate(0, $settingsStore = value)); + const unsubscribeFromSettings = settingsStore.subscribe(onUpdateSettings); + + function migrateDailyNoteSettings() { + const dailyNoteSettings = getLegacyDailyNoteSettings(); + + settingsStore.update(old => Object.assign(Object.assign({}, old), { + daily: Object.assign(Object.assign({}, dailyNoteSettings), { enabled: true }), + hasMigratedDailyNoteSettings: true + })); + } + + const periodicities = ["daily", "weekly", "monthly", "quarterly", "yearly"]; + + onDestroy(() => { + unsubscribeFromSettings(); + }); + + const func = () => { + set_store_value(settingsStore, $settingsStore.showGettingStartedBanner = false, $settingsStore); + }; + + const click_handler = periodicity => { + set_store_value(settingsStore, $settingsStore[periodicity].enabled = !$settingsStore[periodicity].enabled, $settingsStore); + }; + + $$self.$$set = $$props => { + if ("settings" in $$props) $$invalidate(4, settings = $$props.settings); + if ("onUpdateSettings" in $$props) $$invalidate(5, onUpdateSettings = $$props.onUpdateSettings); + }; + + return [ + $settingsStore, + settingsStore, + migrateDailyNoteSettings, + periodicities, + settings, + onUpdateSettings, + func, + click_handler + ]; +} + +class SettingsTab extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, create_fragment, safe_not_equal, { settings: 4, onUpdateSettings: 5 }); + } +} + +const DEFAULT_SETTINGS = Object.freeze({ + format: "", + template: "", + folder: "", +}); +class PeriodicNotesSettingsTab extends obsidian.PluginSettingTab { + constructor(app, plugin) { + super(app, plugin); + this.plugin = plugin; + } + display() { + this.containerEl.empty(); + this.view = new SettingsTab({ + target: this.containerEl, + props: { + settings: this.plugin.settings, + onUpdateSettings: this.plugin.updateSettings, + }, + }); + } +} + +class PeriodicNotesPlugin extends obsidian.Plugin { + async onload() { + this.ribbonEl = null; + this.updateSettings = this.updateSettings.bind(this); + await this.loadSettings(); + this.addSettingTab(new PeriodicNotesSettingsTab(this.app, this)); + this.app.workspace.onLayoutReady(this.onLayoutReady.bind(this)); + obsidian.addIcon("calendar-day", calendarDayIcon); + obsidian.addIcon("calendar-week", calendarWeekIcon); + obsidian.addIcon("calendar-month", calendarMonthIcon); + obsidian.addIcon("calendar-quarter", calendarQuarterIcon); + obsidian.addIcon("calendar-year", calendarYearIcon); + } + onLayoutReady() { + // If the user has Calendar Weekly Notes settings, migrate them automatically, + // since the functionality will be deprecated. + if (this.isInitialLoad && hasLegacyWeeklyNoteSettings()) { + this.migrateWeeklySettings(); + this.settings.weekly.enabled = true; + } + this.configureRibbonIcons(); + this.configureCommands(); + } + migrateWeeklySettings() { + const calendarSettings = getLegacyWeeklyNoteSettings(); + this.updateSettings(Object.assign(Object.assign({}, this.settings), { + weekly: Object.assign(Object.assign({}, calendarSettings), { enabled: true }), + hasMigratedWeeklyNoteSettings: true, + })); + } + configureRibbonIcons() { + var _a; + (_a = this.ribbonEl) === null || _a === void 0 ? void 0 : _a.detach(); + const configuredPeriodicities = [ + "daily", + "weekly", + "monthly", + "quarterly", + "yearly", + ].filter((periodicity) => this.settings[periodicity].enabled); + if (configuredPeriodicities.length) { + const periodicity = configuredPeriodicities[0]; + const config = periodConfigs[periodicity]; + this.ribbonEl = this.addRibbonIcon(`calendar-${config.unitOfTime}`, `Open ${config.relativeUnit}`, (event) => openPeriodicNote(periodicity, window.moment(), isMetaPressed(event))); + this.ribbonEl.addEventListener("contextmenu", (ev) => { + showFileMenu(this.app, this.settings, { + x: ev.pageX, + y: ev.pageY, + }); + }); + } + } + configureCommands() { + // Remove disabled commands + ["daily", "weekly", "monthly", "quarterly", "yearly"] + .filter((periodicity) => !this.settings[periodicity].enabled) + .forEach((periodicity) => { + getCommands(periodicity).forEach((command) => + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.app.commands.removeCommand(`periodic-notes:${command.id}`)); + }); + // register enabled commands + ["daily", "weekly", "monthly", "quarterly", "yearly"] + .filter((periodicity) => this.settings[periodicity].enabled) + .forEach((periodicity) => { + getCommands(periodicity).forEach(this.addCommand.bind(this)); + }); + } + async loadSettings() { + const settings = await this.loadData(); + if (!settings) { + this.isInitialLoad = true; + } + this.settings = Object.assign({}, { + showGettingStartedBanner: true, + hasMigratedDailyNoteSettings: false, + hasMigratedWeeklyNoteSettings: false, + daily: Object.assign({}, DEFAULT_SETTINGS), + weekly: Object.assign({}, DEFAULT_SETTINGS), + monthly: Object.assign({}, DEFAULT_SETTINGS), + quarterly: Object.assign({}, DEFAULT_SETTINGS), + yearly: Object.assign({}, DEFAULT_SETTINGS), + }, settings || {}); + } + onSettingsUpdate() { + this.configureCommands(); + this.configureRibbonIcons(); + // Integrations (i.e. Calendar Plugin) can listen for changes to settings + this.app.workspace.trigger(SETTINGS_UPDATED); + } + async updateSettings(val) { + this.settings = val; + await this.saveData(this.settings); + this.onSettingsUpdate(); + } +} + +module.exports = PeriodicNotesPlugin; + +/* nosourcemap */ \ No newline at end of file diff --git a/liph/.obsidian/plugins/periodic-notes/manifest.json b/liph/.obsidian/plugins/periodic-notes/manifest.json new file mode 100755 index 0000000..f34394e --- /dev/null +++ b/liph/.obsidian/plugins/periodic-notes/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "periodic-notes", + "name": "Periodic Notes", + "description": "Create/manage your daily, weekly, and monthly notes", + "version": "0.0.17", + "author": "Liam Cain", + "authorUrl": "https://github.com/liamcain/", + "isDesktopOnly": false, + "minAppVersion": "0.10.11" +} diff --git a/liph/.obsidian/plugins/periodic-notes/styles.css b/liph/.obsidian/plugins/periodic-notes/styles.css new file mode 100755 index 0000000..d388888 --- /dev/null +++ b/liph/.obsidian/plugins/periodic-notes/styles.css @@ -0,0 +1,30 @@ +.periodic-modal { + min-width: 40vw; +} + +.settings-banner { + background-color: var(--background-primary-alt); + border-radius: 8px; + border: 1px solid var(--background-modifier-border); + margin-bottom: 1em; + margin-top: 1em; + padding: 1.5em; + text-align: left; +} + +.settings-banner h3 { + margin-top: 0; +} + +.settings-banner h4 { + margin-bottom: 0.25em; +} + +.has-error { + color: var(--text-error); +} + +input.has-error { + color: var(--text-error); + border-color: var(--text-error); +} diff --git a/liph/.obsidian/plugins/quickadd/data.json b/liph/.obsidian/plugins/quickadd/data.json index 6dc70b2..f55dd67 100755 --- a/liph/.obsidian/plugins/quickadd/data.json +++ b/liph/.obsidian/plugins/quickadd/data.json @@ -13,7 +13,7 @@ "createFileIfItDoesntExist": { "enabled": true, "createWithTemplate": true, - "template": "Tasks/_templates/Daily Notes.md" + "template": "_templates/Daily Notes.md" }, "format": { "enabled": true, @@ -60,7 +60,7 @@ "createFileIfItDoesntExist": { "enabled": true, "createWithTemplate": true, - "template": "Tasks/_templates/Daily Notes.md" + "template": "_templates/Daily Notes.md" }, "format": { "enabled": true, @@ -100,14 +100,14 @@ "type": "Capture", "command": true, "appendLink": false, - "captureTo": "Notes/Daily/{{DATE:YYYY-MM-DD ddd}}", + "captureTo": "Dreams/dreamdiary/{{DATE:YYYY-MM-DD ddd}}", "captureToActiveFile": false, "captureToCanvasNodeId": "", "activeFileWritePosition": "cursor", "createFileIfItDoesntExist": { "enabled": true, "createWithTemplate": true, - "template": "Tasks/_templates/Daily Notes.md" + "template": "_templates/dreamdiary.md" }, "format": { "enabled": true, @@ -115,7 +115,54 @@ }, "insertAfter": { "enabled": true, - "after": "## Dreams", + "after": "## Diary", + "insertAtEnd": true, + "considerSubsections": false, + "createIfNotFound": false, + "createIfNotFoundLocation": "top", + "inline": false, + "replaceExisting": false, + "blankLineAfterMatchMode": "auto" + }, + "newLineCapture": { + "enabled": false, + "direction": "below" + }, + "prepend": false, + "task": false, + "openFile": false, + "fileOpening": { + "location": "tab", + "direction": "vertical", + "mode": "default", + "focus": true + }, + "templater": { + "afterCapture": "none" + } + }, + { + "id": "3041856e-6cb4-43f1-8cb4-b3a851c27215", + "name": "Dreamsigns", + "type": "Capture", + "command": true, + "appendLink": false, + "captureTo": "Dreams/dreamdiary/{{DATE:YYYY-MM-DD ddd}}", + "captureToActiveFile": false, + "captureToCanvasNodeId": "", + "activeFileWritePosition": "cursor", + "createFileIfItDoesntExist": { + "enabled": true, + "createWithTemplate": true, + "template": "_templates/dreamdiary.md" + }, + "format": { + "enabled": true, + "format": "- {{VALUE:What were your dreamsigns?}} \\n" + }, + "insertAfter": { + "enabled": true, + "after": "## Dreamsigns", "insertAtEnd": true, "considerSubsections": false, "createIfNotFound": false, diff --git a/liph/.obsidian/plugins/templater-obsidian/data.json b/liph/.obsidian/plugins/templater-obsidian/data.json new file mode 100755 index 0000000..d0e12f0 --- /dev/null +++ b/liph/.obsidian/plugins/templater-obsidian/data.json @@ -0,0 +1,43 @@ +{ + "command_timeout": 5, + "templates_folder": "_templates", + "templates_pairs": [ + [ + "", + "" + ] + ], + "trigger_on_file_creation": false, + "auto_jump_to_cursor": false, + "enable_system_commands": false, + "shell_path": "", + "user_scripts_folder": "", + "enable_folder_templates": true, + "folder_templates": [ + { + "folder": "", + "template": "" + } + ], + "enable_file_templates": false, + "file_templates": [ + { + "regex": ".*", + "template": "" + } + ], + "syntax_highlighting": true, + "syntax_highlighting_mobile": false, + "enabled_templates_hotkeys": [ + "" + ], + "startup_templates": [ + "" + ], + "intellisense_render": 1, + "ignore_folders_on_creation": [ + { + "folder": "" + } + ] +} \ No newline at end of file diff --git a/liph/.obsidian/plugins/templater-obsidian/main.js b/liph/.obsidian/plugins/templater-obsidian/main.js new file mode 100755 index 0000000..0ad231b --- /dev/null +++ b/liph/.obsidian/plugins/templater-obsidian/main.js @@ -0,0 +1,53 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var Gi=Object.create;var Lt=Object.defineProperty;var Ri=Object.getOwnPropertyDescriptor;var Vi=Object.getOwnPropertyNames;var zi=Object.getPrototypeOf,Ji=Object.prototype.hasOwnProperty;var Or=r=>Lt(r,"__esModule",{value:!0});var Wi=(r,e)=>{Or(r);for(var t in e)Lt(r,t,{get:e[t],enumerable:!0})},Qi=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Vi(e))!Ji.call(r,n)&&n!=="default"&&Lt(r,n,{get:()=>e[n],enumerable:!(t=Ri(e,n))||t.enumerable});return r},Y=r=>Qi(Or(Lt(r!=null?Gi(zi(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var qr=(()=>{for(var r=new Uint8Array(128),e=0;e<64;e++)r[e<26?e+65:e<52?e+71:e<62?e-4:e*4-205]=e;return t=>{for(var n=t.length,i=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),o=0,s=0;o>4,i[s++]=u<<4|d>>2,i[s++]=d<<6|h}return i}})();Wi(exports,{default:()=>wr});var _n=Y(require("obsidian"));var P=Y(require("obsidian"));var Lr=Y(require("obsidian"));function z(r){let e=new Lr.Notice("",8e3),t=createFragment(n=>{n.createEl("b",{text:"Templater error"}),n.createSpan({text:":"}),n.createEl("br"),n.createSpan({text:r.message}),r instanceof T&&r.console_msg&&(n.createEl("br"),n.createSpan({text:"Check console for more information"}),console.error("Templater Error:",r.message,` +`,r.console_msg))});e.messageEl.appendChild(t)}var T=class extends Error{constructor(e,t){super(e);this.console_msg=t;this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}};async function se(r,e){try{return await r()}catch(t){return t instanceof T?z(t):z(new T(e,t instanceof Error?t.message:void 0)),null}}function ce(r,e){try{return r()}catch(t){return z(new T(e,t instanceof Error?t.message:void 0)),null}}var J=function(){function r(){}return r.explainIfInvalidTSDocTagName=function(e){if(e[0]!=="@")return'A TSDoc tag name must start with an "@" symbol';if(!r._tsdocTagNameRegExp.test(e))return"A TSDoc tag name must start with a letter and contain only letters and numbers"},r.validateTSDocTagName=function(e){var t=r.explainIfInvalidTSDocTagName(e);if(t)throw new Error(t)},r.explainIfInvalidLinkUrl=function(e){if(e.length===0)return"The URL cannot be empty";if(!r._urlSchemeRegExp.test(e))return'An @link URL must begin with a scheme comprised only of letters and numbers followed by "://". (For general URLs, use an HTML "" tag instead.)';if(!r._urlSchemeAfterRegExp.test(e))return'An @link URL must have at least one character after "://"'},r.explainIfInvalidHtmlName=function(e){if(!r._htmlNameRegExp.test(e))return"An HTML name must be an ASCII letter followed by zero or more letters, digits, or hyphens"},r.validateHtmlName=function(e){var t=r.explainIfInvalidHtmlName(e);if(t)throw new Error(t)},r.explainIfInvalidPackageName=function(e){if(e.length===0)return"The package name cannot be an empty string";if(!r._validPackageNameRegExp.test(e))return"The package name ".concat(JSON.stringify(e)," is not a valid package name")},r.explainIfInvalidImportPath=function(e,t){if(e.length>0){if(e.indexOf("//")>=0)return'An import path must not contain "//"';if(e[e.length-1]==="/")return'An import path must not end with "/"';if(!t&&e[0]==="/")return'An import path must not start with "/" unless prefixed by a package name'}},r.isSystemSelector=function(e){return r._systemSelectors.has(e)},r.explainIfInvalidUnquotedIdentifier=function(e){if(e.length===0)return"The identifier cannot be an empty string";if(r._identifierBadCharRegExp.test(e))return"The identifier cannot non-word characters";if(r._identifierNumberStartRegExp.test(e))return"The identifier must not start with a number"},r.explainIfInvalidUnquotedMemberIdentifier=function(e){var t=r.explainIfInvalidUnquotedIdentifier(e);if(t!==void 0)return t;if(r.isSystemSelector(e))return'The identifier "'.concat(e,'" must be quoted because it is a TSDoc system selector name')},r._tsdocTagNameRegExp=/^@[a-z][a-z0-9]*$/i,r._urlSchemeRegExp=/^[a-z][a-z0-9]*\:\/\//i,r._urlSchemeAfterRegExp=/^[a-z][a-z0-9]*\:\/\/./i,r._htmlNameRegExp=/^[a-z]+[a-z0-9\-]*$/i,r._identifierBadCharRegExp=/[^a-z0-9_$]/i,r._identifierNumberStartRegExp=/^[0-9]/,r._validPackageNameRegExp=/^(?:@[a-z0-9\-_\.]+\/)?[a-z0-9\-_\.]+$/i,r._systemSelectors=new Set(["instance","static","constructor","class","enum","function","interface","namespace","type","variable"]),r}();var Cn=function(){function r(){this._docNodeDefinitionsByKind=new Map,this._docNodeDefinitionsByConstructor=new Map}return r.prototype.registerDocNodes=function(e,t){var n=J.explainIfInvalidPackageName(e);if(n)throw new Error("Invalid NPM package name: "+n);for(var i=0,o=t;i0&&i.appendNodes(n),i}return Object.defineProperty(e.prototype,"nodes",{get:function(){return this._nodes},enumerable:!1,configurable:!0}),e.prototype.appendNode=function(t){if(!this.configuration.docNodeManager.isAllowedChild(this.kind,t.kind))throw new Error("The TSDocConfiguration does not allow a ".concat(this.kind," node to")+" contain a node of type ".concat(t.kind));this._nodes.push(t)},e.prototype.appendNodes=function(t){for(var n=0,i=t;n0){var i=this.nodes[this.nodes.length-1];i.kind===g.Paragraph&&(n=i)}n||(n=new ke({configuration:this.configuration}),this.appendNode(n)),n.appendNode(t)},e.prototype.appendNodesInParagraph=function(t){for(var n=0,i=t;n1){var e=this._chunks.join("");this._chunks.length=1,this._chunks[0]=e}return this._chunks[0]},r}();var Kr=function(){function r(){}return r.transform=function(e){for(var t=[],n=!1,i=[],o=[],s=!1,l=0,u=e.nodes;l0&&(n&&(i.push(" "),n=!1),i.push(I),o.push(d),s=!0),M&&s&&(n=!0);break;case g.SoftBreak:s&&(n=!0),o.push(d);break;default:n&&(i.push(" "),n=!1),i.length>0&&(t.push(new me({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0),t.push(d),s=!0}}i.length>0&&(t.push(new me({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0);var K=new ke({configuration:e.configuration});return K.appendNodes(t),K},r}();var In=function(){function r(){}return r.trimSpacesInParagraph=function(e){return Kr.transform(e)},r}();var Bn=function(r,e,t){if(t||arguments.length===2)for(var n=0,i=e.length,o;n0&&(this._ensureLineSkipped(),this._renderNodes(s.modifierTagSet.nodes));break;case g.DeclarationReference:var l=e;this._writeContent(l.packageName),this._writeContent(l.importPath),(l.packageName!==void 0||l.importPath!==void 0)&&this._writeContent("#"),this._renderNodes(l.memberReferences);break;case g.ErrorText:var u=e;this._writeContent(u.text);break;case g.EscapedText:var d=e;this._writeContent(d.encodedText);break;case g.FencedCode:var h=e;this._ensureAtStartOfLine(),this._writeContent("```"),this._writeContent(h.language),this._writeNewline(),this._writeContent(h.code),this._writeContent("```"),this._writeNewline(),this._writeNewline();break;case g.HtmlAttribute:var j=e;this._writeContent(j.name),this._writeContent(j.spacingAfterName),this._writeContent("="),this._writeContent(j.spacingAfterEquals),this._writeContent(j.value),this._writeContent(j.spacingAfterValue);break;case g.HtmlEndTag:var E=e;this._writeContent("");break;case g.HtmlStartTag:var M=e;this._writeContent("<"),this._writeContent(M.name),this._writeContent(M.spacingAfterName);for(var I=M.spacingAfterName===void 0||M.spacingAfterName.length===0,K=0,D=M.htmlAttributes;K":">");break;case g.InheritDocTag:var ie=e;this._renderInlineTag(ie,function(){ie.declarationReference&&(t._writeContent(" "),t._renderNode(ie.declarationReference))});break;case g.InlineTag:var oe=e;this._renderInlineTag(oe,function(){oe.tagContent.length>0&&(t._writeContent(" "),t._writeContent(oe.tagContent))});break;case g.LinkTag:var W=e;this._renderInlineTag(W,function(){(W.urlDestination!==void 0||W.codeDestination!==void 0)&&(W.urlDestination!==void 0?(t._writeContent(" "),t._writeContent(W.urlDestination)):W.codeDestination!==void 0&&(t._writeContent(" "),t._renderNode(W.codeDestination))),W.linkText!==void 0&&(t._writeContent(" "),t._writeContent("|"),t._writeContent(" "),t._writeContent(W.linkText))});break;case g.MemberIdentifier:var Ue=e;Ue.hasQuotes?(this._writeContent('"'),this._writeContent(Ue.identifier),this._writeContent('"')):this._writeContent(Ue.identifier);break;case g.MemberReference:var fe=e;fe.hasDot&&this._writeContent("."),fe.selector&&this._writeContent("("),fe.memberSymbol?this._renderNode(fe.memberSymbol):this._renderNode(fe.memberIdentifier),fe.selector&&(this._writeContent(":"),this._renderNode(fe.selector),this._writeContent(")"));break;case g.MemberSelector:var xn=e;this._writeContent(xn.selector);break;case g.MemberSymbol:var Pt=e;this._writeContent("["),this._renderNode(Pt.symbolReference),this._writeContent("]");break;case g.Section:var yn=e;this._renderNodes(yn.nodes);break;case g.Paragraph:var gt=In.trimSpacesInParagraph(e);gt.nodes.length>0&&(this._hangingParagraph?this._hangingParagraph=!1:this._ensureLineSkipped(),this._renderNodes(gt.nodes),this._writeNewline());break;case g.ParamBlock:var A=e;this._ensureLineSkipped(),this._renderNode(A.blockTag),this._writeContent(" "),this._writeContent(A.parameterName),this._writeContent(" - "),this._hangingParagraph=!0,this._renderNode(A.content),this._hangingParagraph=!1;break;case g.ParamCollection:var k=e;this._renderNodes(k.blocks);break;case g.PlainText:var f=e;this._writeContent(f.text);break}},r.prototype._renderInlineTag=function(e,t){this._writeContent("{"),this._writeContent(e.tagName),t(),this._writeContent("}")},r.prototype._renderNodes=function(e){for(var t=0,n=e;t1){for(var n=!0,i=0,o=t;i0?this.params:void 0,this.typeParams.count>0?this.typeParams:void 0,this.returnsBlock],this.customBlocks,!0),this.seeBlocks,!0),[this.inheritDocTag],!1),this.modifierTagSet.nodes,!0)},e.prototype.emitAsTsdoc=function(){var t=new Se,n=new Ce;return n.renderComment(t,this),t.toString()},e}(v);var co=function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}}(),lo=function(r,e,t){if(t||arguments.length===2)for(var n=0,i=e.length,o;n=t},r._scanTextContent=function(e,t,n){for(var i=0,o=e;i=t||(n+=r._scanTextContent(s.getChildNodes(),t,n),n>=t))break}return n},r._countNonSpaceCharacters=function(e){for(var t=0,n=e.length,i=0;ithis.buffer.length)return{line:0,column:0};for(var t=1,n=1,i=0;ithis.buffer.length)throw new Error("TextRange.pos cannot exceed the associated text buffer length");if(this.end>this.buffer.length)throw new Error("TextRange.end cannot exceed the associated text buffer length")},r.empty=new r("",0,0),r}();var Tt=function(){function r(e){this.messageId=e.messageId,this.unformattedText=e.messageText,this.textRange=e.textRange,this.tokenSequence=e.tokenSequence,this.docNode=e.docNode,this._text=void 0}return r._formatMessageText=function(e,t){if(e||(e="An unknown error occurred"),t.pos!==0||t.end!==0){var n=t.getLocation(t.pos);if(n.line)return"(".concat(n.line,",").concat(n.column,"): ")+e}return e},Object.defineProperty(r.prototype,"text",{get:function(){return this._text===void 0&&(this._text=r._formatMessageText(this.unformattedText,this.textRange)),this._text},enumerable:!1,configurable:!0}),r.prototype.toString=function(){return this.text},r}();var On=function(){function r(){this._messages=[]}return Object.defineProperty(r.prototype,"messages",{get:function(){return this._messages},enumerable:!1,configurable:!0}),r.prototype.addMessage=function(e){this._messages.push(e)},r.prototype.addMessageForTextRange=function(e,t,n){this.addMessage(new Tt({messageId:e,messageText:t,textRange:n}))},r.prototype.addMessageForTokenSequence=function(e,t,n,i){this.addMessage(new Tt({messageId:e,messageText:t,textRange:n.getContainingTextRange(),tokenSequence:n,docNode:i}))},r.prototype.addMessageForDocErrorText=function(e){var t;e.textExcerpt?t=e.textExcerpt:t=e.errorLocation,this.addMessage(new Tt({messageId:e.messageId,messageText:e.errorMessage,textRange:t.getContainingTextRange(),tokenSequence:t,docNode:e}))},r}();var qn=function(){function r(e,t){this.commentRange=ye.empty,this.lines=[],this.tokens=[],this.configuration=e,this.sourceRange=t,this.docComment=new Kt({configuration:this.configuration}),this.log=new On}return r}();var qe=function(){function r(e){this.parserContext=e.parserContext,this._startIndex=e.startIndex,this._endIndex=e.endIndex,this._validateBounds()}return r.createEmpty=function(e){return new r({parserContext:e,startIndex:0,endIndex:0})},Object.defineProperty(r.prototype,"startIndex",{get:function(){return this._startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"endIndex",{get:function(){return this._endIndex},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"tokens",{get:function(){return this.parserContext.tokens.slice(this._startIndex,this._endIndex)},enumerable:!1,configurable:!0}),r.prototype.getNewSequence=function(e,t){return new r({parserContext:this.parserContext,startIndex:e,endIndex:t})},r.prototype.getContainingTextRange=function(){return this.isEmpty()?ye.empty:this.parserContext.sourceRange.getNewRange(this.parserContext.tokens[this._startIndex].range.pos,this.parserContext.tokens[this._endIndex-1].range.end)},r.prototype.isEmpty=function(){return this._startIndex===this._endIndex},r.prototype.toString=function(){return this.tokens.map(function(e){return e.toString()}).join("")},r.prototype._validateBounds=function(){if(this.startIndex<0)throw new Error("TokenSequence.startIndex cannot be negative");if(this.endIndex<0)throw new Error("TokenSequence.endIndex cannot be negative");if(this.endIndexthis.parserContext.tokens.length)throw new Error("TokenSequence.startIndex cannot exceed the associated token array");if(this.endIndex>this.parserContext.tokens.length)throw new Error("TokenSequence.endIndex cannot exceed the associated token array")},r}();var Q;(function(r){r[r.BeginComment1=0]="BeginComment1",r[r.BeginComment2=1]="BeginComment2",r[r.CollectingFirstLine=2]="CollectingFirstLine",r[r.CollectingLine=3]="CollectingLine",r[r.AdvancingLine=4]="AdvancingLine",r[r.Done=5]="Done"})(Q||(Q={}));var Gr=function(){function r(){}return r.extract=function(e){for(var t=e.sourceRange,n=t.buffer,i=0,o=0,s=0,l=0,u=t.pos,d=Q.BeginComment1,h=[];d!==Q.Done;){if(u>=t.end)switch(d){case Q.BeginComment1:case Q.BeginComment2:return e.log.addMessageForTextRange(w.CommentNotFound,'Expecting a "/**" comment',t),!1;default:return e.log.addMessageForTextRange(w.CommentMissingClosingDelimiter,"Unexpected end of input",t),!1}var j=n[u],E=u;++u;var M=us)&&h.push(t.getNewRange(s,l)),s=u,l=u,d=Q.AdvancingLine):j==="*"&&M==="/"?(l>s&&h.push(t.getNewRange(s,l)),s=0,l=0,++u,o=u,d=Q.Done):r._whitespaceCharacterRegExp.test(j)||(l=u);break;case Q.AdvancingLine:j==="*"?M==="/"?(s=0,l=0,++u,o=u,d=Q.Done):(M===" "&&++u,s=u,l=u,d=Q.CollectingLine):j===` +`?(h.push(t.getNewRange(E,E)),s=u):r._whitespaceCharacterRegExp.test(j)||(l=u,d=Q.CollectingLine);break}}return e.commentRange=t.getNewRange(i,o),e.lines=h,!0},r._whitespaceCharacterRegExp=/^\s$/,r}();var bt=function(){function r(){}return r.readTokens=function(e){r._ensureInitialized();for(var t=[],n=void 0,i=0,o=e;i":p.GreaterThan,"=":p.Equals,"'":p.SingleQuote,'"':p.DoubleQuote,"/":p.Slash,"-":p.Hyphen,"@":p.AtSign,"{":p.LeftCurlyBracket,"}":p.RightCurlyBracket,"`":p.Backtick,".":p.Period,":":p.Colon,",":p.Comma,"[":p.LeftSquareBracket,"]":p.RightSquareBracket,"|":p.Pipe,"(":p.LeftParenthesis,")":p.RightParenthesis,"#":p.PoundSymbol,"+":p.Plus,$:p.DollarSign},o=0,s=Object.getOwnPropertyNames(i);o?@[\\]^`{|}~",r._wordCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",r}();var Ln=function(){function r(e,t){if(this._parserContext=e,this.tokens=e.tokens,t){if(t.parserContext!==this._parserContext)throw new Error("The embeddedTokenSequence must use the same parser context");this._readerStartIndex=t.startIndex,this._readerEndIndex=t.endIndex}else this._readerStartIndex=0,this._readerEndIndex=this.tokens.length;this._currentIndex=this._readerStartIndex,this._accumulatedStartIndex=this._readerStartIndex}return r.prototype.extractAccumulatedSequence=function(){if(this._accumulatedStartIndex===this._currentIndex)throw new Error("Parser assertion failed: The queue should not be empty when extractAccumulatedSequence() is called");var e=new qe({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex});return this._accumulatedStartIndex=this._currentIndex,e},r.prototype.isAccumulatedSequenceEmpty=function(){return this._accumulatedStartIndex===this._currentIndex},r.prototype.tryExtractAccumulatedSequence=function(){if(!this.isAccumulatedSequenceEmpty())return this.extractAccumulatedSequence()},r.prototype.assertAccumulatedSequenceIsEmpty=function(){if(!this.isAccumulatedSequenceEmpty()){var e=new qe({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex}),t=e.tokens.map(function(n){return n.toString()});throw new Error(`Parser assertion failed: The queue should be empty, but it contains: +`+JSON.stringify(t))}},r.prototype.peekToken=function(){return this.tokens[this._currentIndex]},r.prototype.peekTokenKind=function(){return this._currentIndex>=this._readerEndIndex?p.EndOfInput:this.tokens[this._currentIndex].kind},r.prototype.peekTokenAfterKind=function(){return this._currentIndex+1>=this._readerEndIndex?p.EndOfInput:this.tokens[this._currentIndex+1].kind},r.prototype.peekTokenAfterAfterKind=function(){return this._currentIndex+2>=this._readerEndIndex?p.EndOfInput:this.tokens[this._currentIndex+2].kind},r.prototype.readToken=function(){if(this._currentIndex>=this._readerEndIndex)throw new Error("Cannot read past end of stream");var e=this.tokens[this._currentIndex];if(e.kind===p.EndOfInput)throw new Error("The EndOfInput token cannot be read");return this._currentIndex++,e},r.prototype.peekPreviousTokenKind=function(){return this._currentIndex===0?p.EndOfInput:this.tokens[this._currentIndex-1].kind},r.prototype.createMarker=function(){return this._currentIndex},r.prototype.backtrackToMarker=function(e){if(e>this._currentIndex)throw new Error("The marker has expired");this._currentIndex=e,e" character should be escaped using a backslash to avoid confusion with an HTML tag'));break;case p.Backtick:this._pushAccumulatedPlainText(e),e.peekTokenAfterKind()===p.Backtick&&e.peekTokenAfterAfterKind()===p.Backtick?this._pushNode(this._parseFencedCode(e)):this._pushNode(this._parseCodeSpan(e));break;default:e.readToken();break}this._pushAccumulatedPlainText(e),this._performValidationChecks()},r.prototype._performValidationChecks=function(){var e=this._parserContext.docComment;e.deprecatedBlock&&(on.hasAnyTextContent(e.deprecatedBlock)||this._parserContext.log.addMessageForTokenSequence(w.MissingDeprecationMessage,"The ".concat(e.deprecatedBlock.blockTag.tagName," block must include a deprecation message,")+" e.g. describing the recommended alternative",e.deprecatedBlock.blockTag.getTokenSequence(),e.deprecatedBlock)),e.inheritDocTag&&(e.remarksBlock&&this._parserContext.log.addMessageForTokenSequence(w.InheritDocIncompatibleTag,'A "'.concat(e.remarksBlock.blockTag.tagName,'" block must not be used, because that')+" content is provided by the @inheritDoc tag",e.remarksBlock.blockTag.getTokenSequence(),e.remarksBlock.blockTag),on.hasAnyTextContent(e.summarySection)&&this._parserContext.log.addMessageForTextRange(w.InheritDocIncompatibleSummary,"The summary section must not have any content, because that content is provided by the @inheritDoc tag",this._parserContext.commentRange))},r.prototype._validateTagDefinition=function(e,t,n,i,o){if(e){var s=e.syntaxKind===F.InlineTag;s!==n?n?this._parserContext.log.addMessageForTokenSequence(w.TagShouldNotHaveBraces,'The TSDoc tag "'.concat(t,'" is not an inline tag; it must not be enclosed in "{ }" braces'),i,o):this._parserContext.log.addMessageForTokenSequence(w.InlineTagMissingBraces,'The TSDoc tag "'.concat(t,'" is an inline tag; it must be enclosed in "{ }" braces'),i,o):this._parserContext.configuration.validation.reportUnsupportedTags&&(this._parserContext.configuration.isTagSupported(e)||this._parserContext.log.addMessageForTokenSequence(w.UnsupportedTag,'The TSDoc tag "'.concat(t,'" is not supported by this tool'),i,o))}else this._parserContext.configuration.validation.ignoreUndefinedTags||this._parserContext.log.addMessageForTokenSequence(w.UndefinedTag,'The TSDoc tag "'.concat(t,'" is not defined in this configuration'),i,o)},r.prototype._pushAccumulatedPlainText=function(e){e.isAccumulatedSequenceEmpty()||this._pushNode(new me({parsed:!0,configuration:this._configuration,textExcerpt:e.extractAccumulatedSequence()}))},r.prototype._parseAndPushBlock=function(e){var t=this._parserContext.docComment,n=this._parserContext.configuration,i=t.modifierTagSet,o=this._parseBlockTag(e);if(o.kind!==g.BlockTag){this._pushNode(o);return}var s=o,l=n.tryGetTagDefinitionWithUpperCase(s.tagNameWithUpperCase);if(this._validateTagDefinition(l,s.tagName,!1,s.getTokenSequence(),s),l)switch(l.syntaxKind){case F.BlockTag:if(s.tagNameWithUpperCase===L.param.tagNameWithUpperCase){var u=this._parseParamBlock(e,s,L.param.tagName);this._parserContext.docComment.params.add(u),this._currentSection=u.content;return}else if(s.tagNameWithUpperCase===L.typeParam.tagNameWithUpperCase){var u=this._parseParamBlock(e,s,L.typeParam.tagName);this._parserContext.docComment.typeParams.add(u),this._currentSection=u.content;return}else{var d=new it({configuration:this._configuration,blockTag:s});this._addBlockToDocComment(d),this._currentSection=d.content}return;case F.ModifierTag:i.addTag(s);return}this._pushNode(s)},r.prototype._addBlockToDocComment=function(e){var t=this._parserContext.docComment;switch(e.blockTag.tagNameWithUpperCase){case L.remarks.tagNameWithUpperCase:t.remarksBlock=e;break;case L.privateRemarks.tagNameWithUpperCase:t.privateRemarks=e;break;case L.deprecated.tagNameWithUpperCase:t.deprecatedBlock=e;break;case L.returns.tagNameWithUpperCase:t.returnsBlock=e;break;case L.see.tagNameWithUpperCase:t._appendSeeBlock(e);break;default:t.appendCustomBlock(e)}},r.prototype._tryParseJSDocTypeOrValueRest=function(e,t,n,i){for(var o,s=1;s>0;){var l=e.peekTokenKind();switch(l){case t:o===void 0&&s++;break;case n:o===void 0&&s--;break;case p.Backslash:o!==void 0&&(e.readToken(),l=e.peekTokenKind());break;case p.DoubleQuote:case p.SingleQuote:case p.Backtick:o===l?o=void 0:o===void 0&&(o=l);break}if(l===p.EndOfInput){e.backtrackToMarker(i);return}e.readToken()}return e.tryExtractAccumulatedSequence()},r.prototype._tryParseUnsupportedJSDocType=function(e,t,n){if(e.assertAccumulatedSequenceIsEmpty(),!(e.peekTokenKind()!==p.LeftCurlyBracket||e.peekTokenAfterKind()===p.AtSign)){var i=e.createMarker();e.readToken();var o=this._tryParseJSDocTypeOrValueRest(e,p.LeftCurlyBracket,p.RightCurlyBracket,i);if(o){this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidType,"The "+n+" block should not include a JSDoc-style '{type}'",o,t);var s=this._tryReadSpacingAndNewlines(e);s&&(o=o.getNewSequence(o.startIndex,s.endIndex))}return o}},r.prototype._tryParseJSDocOptionalNameRest=function(e){if(e.assertAccumulatedSequenceIsEmpty(),e.peekTokenKind()!==p.EndOfInput){var t=e.createMarker();return this._tryParseJSDocTypeOrValueRest(e,p.LeftSquareBracket,p.RightSquareBracket,t)}},r.prototype._parseParamBlock=function(e,t,n){var i=e.createMarker(),o=this._tryReadSpacingAndNewlines(e),s=this._tryParseUnsupportedJSDocType(e,t,n),l;e.peekTokenKind()===p.LeftSquareBracket&&(e.readToken(),l=e.extractAccumulatedSequence());for(var u="",d=!1;!d;)switch(e.peekTokenKind()){case p.AsciiWord:case p.Period:case p.DollarSign:u+=e.readToken();break;default:d=!0;break}var h=J.explainIfInvalidUnquotedIdentifier(u);if(h!==void 0){e.backtrackToMarker(i);var j=new vt({configuration:this._configuration,blockTag:t,parameterName:""}),E=u.length>0?"The "+n+" block should be followed by a valid parameter name: "+h:"The "+n+" block should be followed by a parameter name";return this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidName,E,t.getTokenSequence(),t),j}var M=e.extractAccumulatedSequence(),I;if(l){I=this._tryParseJSDocOptionalNameRest(e);var K=l;I&&(K=t.getTokenSequence().getNewSequence(l.startIndex,I.endIndex)),this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidOptionalName,"The "+n+" should not include a JSDoc-style optional name; it must not be enclosed in '[ ]' brackets.",K,t)}var D=this._tryReadSpacingAndNewlines(e),R=this._tryParseUnsupportedJSDocType(e,t,n),ie,oe,W;return e.peekTokenKind()===p.Hyphen?(e.readToken(),ie=e.extractAccumulatedSequence(),oe=this._tryReadSpacingAndNewlines(e),W=this._tryParseUnsupportedJSDocType(e,t,n)):this._parserContext.log.addMessageForTokenSequence(w.ParamTagMissingHyphen,"The "+n+" block should be followed by a parameter name and then a hyphen",t.getTokenSequence(),t),new vt({parsed:!0,configuration:this._configuration,blockTag:t,spacingBeforeParameterNameExcerpt:o,unsupportedJsdocTypeBeforeParameterNameExcerpt:s,unsupportedJsdocOptionalNameOpenBracketExcerpt:l,parameterNameExcerpt:M,parameterName:u,unsupportedJsdocOptionalNameRestExcerpt:I,spacingAfterParameterNameExcerpt:D,unsupportedJsdocTypeAfterParameterNameExcerpt:R,hyphenExcerpt:ie,spacingAfterHyphenExcerpt:oe,unsupportedJsdocTypeAfterHyphenExcerpt:W})},r.prototype._pushNode=function(e){this._configuration.docNodeManager.isAllowedChild(g.Paragraph,e.kind)?this._currentSection.appendNodeInParagraph(e):this._currentSection.appendNode(e)},r.prototype._parseBackslashEscape=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.readToken(),e.peekTokenKind()===p.EndOfInput)return this._backtrackAndCreateError(e,t,w.UnnecessaryBackslash,"A backslash must precede another character that is being escaped");var n=e.readToken();if(!bt.isPunctuation(n.kind))return this._backtrackAndCreateError(e,t,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");var i=e.extractAccumulatedSequence();return new Yt({parsed:!0,configuration:this._configuration,escapeStyle:rn.CommonMarkBackslash,encodedTextExcerpt:i,decodedText:n.toString()})},r.prototype._parseBlockTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==p.AtSign)return this._backtrackAndCreateError(e,t,w.MissingTag,'Expecting a TSDoc tag starting with "@"');switch(e.peekPreviousTokenKind()){case p.EndOfInput:case p.Spacing:case p.Newline:break;default:return this._backtrackAndCreateError(e,t,w.AtSignInWord,'The "@" character looks like part of a TSDoc tag; use a backslash to escape it')}var n=e.readToken().toString();if(e.peekTokenKind()!==p.AsciiWord)return this._backtrackAndCreateError(e,t,w.AtSignWithoutTagName,'Expecting a TSDoc tag name after "@"; if it is not a tag, use a backslash to escape this character');for(var i=e.createMarker();e.peekTokenKind()===p.AsciiWord;)n+=e.readToken().toString();switch(e.peekTokenKind()){case p.Spacing:case p.Newline:case p.EndOfInput:break;default:var o=e.peekToken().range.toString()[0];return this._backtrackAndCreateError(e,t,w.CharactersAfterBlockTag,'The token "'.concat(n,'" looks like a TSDoc tag but contains an invalid character')+" ".concat(JSON.stringify(o),'; if it is not a tag, use a backslash to escape the "@"'))}if(J.explainIfInvalidTSDocTagName(n)){var s=this._createFailureForTokensSince(e,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorForFailure(e,t,"",s)}return new Ht({parsed:!0,configuration:this._configuration,tagName:n,tagNameExcerpt:e.extractAccumulatedSequence()})},r.prototype._parseInlineTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==p.LeftCurlyBracket)return this._backtrackAndCreateError(e,t,w.MissingTag,'Expecting a TSDoc tag starting with "{"');e.readToken();var n=e.extractAccumulatedSequence(),i=e.createMarker();if(e.peekTokenKind()!==p.AtSign)return this._backtrackAndCreateError(e,t,w.MalformedInlineTag,'Expecting a TSDoc tag starting with "{@"');for(var o=e.readToken().toString();e.peekTokenKind()===p.AsciiWord;)o+=e.readToken().toString();if(o==="@"){var s=this._createFailureForTokensSince(e,w.MalformedInlineTag,'Expecting a TSDoc inline tag name after the "{@" characters',i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",s)}if(J.explainIfInvalidTSDocTagName(o)){var s=this._createFailureForTokensSince(e,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",s)}var l=e.extractAccumulatedSequence(),u=this._tryReadSpacingAndNewlines(e);if(u===void 0&&e.peekTokenKind()!==p.RightCurlyBracket){var d=e.peekToken().range.toString()[0],s=this._createFailureForToken(e,w.CharactersAfterInlineTag,"The character ".concat(JSON.stringify(d)," cannot appear after the TSDoc tag name; expecting a space"));return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",s)}for(var h=!1;!h;)switch(e.peekTokenKind()){case p.EndOfInput:return this._backtrackAndCreateErrorRange(e,t,i,w.InlineTagMissingRightBrace,'The TSDoc inline tag name is missing its closing "}"');case p.Backslash:if(e.readToken(),!bt.isPunctuation(e.peekTokenKind())){var s=this._createFailureForToken(e,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"Error reading inline TSDoc tag: ",s)}e.readToken();break;case p.LeftCurlyBracket:{var s=this._createFailureForToken(e,w.InlineTagUnescapedBrace,'The "{" character must be escaped with a backslash when used inside a TSDoc inline tag');return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",s)}case p.RightCurlyBracket:h=!0;break;default:e.readToken();break}var j=e.tryExtractAccumulatedSequence();e.readToken();var E=e.extractAccumulatedSequence(),M={parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:n,tagNameExcerpt:l,tagName:o,spacingAfterTagNameExcerpt:u,tagContentExcerpt:j,closingDelimiterExcerpt:E},I=o.toUpperCase(),K=new Ln(this._parserContext,j||qe.createEmpty(this._parserContext)),D;switch(I){case L.inheritDoc.tagNameWithUpperCase:D=this._parseInheritDocTag(M,K);break;case L.link.tagNameWithUpperCase:D=this._parseLinkTag(M,K);break;default:D=new ot(M)}var R=this._parserContext.configuration.tryGetTagDefinitionWithUpperCase(I);return this._validateTagDefinition(R,o,!0,l,D),D},r.prototype._parseInheritDocTag=function(e,t){var n=new ot(e),i=an({},e);if(t.peekTokenKind()!==p.EndOfInput){if(i.declarationReference=this._parseDeclarationReference(t,e.tagNameExcerpt,n),!i.declarationReference)return n;if(t.peekTokenKind()!==p.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(w.InheritDocTagSyntax,"Unexpected character after declaration reference",t.extractAccumulatedSequence(),n),n}return new jt(i)},r.prototype._parseLinkTag=function(e,t){var n=new ot(e),i=an({},e);if(!e.tagContentExcerpt)return this._parserContext.log.addMessageForTokenSequence(w.LinkTagEmpty,"The @link tag content is missing",i.tagNameExcerpt,n),n;for(var o=t.peekTokenKind()===p.Slash&&t.peekTokenAfterKind()===p.Slash,s=t.createMarker(),l=o;!l;)switch(t.peekTokenKind()){case p.AsciiWord:case p.Period:case p.Hyphen:case p.Plus:t.readToken();break;case p.Colon:t.readToken(),o=t.peekTokenKind()===p.Slash&&t.peekTokenAfterKind()===p.Slash,l=!0;break;default:l=!0}if(t.backtrackToMarker(s),o){if(!this._parseLinkTagUrlDestination(t,i,e.tagNameExcerpt,n))return n}else if(!this._parseLinkTagCodeDestination(t,i,e.tagNameExcerpt,n))return n;if(t.peekTokenKind()===p.Spacing)throw new Error("Unconsumed spacing encountered after construct");if(t.peekTokenKind()===p.Pipe){t.readToken(),i.pipeExcerpt=t.extractAccumulatedSequence(),i.spacingAfterPipeExcerpt=this._tryReadSpacingAndNewlines(t),l=!1;for(var u=void 0;!l;)switch(t.peekTokenKind()){case p.EndOfInput:l=!0;break;case p.Pipe:case p.LeftCurlyBracket:var d=t.readToken().toString();return this._parserContext.log.addMessageForTokenSequence(w.LinkTagUnescapedText,'The "'.concat(d,'" character may not be used in the link text without escaping it'),t.extractAccumulatedSequence(),n),n;case p.Spacing:case p.Newline:t.readToken();break;default:u=t.createMarker()+1,t.readToken()}var h=t.tryExtractAccumulatedSequence();h&&(u===void 0?i.spacingAfterLinkTextExcerpt=h:u>=h.endIndex?i.linkTextExcerpt=h:(i.linkTextExcerpt=h.getNewSequence(h.startIndex,u),i.spacingAfterLinkTextExcerpt=h.getNewSequence(u,h.endIndex)))}else if(t.peekTokenKind()!==p.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(w.LinkTagDestinationSyntax,"Unexpected character after link destination",t.extractAccumulatedSequence(),n),n;return new Jt(i)},r.prototype._parseLinkTagUrlDestination=function(e,t,n,i){for(var o="",s=!1;!s;)switch(e.peekTokenKind()){case p.Spacing:case p.Newline:case p.EndOfInput:case p.Pipe:case p.RightCurlyBracket:s=!0;break;default:o+=e.readToken();break}if(o.length===0)throw new Error("Missing URL in _parseLinkTagUrlDestination()");var l=e.extractAccumulatedSequence(),u=J.explainIfInvalidLinkUrl(o);return u?(this._parserContext.log.addMessageForTokenSequence(w.LinkTagInvalidUrl,u,l,i),!1):(t.urlDestinationExcerpt=l,t.spacingAfterDestinationExcerpt=this._tryReadSpacingAndNewlines(e),!0)},r.prototype._parseLinkTagCodeDestination=function(e,t,n,i){return t.codeDestination=this._parseDeclarationReference(e,n,i),!!t.codeDestination},r.prototype._parseDeclarationReference=function(e,t,n){e.assertAccumulatedSequenceIsEmpty();for(var i=e.createMarker(),o=!1,s=!0,l=!1,u=!1;!u;)switch(e.peekTokenKind()){case p.DoubleQuote:case p.EndOfInput:case p.LeftCurlyBracket:case p.LeftParenthesis:case p.LeftSquareBracket:case p.Newline:case p.Pipe:case p.RightCurlyBracket:case p.RightParenthesis:case p.RightSquareBracket:case p.SingleQuote:case p.Spacing:u=!0;break;case p.PoundSymbol:o=!0,u=!0;break;case p.Slash:case p.AtSign:s&&(l=!0),e.readToken();break;case p.AsciiWord:case p.Period:case p.Hyphen:e.readToken();break;default:s=!1,e.readToken()}if(!o&&l){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingHash,'The declaration reference appears to contain a package name or import path, but it is missing the "#" delimiter',e.extractAccumulatedSequence(),n);return}e.backtrackToMarker(i);var d,h,j,E;if(o){if(e.peekTokenKind()!==p.Period){var M=e.peekTokenKind()===p.AtSign,I=!1;for(u=!1;!u;)switch(e.peekTokenKind()){case p.EndOfInput:throw new Error("Expecting pound symbol");case p.Slash:M&&!I?(e.readToken(),I=!0):u=!0;break;case p.PoundSymbol:u=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){d=e.extractAccumulatedSequence();var K=J.explainIfInvalidPackageName(d.toString());if(K){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedPackageName,K,d,n);return}}}for(u=!1;!u;)switch(e.peekTokenKind()){case p.EndOfInput:throw new Error("Expecting pound symbol");case p.PoundSymbol:u=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){h=e.extractAccumulatedSequence();var K=J.explainIfInvalidImportPath(h.toString(),!!d);if(K){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedImportPath,K,h,n);return}}if(e.peekTokenKind()!==p.PoundSymbol)throw new Error("Expecting pound symbol");if(e.readToken(),j=e.extractAccumulatedSequence(),E=this._tryReadSpacingAndNewlines(e),d===void 0&&h===void 0){this._parserContext.log.addMessageForTokenSequence(w.ReferenceHashSyntax,"The hash character must be preceded by a package name or import path",j,n);return}}var D=[];for(u=!1;!u;)switch(e.peekTokenKind()){case p.Period:case p.LeftParenthesis:case p.AsciiWord:case p.Colon:case p.LeftSquareBracket:case p.DoubleQuote:var R=D.length>0,ie=this._parseMemberReference(e,R,t,n);if(!ie)return;D.push(ie);break;default:u=!0}if(d===void 0&&h===void 0&&D.length===0){this._parserContext.log.addMessageForTokenSequence(w.MissingReference,"Expecting a declaration reference",t,n);return}return new Ut({parsed:!0,configuration:this._configuration,packageNameExcerpt:d,importPathExcerpt:h,importHashExcerpt:j,spacingAfterImportHashExcerpt:E,memberReferences:D})},r.prototype._parseMemberReference=function(e,t,n,i){var o={parsed:!0,configuration:this._configuration};if(t){if(e.peekTokenKind()!==p.Period){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingDot,"Expecting a period before the next component of a declaration reference",n,i);return}e.readToken(),o.dotExcerpt=e.extractAccumulatedSequence(),o.spacingAfterDotExcerpt=this._tryReadSpacingAndNewlines(e)}if(e.peekTokenKind()===p.LeftParenthesis&&(e.readToken(),o.leftParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterLeftParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)),e.peekTokenKind()===p.LeftSquareBracket){if(o.memberSymbol=this._parseMemberSymbol(e,i),!o.memberSymbol)return}else if(o.memberIdentifier=this._parseMemberIdentifier(e,n,i),!o.memberIdentifier)return;if(o.spacingAfterMemberExcerpt=this._tryReadSpacingAndNewlines(e),e.peekTokenKind()===p.Colon){if(e.readToken(),o.colonExcerpt=e.extractAccumulatedSequence(),o.spacingAfterColonExcerpt=this._tryReadSpacingAndNewlines(e),!o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorMissingParens,"Syntax error in declaration reference: the member selector must be enclosed in parentheses",o.colonExcerpt,i);return}if(o.selector=this._parseMemberSelector(e,o.colonExcerpt,i),!o.selector)return;o.spacingAfterSelectorExcerpt=this._tryReadSpacingAndNewlines(e)}else if(o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingColon,"Expecting a colon after the identifier because the expression is in parentheses",o.leftParenthesisExcerpt,i);return}if(o.leftParenthesisExcerpt){if(e.peekTokenKind()!==p.RightParenthesis){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightParen,"Expecting a matching right parenthesis",o.leftParenthesisExcerpt,i);return}e.readToken(),o.rightParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterRightParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)}return new Wt(o)},r.prototype._parseMemberSymbol=function(e,t){if(e.peekTokenKind()!==p.LeftSquareBracket)throw new Error('Expecting "["');e.readToken();var n=e.extractAccumulatedSequence(),i=this._tryReadSpacingAndNewlines(e),o=this._parseDeclarationReference(e,n,t);if(!o){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSymbolSyntax,"Missing declaration reference in symbol reference",n,t);return}if(e.peekTokenKind()!==p.RightSquareBracket){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightBracket,"Missing closing square bracket for symbol reference",n,t);return}e.readToken();var s=e.extractAccumulatedSequence();return new Xt({parsed:!0,configuration:this._configuration,leftBracketExcerpt:n,spacingAfterLeftBracketExcerpt:i,symbolReference:o,rightBracketExcerpt:s})},r.prototype._parseMemberIdentifier=function(e,t,n){var i=void 0,o=void 0;if(e.peekTokenKind()===p.DoubleQuote){for(e.readToken(),i=e.extractAccumulatedSequence();e.peekTokenKind()!==p.DoubleQuote;){if(e.peekTokenKind()===p.EndOfInput){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingQuote,"Unexpected end of input inside quoted member identifier",i,n);return}e.readToken()}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceEmptyIdentifier,"The quoted identifier cannot be empty",i,n);return}var s=e.extractAccumulatedSequence();return e.readToken(),o=e.extractAccumulatedSequence(),new wt({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:s,rightQuoteExcerpt:o})}else{for(var l=!1;!l;)switch(e.peekTokenKind()){case p.AsciiWord:case p.DollarSign:e.readToken();break;default:l=!0;break}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingIdentifier,"Syntax error in declaration reference: expecting a member identifier",t,n);return}var s=e.extractAccumulatedSequence(),u=s.toString(),d=J.explainIfInvalidUnquotedMemberIdentifier(u);if(d){this._parserContext.log.addMessageForTokenSequence(w.ReferenceUnquotedIdentifier,d,s,n);return}return new wt({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:s,rightQuoteExcerpt:o})}},r.prototype._parseMemberSelector=function(e,t,n){e.peekTokenKind()!==p.AsciiWord&&this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingLabel,"Expecting a selector label after the colon",t,n);var i=e.readToken().toString(),o=e.extractAccumulatedSequence(),s=new Qt({parsed:!0,configuration:this._configuration,selectorExcerpt:o,selector:i});if(s.errorMessage){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorSyntax,s.errorMessage,o,n);return}return s},r.prototype._parseHtmlStartTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),n=e.readToken();if(n.kind!==p.LessThan)throw new Error('Expecting an HTML tag starting with "<"');var i=e.extractAccumulatedSequence(),o=this._parseHtmlName(e);if(Et(o))return this._backtrackAndCreateErrorForFailure(e,t,"Invalid HTML element: ",o);for(var s=this._tryReadSpacingAndNewlines(e),l=[];e.peekTokenKind()===p.AsciiWord;){var u=this._parseHtmlAttribute(e);if(Et(u))return this._backtrackAndCreateErrorForFailure(e,t,"The HTML element has an invalid attribute: ",u);l.push(u)}e.assertAccumulatedSequenceIsEmpty();var d=e.createMarker(),h=!1;if(e.peekTokenKind()===p.Slash&&(e.readToken(),h=!0),e.peekTokenKind()!==p.GreaterThan){var j=this._createFailureForTokensSince(e,w.HtmlTagMissingGreaterThan,'Expecting an attribute or ">" or "/>"',d);return this._backtrackAndCreateErrorForFailure(e,t,"The HTML tag has invalid syntax: ",j)}e.readToken();var E=e.extractAccumulatedSequence();return new zt({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,nameExcerpt:o,spacingAfterNameExcerpt:s,htmlAttributes:l,selfClosingTag:h,closingDelimiterExcerpt:E})},r.prototype._parseHtmlAttribute=function(e){e.assertAccumulatedSequenceIsEmpty();var t=this._parseHtmlName(e);if(Et(t))return t;var n=this._tryReadSpacingAndNewlines(e);if(e.peekTokenKind()!==p.Equals)return this._createFailureForToken(e,w.HtmlTagMissingEquals,'Expecting "=" after HTML attribute name');e.readToken();var i=e.extractAccumulatedSequence(),o=this._tryReadSpacingAndNewlines(e),s=this._parseHtmlString(e);if(Et(s))return s;var l=e.extractAccumulatedSequence(),u=this._tryReadSpacingAndNewlines(e);return new Rt({parsed:!0,configuration:this._configuration,nameExcerpt:t,spacingAfterNameExcerpt:n,equalsExcerpt:i,spacingAfterEqualsExcerpt:o,valueExcerpt:l,spacingAfterValueExcerpt:u})},r.prototype._parseHtmlString=function(e){var t=e.createMarker(),n=e.peekTokenKind();if(n!==p.DoubleQuote&&n!==p.SingleQuote)return this._createFailureForToken(e,w.HtmlTagMissingString,"Expecting an HTML string starting with a single-quote or double-quote character");e.readToken();for(var i="";;){var o=e.peekTokenKind();if(o===n){e.readToken();break}if(o===p.EndOfInput||o===p.Newline)return this._createFailureForToken(e,w.HtmlStringMissingQuote,"The HTML string is missing its closing quote",t);i+=e.readToken().toString()}return e.peekTokenKind()===p.AsciiWord?this._createFailureForToken(e,w.TextAfterHtmlString,"The next character after a closing quote must be spacing or punctuation"):i},r.prototype._parseHtmlEndTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),n=e.peekToken();if(n.kind!==p.LessThan)return this._backtrackAndCreateError(e,t,w.MissingHtmlEndTag,'Expecting an HTML tag starting with "" for the HTML tag');return this._backtrackAndCreateErrorForFailure(e,t,"",u)}e.readToken();var d=e.extractAccumulatedSequence();return new Vt({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:o,nameExcerpt:s,spacingAfterNameExcerpt:l,closingDelimiterExcerpt:d})},r.prototype._parseHtmlName=function(e){var t=e.createMarker();if(e.peekTokenKind()===p.Spacing)return this._createFailureForTokensSince(e,w.MalformedHtmlName,"A space is not allowed here",t);for(var n=!1;!n;)switch(e.peekTokenKind()){case p.Hyphen:case p.Period:case p.AsciiWord:e.readToken();break;default:n=!0;break}var i=e.tryExtractAccumulatedSequence();if(!i)return this._createFailureForToken(e,w.MalformedHtmlName,"Expecting an HTML name");var o=i.toString(),s=J.explainIfInvalidHtmlName(o);return s?this._createFailureForTokensSince(e,w.MalformedHtmlName,s,t):this._configuration.validation.reportUnsupportedHtmlElements&&!this._configuration.isHtmlElementSupported(o)?this._createFailureForToken(e,w.UnsupportedHtmlElementName,"The HTML element name ".concat(JSON.stringify(o)," is not defined by your TSDoc configuration"),t):i},r.prototype._parseFencedCode=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),n=t+2;switch(e.peekPreviousTokenKind()){case p.Newline:case p.EndOfInput:break;default:return this._backtrackAndCreateErrorRange(e,t,n,w.CodeFenceOpeningIndent,"The opening backtick for a code fence must appear at the start of the line")}var i="";if(i+=e.readToken(),i+=e.readToken(),i+=e.readToken(),i!=="```")throw new Error("Expecting three backticks");for(var o=e.extractAccumulatedSequence();e.peekTokenKind()===p.Spacing;)e.readToken();for(var s=e.tryExtractAccumulatedSequence(),l=!1,u=void 0;!l;)switch(e.peekTokenKind()){case p.Spacing:case p.Newline:u===void 0&&(u=e.createMarker()),e.peekTokenKind()===p.Newline&&(l=!0),e.readToken();break;case p.Backtick:var d=this._createFailureForToken(e,w.CodeFenceSpecifierSyntax,"The language specifier cannot contain backtick characters");return this._backtrackAndCreateErrorRangeForFailure(e,t,n,"Error parsing code fence: ",d);case p.EndOfInput:var h=this._createFailureForToken(e,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,n,"Error parsing code fence: ",h);default:u=void 0,e.readToken();break}var j=e.extractAccumulatedSequence(),E=j.getNewSequence(j.startIndex,u),M=j.getNewSequence(u,j.endIndex),I=-1,K=-1;l=!1;for(var D;!l;)switch(e.peekTokenKind()){case p.EndOfInput:var h=this._createFailureForToken(e,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,n,"Error parsing code fence: ",h);case p.Newline:for(D=e.readToken(),I=e.createMarker();e.peekTokenKind()===p.Spacing;)D=e.readToken();if(e.peekTokenKind()!==p.Backtick||(K=e.createMarker(),e.readToken(),e.peekTokenKind()!==p.Backtick)||(e.readToken(),e.peekTokenKind()!==p.Backtick))break;e.readToken(),l=!0;break;default:e.readToken();break}D.kind!==p.Newline&&this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingIndent,"The closing delimiter for a code fence must not be indented",D.range);var R=e.extractAccumulatedSequence(),ie=R.getNewSequence(R.startIndex,I),oe=R.getNewSequence(I,K),W=R.getNewSequence(K,R.endIndex);for(l=!1;!l;)switch(e.peekTokenKind()){case p.Spacing:e.readToken();break;case p.Newline:l=!0,e.readToken();break;case p.EndOfInput:l=!0;break;default:this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingSyntax,"Unexpected characters after closing delimiter for code fence",e.peekToken().range),l=!0;break}var Ue=e.tryExtractAccumulatedSequence();return new Gt({parsed:!0,configuration:this._configuration,openingFenceExcerpt:o,spacingAfterOpeningFenceExcerpt:s,languageExcerpt:E,spacingAfterLanguageExcerpt:M,codeExcerpt:ie,spacingBeforeClosingFenceExcerpt:oe,closingFenceExcerpt:W,spacingAfterClosingFenceExcerpt:Ue})},r.prototype._parseCodeSpan=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==p.Backtick)throw new Error('Expecting a code span starting with a backtick character "`"');e.readToken();for(var n=e.extractAccumulatedSequence(),i=void 0,o=void 0;;){var s=e.peekTokenKind();if(s===p.Backtick){if(e.isAccumulatedSequenceEmpty())return this._backtrackAndCreateErrorRange(e,t,t+1,w.CodeSpanEmpty,"A code span must contain at least one character between the backticks");i=e.extractAccumulatedSequence(),e.readToken(),o=e.extractAccumulatedSequence();break}if(s===p.EndOfInput||s===p.Newline)return this._backtrackAndCreateError(e,t,w.CodeSpanMissingDelimiter,"The code span is missing its closing backtick");e.readToken()}return new $t({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:n,codeExcerpt:i,closingDelimiterExcerpt:o})},r.prototype._tryReadSpacingAndNewlines=function(e){var t=!1;do switch(e.peekTokenKind()){case p.Spacing:case p.Newline:e.readToken();break;default:t=!0;break}while(!t);return e.tryExtractAccumulatedSequence()},r.prototype._createError=function(e,t,n){e.readToken();var i=e.extractAccumulatedSequence(),o=new Ve({parsed:!0,configuration:this._configuration,textExcerpt:i,messageId:t,errorMessage:n,errorLocation:i});return this._parserContext.log.addMessageForDocErrorText(o),o},r.prototype._backtrackAndCreateError=function(e,t,n,i){return e.backtrackToMarker(t),this._createError(e,n,i)},r.prototype._backtrackAndCreateErrorRange=function(e,t,n,i,o){for(e.backtrackToMarker(t);e.createMarker()!==n;)e.readToken();e.peekTokenKind()!==p.EndOfInput&&e.readToken();var s=e.extractAccumulatedSequence(),l=new Ve({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:i,errorMessage:o,errorLocation:s});return this._parserContext.log.addMessageForDocErrorText(l),l},r.prototype._backtrackAndCreateErrorForFailure=function(e,t,n,i){e.backtrackToMarker(t),e.readToken();var o=e.extractAccumulatedSequence(),s=new Ve({parsed:!0,configuration:this._configuration,textExcerpt:o,messageId:i.failureMessageId,errorMessage:n+i.failureMessage,errorLocation:i.failureLocation});return this._parserContext.log.addMessageForDocErrorText(s),s},r.prototype._backtrackAndCreateErrorRangeForFailure=function(e,t,n,i,o){for(e.backtrackToMarker(t);e.createMarker()!==n;)e.readToken();e.peekTokenKind()!==p.EndOfInput&&e.readToken();var s=e.extractAccumulatedSequence(),l=new Ve({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:o.failureMessageId,errorMessage:i+o.failureMessage,errorLocation:o.failureLocation});return this._parserContext.log.addMessageForDocErrorText(l),l},r.prototype._createFailureForToken=function(e,t,n,i){i||(i=e.createMarker());var o=new qe({parserContext:this._parserContext,startIndex:i,endIndex:i+1});return{failureMessageId:t,failureMessage:n,failureLocation:o}},r.prototype._createFailureForTokensSince=function(e,t,n,i){var o=e.createMarker();if(oactiveWindow.setTimeout(e,r))}function Jr(){return/(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g}function Un(r,e){e=(0,re.normalizePath)(e);let t=r.vault.getAbstractFileByPath(e);if(!t)throw new T(`Folder "${e}" doesn't exist`);if(!(t instanceof re.TFolder))throw new T(`${e} is a file, not a folder`);return t}function De(r,e){e=(0,re.normalizePath)(e);let t=r.vault.getAbstractFileByPath(e);if(!t)throw new T(`File "${e}" doesn't exist`);if(!(t instanceof re.TFile))throw new T(`${e} is a folder, not a file`);return t}function je(r,e){let t=Un(r,e),n=[];return re.Vault.recurseChildren(t,i=>{i instanceof re.TFile&&n.push(i)}),n.sort((i,o)=>i.path.localeCompare(o.path)),n}async function Wr(r,e){return await Promise.all(e.map(async n=>{let i=await r.vault.cachedRead(n);return So(n,i)}))}function So(r,e){let n=new Hn().parseString(e),i=new $n(r);return i.description=Co(n.docComment.summarySection),i.returns=Do(n.docComment.returnsBlock),i.arguments=Po(n.docComment.params),i}function Co(r){try{return r.nodes.map(t=>t.getChildNodes().filter(n=>n instanceof me).map(n=>n.text).join(` +`)).join(` +`)}catch{return console.error("Failed to parse summary section"),""}}function Do(r){if(!r)return"";try{let e=r.content.nodes[0]?.getChildNodes()[0];return e instanceof me?e.text.trim():""}catch{return""}}function Po(r){try{return r.blocks.map(n=>{let i=n.parameterName,o=n.content.getChildNodes()[0].getChildNodes().filter(s=>s instanceof me).map(s=>s.text).join(" ");return new Kn(i,o)})}catch{return[]}}function Pe(r,e,t){if(t<0||t===r.length)return;let n=r[e];r[e]=r[t],r[t]=n}function He(r){return r.workspace.activeEditor?.file??r.workspace.getActiveFile()}function sn(r){let e=r.lastIndexOf("/");return e!==-1?r.slice(0,e):""}function kt(r){return r!==null&&typeof r=="object"}function Qr(r){let e=r.toString(),t=e.indexOf("(");return e.substring(t+1,e.indexOf(")")).replace(/ /g,"").split(",")}function Yn(r,e,t){let n=r.instanceOf(HTMLOListElement)?"li":"p",i=r.createEl(n),o=r.createEl("b",{text:e});return i.appendChild(o),i.appendChild(activeDocument.createTextNode(`: ${t}`)),i}function cn(r,e){if(Object.keys(e).length!==0){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))if(Object.prototype.hasOwnProperty.call(r,t)){let n=r[t],i=e[t];if(Array.isArray(n)||Array.isArray(i)){let o=Array.isArray(n)?n:[n],s=Array.isArray(i)?i:[i];r[t]=o.concat(s).unique()}else kt(n)&&kt(i)?cn(n,i):i!=null&&i!==""&&(r[t]=i)}else r[t]=e[t]}}function St(r){let e={},t=(0,re.getFrontMatterInfo)(r);return t.frontmatter&&(e=(0,re.parseYaml)(t.frontmatter)),{frontmatter:e,content:r.slice(t.contentStart)}}var ln=Y(require("obsidian"));var he;(function(t){t[t.TemplateFiles=0]="TemplateFiles",t[t.ScriptFiles=1]="ScriptFiles"})(he||(he={}));var ct=class extends ln.AbstractInputSuggest{constructor(e,t,n){super(t.app,e);this.inputEl=e;this.plugin=t;this.mode=n}get_folder(e){switch(e){case 0:return this.plugin.settings.templates_folder;case 1:return this.plugin.settings.user_scripts_folder}}get_error_msg(e){switch(e){case 0:return"Templates folder doesn't exist";case 1:return"User Scripts folder doesn't exist"}}getSuggestions(e){let t=ce(()=>je(this.plugin.app,this.get_folder(this.mode)),this.get_error_msg(this.mode));if(!t)return[];let n=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof ln.TFile&&o.extension==="md"&&o.path.toLowerCase().includes(i)&&n.push(o)}),n.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.setValue(e.path),this.inputEl.trigger("input"),this.close()}};var un=Y(require("obsidian")),lt=class extends un.AbstractInputSuggest{constructor(e,t){super(e,t);this.inputEl=t}getSuggestions(e){let t=this.app.vault.getAllLoadedFiles(),n=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof un.TFolder&&o.path.toLowerCase().includes(i)&&n.push(o)}),n.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.setValue(e.path),this.inputEl.trigger("input"),this.close()}};var Ne;(function(o){o[o.Off=0]="Off",o[o.RenderDescriptionParameterReturn=1]="RenderDescriptionParameterReturn",o[o.RenderDescriptionParameterList=2]="RenderDescriptionParameterList",o[o.RenderDescriptionReturn=3]="RenderDescriptionReturn",o[o.RenderDescriptionOnly=4]="RenderDescriptionOnly"})(Ne||(Ne={}));function Xr(r){return isBoolean(r)?r:[1,3].includes(r)}function Zr(r){return isBoolean(r)?r:[1,2].includes(r)}function ei(r){return isBoolean(r)?r:r!=0}var ti={command_timeout:5,templates_folder:"",templates_pairs:[["",""]],trigger_on_file_creation:!1,auto_jump_to_cursor:!1,enable_system_commands:!1,shell_path:"",user_scripts_folder:"",enable_folder_templates:!0,folder_templates:[{folder:"",template:""}],enable_file_templates:!1,file_templates:[{regex:".*",template:""}],syntax_highlighting:!0,syntax_highlighting_mobile:!1,enabled_templates_hotkeys:[""],startup_templates:[""],intellisense_render:Ne.RenderDescriptionParameterReturn,ignore_folders_on_creation:[{folder:""}]},Gn=class extends P.PluginSettingTab{constructor(e){super(e.app,e);this.plugin=e;this.icon="templater-icon"}display(){this.containerEl.empty(),this.add_template_folder_setting(),this.add_internal_functions_setting(),this.add_syntax_highlighting_settings(),this.add_auto_jump_to_cursor(),this.add_trigger_on_new_file_creation_setting(),this.plugin.settings.trigger_on_file_creation&&(this.add_ignore_folders_on_creation_setting(),this.add_folder_templates_setting(),this.add_file_templates_setting()),this.add_templates_hotkeys_setting(),this.add_startup_templates_setting(),this.add_user_script_functions_setting(),this.add_user_system_command_functions_setting()}add_template_folder_setting(){new P.Setting(this.containerEl).setName("Template folder location").setDesc("Files in this folder will be available as templates.").addSearch(e=>{new lt(this.app,e.inputEl),e.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.templates_folder).onChange(async t=>{t=t.trim(),t=t.replace(/\/$/,""),this.plugin.settings.templates_folder=t,await this.plugin.save_settings()}),e.containerEl.addClass("templater_search")})}add_internal_functions_setting(){let e=createFragment();e.append("Templater provides multiples predefined variables / functions that you can use.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," to get a list of all the available internal variables / functions."),new P.Setting(this.containerEl).setName("Internal variables and functions").setDesc(e)}add_syntax_highlighting_settings(){let e=createFragment();e.append("Adds syntax highlighting for Templater commands in edit mode.");let t=createFragment();t.append("Adds syntax highlighting for Templater commands in edit mode on mobile. Use with caution: this may break live preview on mobile platforms."),new P.Setting(this.containerEl).setName("Syntax highlighting on desktop").setDesc(e).addToggle(n=>{n.setValue(this.plugin.settings.syntax_highlighting).onChange(async i=>{this.plugin.settings.syntax_highlighting=i,await this.plugin.save_settings(),await this.plugin.event_handler.update_syntax_highlighting()})}),new P.Setting(this.containerEl).setName("Syntax highlighting on mobile").setDesc(t).addToggle(n=>{n.setValue(this.plugin.settings.syntax_highlighting_mobile).onChange(async i=>{this.plugin.settings.syntax_highlighting_mobile=i,await this.plugin.save_settings(),await this.plugin.event_handler.update_syntax_highlighting()})})}add_auto_jump_to_cursor(){let e=createFragment();e.append("Automatically triggers ",e.createEl("code",{text:"tp.file.cursor"})," after inserting a template.",e.createEl("br"),"You can also set a hotkey to manually trigger ",e.createEl("code",{text:"tp.file.cursor"}),"."),new P.Setting(this.containerEl).setName("Automatic jump to cursor").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.auto_jump_to_cursor).onChange(async n=>{this.plugin.settings.auto_jump_to_cursor=n,await this.plugin.save_settings()})})}add_trigger_on_new_file_creation_setting(){let e=createFragment();e.append("Templater will listen for the new file creation event, and, if it matches a rule you've set, replace every command it finds in the new file's content. ","This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, etc. ",e.createEl("br"),e.createEl("br"),"Make sure to set up rules under either folder templates or file regex template below.",e.createEl("br"),e.createEl("br"),e.createEl("b",{text:"Warning: "}),"This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation."),new P.Setting(this.containerEl).setName("Trigger Templater on new file creation").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.trigger_on_file_creation).onChange(async n=>{this.plugin.settings.trigger_on_file_creation=n,await this.plugin.save_settings(),this.plugin.event_handler.update_trigger_file_on_creation(),this.display()})})}add_templates_hotkeys_setting(){new P.Setting(this.containerEl).setName("Template hotkeys").setHeading();let e=createFragment();e.append("Template hotkeys allows you to bind a template to a hotkey."),new P.Setting(this.containerEl).setDesc(e),this.plugin.settings.enabled_templates_hotkeys.forEach((t,n)=>{new P.Setting(this.containerEl).addSearch(o=>{new ct(o.inputEl,this.plugin,he.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(async s=>{if(s&&this.plugin.settings.enabled_templates_hotkeys.contains(s)){z(new T("This template is already bound to a hotkey"));return}this.plugin.command_handler.add_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[n],s),this.plugin.settings.enabled_templates_hotkeys[n]=s,await this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("any-key").setTooltip("Configure hotkey").onClick(()=>{this.app.setting.openTabById("hotkeys");let s=this.app.setting.activeTab;s.searchComponent.inputEl.value=t,s.updateHotkeyVisibility()})}).addExtraButton(o=>{o.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(async()=>{Pe(this.plugin.settings.enabled_templates_hotkeys,n,n-1),await this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(async()=>{Pe(this.plugin.settings.enabled_templates_hotkeys,n,n+1),await this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(async()=>{this.plugin.command_handler.remove_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[n]),this.plugin.settings.enabled_templates_hotkeys.splice(n,1),await this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new P.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new hotkey for template").setCta().onClick(async()=>{this.plugin.settings.enabled_templates_hotkeys.push(""),await this.plugin.save_settings(),this.display()})})}add_folder_templates_setting(){new P.Setting(this.containerEl).setName("Folder templates").setHeading();let e=createFragment();e.append("Folder templates are triggered when a new ",e.createEl("strong",{text:"empty "}),"file is created in a given folder.",e.createEl("br"),"Templater will fill the empty file with the specified template.",e.createEl("br"),"The deepest match is used. A global default template would be defined on the root ",e.createEl("code",{text:"/"}),"."),new P.Setting(this.containerEl).setDesc(e);let t=createFragment();t.append("When enabled, Templater will make use of the folder templates defined below. This option is mutually exclusive with file regex templates below, so enabling one will disable the other."),new P.Setting(this.containerEl).setName("Enable folder templates").setDesc(t).addToggle(n=>{n.setValue(this.plugin.settings.enable_folder_templates).onChange(async i=>{this.plugin.settings.enable_folder_templates=i,i&&(this.plugin.settings.enable_file_templates=!1),await this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_folder_templates&&(this.plugin.settings.folder_templates.forEach((n,i)=>{new P.Setting(this.containerEl).addSearch(s=>{new lt(this.app,s.inputEl),s.setPlaceholder("Folder").setValue(n.folder).onChange(async l=>{if(l&&this.plugin.settings.folder_templates.some(u=>u.folder==l)){z(new T("This folder already has a template associated with it"));return}this.plugin.settings.folder_templates[i].folder=l,await this.plugin.save_settings()}),s.containerEl.addClass("templater_search")}).addSearch(s=>{new ct(s.inputEl,this.plugin,he.TemplateFiles),s.setPlaceholder("Template").setValue(n.template).onChange(async l=>{this.plugin.settings.folder_templates[i].template=l,await this.plugin.save_settings()}),s.containerEl.addClass("templater_search")}).addExtraButton(s=>{s.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(async()=>{Pe(this.plugin.settings.folder_templates,i,i-1),await this.plugin.save_settings(),this.display()})}).addExtraButton(s=>{s.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(async()=>{Pe(this.plugin.settings.folder_templates,i,i+1),await this.plugin.save_settings(),this.display()})}).addExtraButton(s=>{s.setIcon("cross").setTooltip("Delete").onClick(async()=>{this.plugin.settings.folder_templates.splice(i,1),await this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new P.Setting(this.containerEl).addButton(n=>{n.setButtonText("Add new folder template").setTooltip("Add additional folder template").setCta().onClick(async()=>{this.plugin.settings.folder_templates.push({folder:"",template:""}),await this.plugin.save_settings(),this.display()})}))}add_file_templates_setting(){new P.Setting(this.containerEl).setName("File regex templates").setHeading();let e=createFragment();e.append("File regex templates are triggered when a new ",e.createEl("strong",{text:"empty"})," file is created that matches one of them. Templater will fill the empty file with the specified template.",e.createEl("br"),"The first match from the top is used, so the order of the rules is important.",e.createEl("br"),"Use ",e.createEl("code",{text:".*"})," as a final catch-all, if you need it."),new P.Setting(this.containerEl).setDesc(e);let t=createFragment();t.append("When enabled, Templater will make use of the file regex templates defined below. This option is mutually exclusive with folder templates above, so enabling one will disable the other."),new P.Setting(this.containerEl).setName("Enable file regex templates").setDesc(t).addToggle(n=>{n.setValue(this.plugin.settings.enable_file_templates).onChange(async i=>{this.plugin.settings.enable_file_templates=i,i&&(this.plugin.settings.enable_folder_templates=!1),await this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_file_templates&&(this.plugin.settings.file_templates.forEach((n,i)=>{new P.Setting(this.containerEl).addText(s=>{s.setPlaceholder("File regex").setValue(n.regex).onChange(async l=>{this.plugin.settings.file_templates[i].regex=l,await this.plugin.save_settings()}),s.inputEl.addClass("templater_search")}).addSearch(s=>{new ct(s.inputEl,this.plugin,he.TemplateFiles),s.setPlaceholder("Template").setValue(n.template).onChange(async l=>{this.plugin.settings.file_templates[i].template=l,await this.plugin.save_settings()}),s.containerEl.addClass("templater_search")}).addExtraButton(s=>{s.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(async()=>{Pe(this.plugin.settings.file_templates,i,i-1),await this.plugin.save_settings(),this.display()})}).addExtraButton(s=>{s.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(async()=>{Pe(this.plugin.settings.file_templates,i,i+1),await this.plugin.save_settings(),this.display()})}).addExtraButton(s=>{s.setIcon("cross").setTooltip("Delete").onClick(async()=>{this.plugin.settings.file_templates.splice(i,1),await this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new P.Setting(this.containerEl).addButton(n=>{n.setButtonText("Add new file regex").setTooltip("Add additional file regex").setCta().onClick(async()=>{this.plugin.settings.file_templates.push({regex:"",template:""}),await this.plugin.save_settings(),this.display()})}))}add_startup_templates_setting(){new P.Setting(this.containerEl).setName("Startup templates").setHeading();let e=createFragment();e.append("Startup templates are templates that will get executed once when Templater starts.",e.createEl("br"),"These templates won't output anything.",e.createEl("br"),"This can be useful to set up templates adding hooks to Obsidian events for example."),new P.Setting(this.containerEl).setDesc(e),this.plugin.settings.startup_templates.forEach((t,n)=>{new P.Setting(this.containerEl).addSearch(o=>{new ct(o.inputEl,this.plugin,he.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(async s=>{if(s&&this.plugin.settings.startup_templates.contains(s)){z(new T("This startup template already exist"));return}this.plugin.settings.startup_templates[n]=s,await this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(async()=>{this.plugin.settings.startup_templates.splice(n,1),await this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new P.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new startup template").setCta().onClick(async()=>{this.plugin.settings.startup_templates.push(""),await this.plugin.save_settings(),this.display()})})}add_user_script_functions_setting(){new P.Setting(this.containerEl).setName("User script functions").setHeading();let e=createFragment();e.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.",e.createEl("br"),"The folder needs to be accessible from the vault.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," for more information."),new P.Setting(this.containerEl).setName("Script files folder location").setDesc(e).addSearch(n=>{new lt(this.app,n.inputEl),n.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.user_scripts_folder).onChange(async i=>{this.plugin.settings.user_scripts_folder=i,await this.plugin.save_settings()}),n.containerEl.addClass("templater_search")}),new P.Setting(this.containerEl).setName("User script intellisense").setDesc("Determine how you'd like to have user script intellisense render. Note values will not render if not in the script.").addDropdown(n=>{n.addOption("0","Turn off intellisense").addOption("1","Render method description, parameters list, and return").addOption("2","Render method description and parameters list").addOption("3","Render method description and return").addOption("4","Render method description").setValue(this.plugin.settings.intellisense_render.toString()).onChange(async i=>{this.plugin.settings.intellisense_render=parseInt(i),await this.plugin.save_settings()})}),e=createFragment();let t;if(!this.plugin.settings.user_scripts_folder)t="No user scripts folder set";else{let n=ce(()=>je(this.app,this.plugin.settings.user_scripts_folder),"User scripts folder doesn't exist");if(!n||n.length===0)t="No user scripts detected";else{let i=0;for(let o of n)o.extension==="js"&&(i++,e.append(e.createEl("li",{text:`tp.user.${o.basename}`})));t=`Detected ${i} User Script(s)`}}new P.Setting(this.containerEl).setName(t).setDesc(e).addExtraButton(n=>{n.setIcon("sync").setTooltip("Refresh").onClick(()=>{this.display()})})}add_user_system_command_functions_setting(){let e=createFragment();if(e.append("Allows you to create user functions linked to system commands.",e.createEl("br"),e.createEl("b",{text:"Warning: "}),"It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources."),new P.Setting(this.containerEl).setName("User system command functions").setHeading(),new P.Setting(this.containerEl).setName("Enable user system command functions").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.enable_system_commands).onChange(async n=>{this.plugin.settings.enable_system_commands=n,await this.plugin.save_settings(),this.display()})}),this.plugin.settings.enable_system_commands){new P.Setting(this.containerEl).setName("Timeout").setDesc("Maximum timeout in seconds for a system command.").addText(o=>{o.setPlaceholder("Timeout").setValue(this.plugin.settings.command_timeout.toString()).onChange(async s=>{let l=Number(s);if(isNaN(l)){z(new T("Timeout must be a number"));return}this.plugin.settings.command_timeout=l,await this.plugin.save_settings()})}),e=createFragment(),e.append("Full path to the shell binary to execute the command with.",e.createEl("br"),"This setting is optional and will default to the system's default shell if not specified.",e.createEl("br"),"You can use forward slashes ('/') as path separators on all platforms if in doubt."),new P.Setting(this.containerEl).setName("Shell binary location").setDesc(e).addText(o=>{o.setPlaceholder("Example: /bin/bash, ...").setValue(this.plugin.settings.shell_path).onChange(async s=>{this.plugin.settings.shell_path=s,await this.plugin.save_settings()})});let t=1;this.plugin.settings.templates_pairs.forEach(o=>{let s=this.containerEl.createDiv();s.addClass("templater_div");let l=new P.Setting(this.containerEl).setName("User function n\xB0"+t).setHeading();l.nameEl.addClass("templater_title"),new P.Setting(this.containerEl).addExtraButton(d=>{d.setIcon("cross").setTooltip("Delete").onClick(async()=>{let h=this.plugin.settings.templates_pairs.indexOf(o);h>-1&&(this.plugin.settings.templates_pairs.splice(h,1),await this.plugin.save_settings(),this.display())})}).addText(d=>{let h=d.setPlaceholder("Function name").setValue(o[0]).onChange(async j=>{let E=this.plugin.settings.templates_pairs.indexOf(o);E>-1&&(this.plugin.settings.templates_pairs[E][0]=j,await this.plugin.save_settings())});return h.inputEl.addClass("templater_template"),h}).addTextArea(d=>{let h=d.setPlaceholder("System command").setValue(o[1]).onChange(async j=>{let E=this.plugin.settings.templates_pairs.indexOf(o);E>-1&&(this.plugin.settings.templates_pairs[E][1]=j,await this.plugin.save_settings())});return h.inputEl.setAttr("rows",2),h.inputEl.addClass("templater_cmd"),h}).infoEl.remove(),s.appendChild(l.settingEl),s.appendChild(this.containerEl.lastChild),t+=1});let n=this.containerEl.createDiv();n.addClass("templater_div2"),new P.Setting(this.containerEl).addButton(o=>{o.setButtonText("Add new user function").setCta().onClick(async()=>{this.plugin.settings.templates_pairs.push(["",""]),await this.plugin.save_settings(),this.display()})}).infoEl.remove(),n.appendChild(this.containerEl.lastChild)}}add_ignore_folders_on_creation_setting(){new P.Setting(this.containerEl).setName("Ignore folders on file creation").setHeading();let e=createFragment();e.append("Files created in these folders will NOT trigger Templater's file creation handler.",e.createEl("br"),"This prevents Templater syntax from being stripped in files created in these locations.",e.createEl("br"),"The check includes all subfolders."),new P.Setting(this.containerEl).setDesc(e),this.plugin.settings.ignore_folders_on_creation.forEach((t,n)=>{new P.Setting(this.containerEl).addSearch(o=>{new lt(this.app,o.inputEl),o.setPlaceholder("Folder").setValue(t.folder).onChange(async s=>{if(s&&this.plugin.settings.ignore_folders_on_creation.some(l=>l.folder==s)){z(new T("This folder is already in the ignore list"));return}this.plugin.settings.ignore_folders_on_creation[n].folder=s,await this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(async()=>{Pe(this.plugin.settings.ignore_folders_on_creation,n,n-1),await this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(async()=>{Pe(this.plugin.settings.ignore_folders_on_creation,n,n+1),await this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(async()=>{this.plugin.settings.ignore_folders_on_creation.splice(n,1),await this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new P.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add folder to ignore list").setTooltip("Add folder to ignore on file creation").setCta().onClick(async()=>{this.plugin.settings.ignore_folders_on_creation.push({folder:""}),await this.plugin.save_settings(),this.display()})})}};var pn=Y(require("obsidian"));var ut;(function(t){t[t.InsertTemplate=0]="InsertTemplate",t[t.CreateNoteTemplate=1]="CreateNoteTemplate"})(ut||(ut={}));var Rn=class extends pn.FuzzySuggestModal{constructor(e){super(e.app);this.plugin=e,this.setPlaceholder("Type name of a template..."),this.containerEl.addClass("templater-fuzzy-suggester-modal")}getItems(){if(!this.plugin.settings.templates_folder)return this.app.vault.getMarkdownFiles();let e=ce(()=>je(this.plugin.app,this.plugin.settings.templates_folder),`Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);return e||[]}getItemText(e){let t=e.path;if(e.path.startsWith(this.plugin.settings.templates_folder)&&(0,pn.normalizePath)(this.plugin.settings.templates_folder)!="/"){let n=this.plugin.settings.templates_folder.length,i;n===0?i=0:this.plugin.settings.templates_folder.endsWith("/")?i=n:i=n+1,t=e.path.slice(i)}return t.split(".").slice(0,-1).join(".")}onChooseItem(e){switch(this.open_mode){case 0:this.plugin.templater.append_template_to_active_file(e);break;case 1:this.plugin.templater.create_new_note_from_template(e,this.creation_folder);break}}start(){try{this.open()}catch(e){z(e instanceof Error?e:new Error(String(e)))}}insert_template(){this.open_mode=0,this.start()}create_new_note_from_template(e){this.creation_folder=e,this.open_mode=1,this.start()}};var ni="Error_MobileUnsupportedTemplate",ri='';var G=Y(require("obsidian"));var Me=Y(require("obsidian"));var ne=class{constructor(e){this.plugin=e;this.static_functions=new Map;this.dynamic_functions=new Map}getName(){return this.name}async init(){await this.create_static_templates(),this.static_object=Object.fromEntries(this.static_functions)}async generate_object(e){return this.config=e,await this.create_dynamic_templates(),{...this.static_object,...Object.fromEntries(this.dynamic_functions)}}};var Vn=class extends ne{constructor(){super(...arguments);this.name="date"}async create_static_templates(){this.static_functions.set("now",this.generate_now()),this.static_functions.set("tomorrow",this.generate_tomorrow()),this.static_functions.set("weekday",this.generate_weekday()),this.static_functions.set("yesterday",this.generate_yesterday())}async create_dynamic_templates(){}async teardown(){}generate_now(){return(e="YYYY-MM-DD",t,n,i)=>{if(n&&!(0,Me.moment)(n,i).isValid())throw new T("Invalid reference date format, try specifying one with the argument 'reference_format'");let o;return typeof t=="string"?o=Me.moment.duration(t):typeof t=="number"&&(o=Me.moment.duration(t,"days")),(0,Me.moment)(n,i).add(o).format(e)}}generate_tomorrow(){return(e="YYYY-MM-DD")=>(0,Me.moment)().add(1,"days").format(e)}generate_weekday(){return(e="YYYY-MM-DD",t,n,i)=>{if(n&&!(0,Me.moment)(n,i).isValid())throw new T("Invalid reference date format, try specifying one with the argument 'reference_format'");return(0,Me.moment)(n,i).weekday(t).format(e)}}generate_yesterday(){return(e="YYYY-MM-DD")=>(0,Me.moment)().add(-1,"days").format(e)}};var V=Y(require("obsidian"));var ii=10,zn=class extends ne{constructor(){super(...arguments);this.name="file";this.include_depth=0;this.create_new_depth=0;this.linkpath_regex=new RegExp("^\\[\\[(.*)\\]\\]$")}async create_static_templates(){this.static_functions.set("creation_date",this.generate_creation_date()),this.static_functions.set("create_new",this.generate_create_new()),this.static_functions.set("cursor",this.generate_cursor()),this.static_functions.set("cursor_append",this.generate_cursor_append()),this.static_functions.set("exists",this.generate_exists()),this.static_functions.set("find_tfile",this.generate_find_tfile()),this.static_functions.set("folder",this.generate_folder()),this.static_functions.set("include",this.generate_include()),this.static_functions.set("last_modified_date",this.generate_last_modified_date()),this.static_functions.set("move",this.generate_move()),this.static_functions.set("path",this.generate_path()),this.static_functions.set("rename",this.generate_rename()),this.static_functions.set("selection",this.generate_selection())}async create_dynamic_templates(){this.dynamic_functions.set("content",await this.generate_content()),this.dynamic_functions.set("tags",this.generate_tags()),this.dynamic_functions.set("title",this.generate_title())}async teardown(){}async generate_content(){return await this.plugin.app.vault.read(this.config.target_file)}generate_create_new(){return async(e,t,n=!1,i)=>{if(this.create_new_depth+=1,this.create_new_depth>ii)throw this.create_new_depth=0,new T("Reached create_new depth limit (max = 10)");let o=await this.plugin.templater.create_new_note_from_template(e,i,t,n);return this.create_new_depth-=1,o}}generate_creation_date(){return(e="YYYY-MM-DD HH:mm")=>(0,V.moment)(this.config.target_file.stat.ctime).format(e)}generate_cursor(){return e=>`<% tp.file.cursor(${e??""}) %>`}generate_cursor_append(){return e=>{let t=this.plugin.app.workspace.activeEditor;if(!t||!t.editor){z(new T("No active editor, can't append to cursor."));return}return t.editor.getDoc().replaceSelection(e),""}}generate_exists(){return async e=>{let t=(0,V.normalizePath)(e);return await this.plugin.app.vault.exists(t)}}generate_find_tfile(){return e=>{let t=(0,V.normalizePath)(e);return this.plugin.app.metadataCache.getFirstLinkpathDest(t,"")}}generate_folder(){return(e=!1)=>{let t=this.config.target_file.parent;if(!(t instanceof V.TFolder))return"";let n;return e?n=t.path:n=t.name,n}}generate_include(){return async e=>{if(this.include_depth+=1,this.include_depth>ii)throw this.include_depth-=1,new T("Reached inclusion depth limit (max = 10)");let t;if(e instanceof V.TFile)t=await this.plugin.app.vault.read(e);else{let n;if((n=this.linkpath_regex.exec(e))===null)throw this.include_depth-=1,new T("Invalid file format, provide an obsidian link between quotes.");let{path:i,subpath:o}=(0,V.parseLinktext)(n[1]),s=this.plugin.app.metadataCache.getFirstLinkpathDest(i,"");if(!s)throw this.include_depth-=1,new T(`File ${e} doesn't exist`);if(t=await this.plugin.app.vault.read(s),o){let l=this.plugin.app.metadataCache.getFileCache(s);if(l){let u=(0,V.resolveSubpath)(l,o);u&&(t=t.slice(u.start.offset,u.end?.offset))}}}try{let n=await this.plugin.templater.parser.parse_commands(t,this.plugin.templater.current_functions_object);return this.include_depth-=1,n}catch(n){throw this.include_depth-=1,n}}}generate_last_modified_date(){return(e="YYYY-MM-DD HH:mm")=>(0,V.moment)(this.config.target_file.stat.mtime).format(e)}generate_move(){return async(e,t)=>{let n=t||this.config.target_file,i=(0,V.normalizePath)(`${e}.${n.extension}`),o=i.replace(/\\/g,"/").split("/");if(o.pop(),o.length){let s=o.join("/");this.plugin.app.vault.getAbstractFileByPath(s)||await this.plugin.app.vault.createFolder(s)}return await this.plugin.app.fileManager.renameFile(n,i),""}}generate_path(){return(e=!1)=>{let t="";if(V.Platform.isMobile){let n=this.plugin.app.vault.adapter.fs.uri,i=this.plugin.app.vault.adapter.basePath;t=`${n}/${i}`}else if(this.plugin.app.vault.adapter instanceof V.FileSystemAdapter)t=this.plugin.app.vault.adapter.getBasePath();else throw new T("app.vault is not a FileSystemAdapter instance");return e?this.config.target_file.path:`${t}/${this.config.target_file.path}`}}generate_rename(){return async e=>{if(e.match(/[\\/:]+/g))throw new T("File name cannot contain any of these characters: \\ / :");let t=this.config.target_file.parent;if(!(t instanceof V.TFolder))return"";let n=(0,V.normalizePath)(`${t.path}/${e}.${this.config.target_file.extension}`);return await this.plugin.app.fileManager.renameFile(this.config.target_file,n),""}}generate_selection(){return()=>{let e=this.plugin.app.workspace.activeEditor;if(!e||!e.editor)throw new T("Active editor is null, can't read selection.");return e.editor.getSelection()}}generate_tags(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);return e?(0,V.getAllTags)(e):null}generate_title(){return this.config.target_file.basename}};var oi=Y(require("obsidian"));var Jn=class extends ne{constructor(){super(...arguments);this.name="web"}async create_static_templates(){this.static_functions.set("daily_quote",this.generate_daily_quote()),this.static_functions.set("request",this.generate_request()),this.static_functions.set("random_picture",this.generate_random_picture())}async create_dynamic_templates(){}async teardown(){}async getRequest(e){try{let t=await(0,oi.requestUrl)(e);if(t.status<200&&t.status>=300)throw new T("Error performing GET request");return t}catch{throw new T("Error performing GET request")}}generate_daily_quote(){return async()=>{try{let t=(await this.getRequest("https://raw.githubusercontent.com/Zachatoo/quotes-database/refs/heads/main/quotes.json")).json,n=t[Math.floor(Math.random()*t.length)],{quote:i,author:o}=n;return`> [!quote] ${i} +> \u2014 ${o}`}catch{return new T("Error generating daily quote"),"Error generating daily quote"}}}generate_random_picture(){return async(e,t,n=!1)=>{try{let i=await this.getRequest(`https://templater-unsplash-2.fly.dev/${t?"?q="+t:""}`).then(s=>s.json),o=i.full;if(e&&!n)if(e.includes("x")){let[s,l]=e.split("x");o=o.concat(`&w=${s}&h=${l}`)}else o=o.concat(`&w=${e}`);return n?`![photo by ${i.photog}(${i.photogUrl}) on Unsplash|${e}](${o})`:`![photo by ${i.photog}(${i.photogUrl}) on Unsplash](${o})`}catch{return new T("Error generating random picture"),"Error generating random picture"}}}generate_request(){return async(e,t)=>{try{let i=(await this.getRequest(e)).json;return t&&i?t.split(".").reduce((o,s)=>{if(Object.prototype.hasOwnProperty.call(o,s))return o[s];throw new Error(`Path ${t} not found in the JSON response`)},i):i}catch(n){throw console.error(n),new T("Error fetching and extracting value")}}}};var Wn=class extends ne{constructor(){super(...arguments);this.name="hooks";this.event_refs=[]}async create_static_templates(){this.static_functions.set("on_all_templates_executed",this.generate_on_all_templates_executed())}async create_dynamic_templates(){}async teardown(){this.event_refs.forEach(e=>{e.e.offref(e)}),this.event_refs=[]}generate_on_all_templates_executed(){return e=>{let t=this.plugin.app.workspace.on("templater:all-templates-executed",async()=>{await Le(1),e()});t&&this.event_refs.push(t)}}};var Qn=class extends ne{constructor(){super(...arguments);this.name="frontmatter"}async create_static_templates(){}async create_dynamic_templates(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);this.dynamic_functions=new Map(Object.entries(e?.frontmatter||{}))}async teardown(){}};var we=Y(require("obsidian"));var Xn=class extends we.Modal{constructor(e,t,n,i){super(e);this.prompt_text=t;this.default_value=n;this.multi_line=i;this.submitted=!1}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty(),this.submitted||this.reject(new T("Cancelled prompt"))}createForm(){let e=this.contentEl.createDiv();e.addClass("templater-prompt-div");let t;this.multi_line?t=new we.TextAreaComponent(e):t=new we.TextComponent(e);let n=this.contentEl.createDiv();n.addClass("templater-button-div");let i=new we.ButtonComponent(n);i.buttonEl.addClass("mod-cta"),i.setButtonText("Submit").onClick(o=>{this.resolveAndClose(o)}),this.value=this.default_value??"",t.inputEl.addClass("templater-prompt-input"),t.setPlaceholder("Type text here"),t.setValue(this.value),t.onChange(o=>this.value=o),t.inputEl.focus(),t.inputEl.addEventListener("keydown",o=>this.enterCallback(o))}enterCallback(e){e.isComposing||e.keyCode===229||(this.multi_line?we.Platform.isDesktop&&e.key==="Enter"&&!e.shiftKey&&this.resolveAndClose(e):e.key==="Enter"&&this.resolveAndClose(e))}resolveAndClose(e){this.submitted=!0,e.preventDefault(),this.resolve(this.value),this.close()}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var ai=Y(require("obsidian")),Zn=class extends ai.FuzzySuggestModal{constructor(e,t,n,i,o,s){super(e);this.text_items=t;this.items=n;this.default_value=s;this.submitted=!1;this.containerEl.addClass("templater-suggester-modal"),this.setPlaceholder(i),o&&(this.limit=o)}getItems(){return this.items}onOpen(){super.onOpen(),this.default_value!==void 0&&(this.inputEl.value=this.getItemText(this.default_value),this.inputEl.dispatchEvent(new InputEvent("input")))}onClose(){this.submitted||this.reject(new T("Cancelled prompt"))}selectSuggestion(e,t){this.submitted=!0,this.close(),this.onChooseSuggestion(e,t)}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.resolve(e)}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var le=Y(require("obsidian")),er=class extends le.Modal{constructor(e,t,n,i,o,s){super(e);this.text_items=t;this.items=n;this.submitted=!1;this.selectedItems=[];this.setTitle(i),this.listEl=this.contentEl.createDiv("templater-multisuggester-list");let l=this.contentEl.createDiv("templater-multisuggester-div"),u=new le.TextComponent(l);u.inputEl.addClass("templater-multisuggester-input"),this.suggester=new si(e,u.inputEl,h=>this.getItemText(h),n,o).onSelect(h=>this.onChooseItem(h));let d=this.contentEl.createDiv("modal-button-container");new le.ButtonComponent(d).setButtonText("Save").setCta().onClick(()=>this.save()),new le.ButtonComponent(d).setButtonText("Cancel").onClick(()=>this.close()),s&&(this.selectedItems=s)}onOpen(){this.processSelectedItems()}display(){this.listEl.empty(),this.selectedItems.forEach(e=>{let t=this.listEl.createDiv("mobile-option-setting-item");t.createSpan("mobile-option-setting-item-name").setText(this.getItemText(e)),t.createDiv("clickable-icon mobile-option-setting-item-option-icon",n=>{(0,le.setIcon)(n,"lucide-x"),n.addEventListener("click",()=>{this.onRemoveItem(e)})})})}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.selectedItems.push(e),this.processSelectedItems()}processSelectedItems(){let e=this.items.filter(t=>!this.selectedItems.some(n=>n===t));this.suggester.setItems(e),this.display()}onRemoveItem(e){this.selectedItems=this.selectedItems.filter(n=>n!==e);let t=this.items.filter(n=>!this.selectedItems.some(i=>i===n));this.suggester.setItems(t),this.display()}save(){this.submitted=!0,this.close(),this.resolve(this.selectedItems)}onClose(){this.submitted||this.reject(new T("Cancelled prompt"))}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}},si=class extends le.AbstractInputSuggest{constructor(e,t,n,i,o){super(e,t);this.getItemText=n;this.items=i;o&&(this.limit=o)}getSuggestions(e){let t=(0,le.prepareFuzzySearch)(e);return this.items.reduce((n,i)=>{let o=this.getItemText(i);return t(o)&&n.push(i),n},[])}renderSuggestion(e,t){t.createDiv("suggestion-content").setText(this.getItemText(e))}setItems(e){this.items=e}selectSuggestion(e,t){this.setValue(""),this.close(),super.selectSuggestion(e,t)}};var tr=class extends ne{constructor(){super(...arguments);this.name="system"}async create_static_templates(){this.static_functions.set("clipboard",this.generate_clipboard()),this.static_functions.set("prompt",this.generate_prompt()),this.static_functions.set("suggester",this.generate_suggester()),this.static_functions.set("multi_suggester",this.generate_multi_suggester())}async create_dynamic_templates(){}async teardown(){}generate_clipboard(){return async()=>await navigator.clipboard.readText()}generate_prompt(){return async(e,t,n=!1,i=!1)=>{let o=new Xn(this.plugin.app,e,t,i),s=new Promise((l,u)=>{o.openAndGetValue(l,u)});try{return await s}catch(l){if(n)throw l;return null}}}generate_suggester(){return async(e,t,n=!1,i="",o,s)=>{let l=new Zn(this.plugin.app,e,t,i,o,s),u=new Promise((d,h)=>{l.openAndGetValue(d,h)});try{return await u}catch(d){if(n)throw d;return null}}}generate_multi_suggester(){return async(e,t,n=!1,i="",o,s)=>{let l=new er(this.plugin.app,e,t,i,o,s),u=new Promise((d,h)=>{l.openAndGetValue(d,h)});try{return await u}catch(d){if(n)throw d;return[]}}}};var nr=class extends ne{constructor(){super(...arguments);this.name="config"}async create_static_templates(){}async create_dynamic_templates(){}async teardown(){}async generate_object(e){return e}};var rr=class{constructor(e){this.plugin=e;this.modules_array=[];this.modules_array.push(new Vn(this.plugin)),this.modules_array.push(new zn(this.plugin)),this.modules_array.push(new Jn(this.plugin)),this.modules_array.push(new Qn(this.plugin)),this.modules_array.push(new Wn(this.plugin)),this.modules_array.push(new tr(this.plugin)),this.modules_array.push(new nr(this.plugin))}async init(){for(let e of this.modules_array)await e.init()}async teardown(){for(let e of this.modules_array)await e.teardown()}async generate_object(e){let t={};for(let n of this.modules_array)t[n.getName()]=await n.generate_object(e);return t}};var Ct=Y(require("obsidian"));var ir=class{constructor(e){this.plugin=e;if(Ct.Platform.isMobile||!(this.plugin.app.vault.adapter instanceof Ct.FileSystemAdapter))this.cwd="";else{this.cwd=this.plugin.app.vault.adapter.getBasePath();let{promisify:t}=require("util"),{exec:n}=require("child_process");this.exec_promise=t(n)}}async generate_system_functions(e){let t=new Map,n=await this.plugin.templater.functions_generator.generate_object(e,ve.INTERNAL);for(let i of this.plugin.settings.templates_pairs){let o=i[0],s=i[1];!o||!s||(Ct.Platform.isMobile?t.set(o,()=>new Promise(l=>l(ni))):(s=await this.plugin.templater.parser.parse_commands(s,n),t.set(o,async l=>{if(!this.exec_promise)return"";let u={...process.env,...l},d={timeout:this.plugin.settings.command_timeout*1e3,cwd:this.cwd,env:u,...this.plugin.settings.shell_path&&{shell:this.plugin.settings.shell_path}};try{let{stdout:h}=await this.exec_promise(s,d);return h.trimRight()}catch(h){throw new T(`Error with User Template ${o}`,h instanceof Error?h.message:String(h))}})))}return t}async generate_object(e){let t=await this.generate_system_functions(e);return Object.fromEntries(t)}};var or=class{constructor(e){this.plugin=e}async generate_user_script_functions(){let e=new Map,t=ce(()=>je(this.plugin.app,this.plugin.settings.user_scripts_folder),`Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);if(!t)return new Map;for(let n of t)n.extension.toLowerCase()==="js"&&await this.load_user_script_function(n,e);return e}async load_user_script_function(e,t){let n=u=>window.require&&window.require(u),i={},o={exports:i},s=await this.plugin.app.vault.read(e);try{window.eval("(function anonymous(require, module, exports){"+s+` +})`)(n,o,i)}catch(u){throw new T(`Failed to load user script at "${e.path}".`,u instanceof Error?u.message:String(u))}let l=i.default??o.exports;if(!l)throw new T(`Failed to load user script at "${e.path}". No exports detected.`);if(typeof l=="function")t.set(e.basename,l);else if(typeof l=="object"&&l!==null){if(!Object.values(l).every(d=>typeof d=="function"))throw new T(`Exported object in "${e.path}" must contain only functions.`);t.set(e.basename,l)}else throw new T(`Invalid export in "${e.path}". Must be a function or object of functions.`)}async generate_object(){let e=await this.generate_user_script_functions();return Object.fromEntries(e)}};var ar=class{constructor(e){this.plugin=e;this.user_system_functions=new ir(e),this.user_script_functions=new or(e)}async generate_object(e){let t={},n={};return this.plugin.settings.enable_system_commands&&(t=await this.user_system_functions.generate_object(e)),this.plugin.settings.user_scripts_folder&&(n=await this.user_script_functions.generate_object()),{...t,...n}}};var No=Y(require("obsidian")),ve;(function(t){t[t.INTERNAL=0]="INTERNAL",t[t.USER_INTERNAL=1]="USER_INTERNAL"})(ve||(ve={}));var sr=class{constructor(e){this.plugin=e;this.internal_functions=new rr(this.plugin),this.user_functions=new ar(this.plugin)}async init(){await this.internal_functions.init()}async teardown(){await this.internal_functions.teardown()}additional_functions(){return{app:this.plugin.app,obsidian:No}}async generate_object(e,t=1){let n={},i=this.additional_functions(),o=await this.internal_functions.generate_object(e),s={};switch(Object.assign(n,i),t){case 0:Object.assign(n,o);break;case 1:s=await this.user_functions.generate_object(e),Object.assign(n,{...o,user:s});break}return n}};var Ko={},b,Ae=new Array(32).fill(void 0);Ae.push(void 0,null,!0,!1);function ue(r){return Ae[r]}var Dt=Ae.length;function Mo(r){r<36||(Ae[r]=Dt,Dt=r)}function cr(r){let e=ue(r);return Mo(r),e}var ci=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ci.decode();var fn=new Uint8Array;function dn(){return fn.byteLength===0&&(fn=new Uint8Array(b.memory.buffer)),fn}function $e(r,e){return ci.decode(dn().subarray(r,r+e))}function Ke(r){Dt===Ae.length&&Ae.push(Ae.length+1);let e=Dt;return Dt=Ae[e],Ae[e]=r,e}var _e=0,gn=new TextEncoder("utf-8"),Fo=typeof gn.encodeInto=="function"?function(r,e){return gn.encodeInto(r,e)}:function(r,e){let t=gn.encode(r);return e.set(t),{read:r.length,written:t.length}};function Fe(r,e,t){if(t===void 0){let l=gn.encode(r),u=e(l.length);return dn().subarray(u,u+l.length).set(l),_e=l.length,u}let n=r.length,i=e(n),o=dn(),s=0;for(;s127)break;o[i+s]=l}if(s!==n){s!==0&&(r=r.slice(s)),i=t(i,n,n=s+r.length*3);let l=dn().subarray(i+s,i+n);s+=Fo(r,l).written}return _e=s,i}function Io(r){return r==null}var mn=new Int32Array;function pe(){return mn.byteLength===0&&(mn=new Int32Array(b.memory.buffer)),mn}function lr(r){let e=typeof r;if(e=="number"||e=="boolean"||r==null)return`${r}`;if(e=="string")return`"${r}"`;if(e=="symbol"){let i=r.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){let i=r.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(r)){let i=r.length,o="[";i>0&&(o+=lr(r[0]));for(let s=1;s1)n=t[1];else return toString.call(r);if(n=="Object")try{return"Object("+JSON.stringify(r)+")"}catch{return"Object"}return r instanceof Error?`${r.name}: ${r.message} +${r.stack}`:n}function Bo(r,e){if(!(r instanceof e))throw new Error(`expected instance of ${e.name}`);return r.ptr}var hn=32;function Oo(r){if(hn==1)throw new Error("out of js stack");return Ae[--hn]=r,hn}function ur(r,e){try{return r.apply(this,e)}catch(t){b.__wbindgen_exn_store(Ke(t))}}var Je=class{static __wrap(e){let t=Object.create(Je.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();b.__wbg_parserconfig_free(e)}get interpolate(){let e=b.__wbg_get_parserconfig_interpolate(this.ptr);return String.fromCodePoint(e)}set interpolate(e){b.__wbg_set_parserconfig_interpolate(this.ptr,e.codePointAt(0))}get execution(){let e=b.__wbg_get_parserconfig_execution(this.ptr);return String.fromCodePoint(e)}set execution(e){b.__wbg_set_parserconfig_execution(this.ptr,e.codePointAt(0))}get single_whitespace(){let e=b.__wbg_get_parserconfig_single_whitespace(this.ptr);return String.fromCodePoint(e)}set single_whitespace(e){b.__wbg_set_parserconfig_single_whitespace(this.ptr,e.codePointAt(0))}get multiple_whitespace(){let e=b.__wbg_get_parserconfig_multiple_whitespace(this.ptr);return String.fromCodePoint(e)}set multiple_whitespace(e){b.__wbg_set_parserconfig_multiple_whitespace(this.ptr,e.codePointAt(0))}constructor(e,t,n,i,o,s,l){let u=Fe(e,b.__wbindgen_malloc,b.__wbindgen_realloc),d=_e,h=Fe(t,b.__wbindgen_malloc,b.__wbindgen_realloc),j=_e,E=Fe(l,b.__wbindgen_malloc,b.__wbindgen_realloc),M=_e,I=b.parserconfig_new(u,d,h,j,n.codePointAt(0),i.codePointAt(0),o.codePointAt(0),s.codePointAt(0),E,M);return Je.__wrap(I)}get opening_tag(){try{let n=b.__wbindgen_add_to_stack_pointer(-16);b.parserconfig_opening_tag(n,this.ptr);var e=pe()[n/4+0],t=pe()[n/4+1];return $e(e,t)}finally{b.__wbindgen_add_to_stack_pointer(16),b.__wbindgen_free(e,t)}}set opening_tag(e){let t=Fe(e,b.__wbindgen_malloc,b.__wbindgen_realloc),n=_e;b.parserconfig_set_opening_tag(this.ptr,t,n)}get closing_tag(){try{let n=b.__wbindgen_add_to_stack_pointer(-16);b.parserconfig_closing_tag(n,this.ptr);var e=pe()[n/4+0],t=pe()[n/4+1];return $e(e,t)}finally{b.__wbindgen_add_to_stack_pointer(16),b.__wbindgen_free(e,t)}}set closing_tag(e){let t=Fe(e,b.__wbindgen_malloc,b.__wbindgen_realloc),n=_e;b.parserconfig_set_closing_tag(this.ptr,t,n)}get global_var(){try{let n=b.__wbindgen_add_to_stack_pointer(-16);b.parserconfig_global_var(n,this.ptr);var e=pe()[n/4+0],t=pe()[n/4+1];return $e(e,t)}finally{b.__wbindgen_add_to_stack_pointer(16),b.__wbindgen_free(e,t)}}set global_var(e){let t=Fe(e,b.__wbindgen_malloc,b.__wbindgen_realloc),n=_e;b.parserconfig_set_global_var(this.ptr,t,n)}},pt=class{static __wrap(e){let t=Object.create(pt.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();b.__wbg_renderer_free(e)}constructor(e){Bo(e,Je);var t=e.ptr;e.ptr=0;let n=b.renderer_new(t);return pt.__wrap(n)}render_content(e,t){try{let s=b.__wbindgen_add_to_stack_pointer(-16),l=Fe(e,b.__wbindgen_malloc,b.__wbindgen_realloc),u=_e;b.renderer_render_content(s,this.ptr,l,u,Oo(t));var n=pe()[s/4+0],i=pe()[s/4+1],o=pe()[s/4+2];if(o)throw cr(i);return cr(n)}finally{b.__wbindgen_add_to_stack_pointer(16),Ae[hn++]=void 0}}};async function qo(r,e){if(typeof Response=="function"&&r instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(r,e)}catch(n){if(r.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n);else throw n}let t=await r.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(r,e);return t instanceof WebAssembly.Instance?{instance:t,module:r}:t}}function Lo(){let r={};return r.wbg={},r.wbg.__wbindgen_object_drop_ref=function(e){cr(e)},r.wbg.__wbindgen_string_new=function(e,t){let n=$e(e,t);return Ke(n)},r.wbg.__wbindgen_string_get=function(e,t){let n=ue(t),i=typeof n=="string"?n:void 0;var o=Io(i)?0:Fe(i,b.__wbindgen_malloc,b.__wbindgen_realloc),s=_e;pe()[e/4+1]=s,pe()[e/4+0]=o},r.wbg.__wbg_call_97ae9d8645dc388b=function(){return ur(function(e,t){let n=ue(e).call(ue(t));return Ke(n)},arguments)},r.wbg.__wbg_new_8d2af00bc1e329ee=function(e,t){let n=new Error($e(e,t));return Ke(n)},r.wbg.__wbg_message_fe2af63ccc8985bc=function(e){let t=ue(e).message;return Ke(t)},r.wbg.__wbg_newwithargs_8fe23e3842840c8e=function(e,t,n,i){let o=new Function($e(e,t),$e(n,i));return Ke(o)},r.wbg.__wbg_call_168da88779e35f61=function(){return ur(function(e,t,n){let i=ue(e).call(ue(t),ue(n));return Ke(i)},arguments)},r.wbg.__wbg_call_3999bee59e9f7719=function(){return ur(function(e,t,n,i){let o=ue(e).call(ue(t),ue(n),ue(i));return Ke(o)},arguments)},r.wbg.__wbindgen_debug_string=function(e,t){let n=lr(ue(t)),i=Fe(n,b.__wbindgen_malloc,b.__wbindgen_realloc),o=_e;pe()[e/4+1]=o,pe()[e/4+0]=i},r.wbg.__wbindgen_throw=function(e,t){throw new Error($e(e,t))},r}function Ho(r,e){}function $o(r,e){return b=r.exports,li.__wbindgen_wasm_module=e,mn=new Int32Array,fn=new Uint8Array,b}async function li(r){typeof r=="undefined"&&(r=new URL("rusty_engine_bg.wasm",Ko.url));let e=Lo();(typeof r=="string"||typeof Request=="function"&&r instanceof Request||typeof URL=="function"&&r instanceof URL)&&(r=fetch(r)),Ho(e);let{instance:t,module:n}=await qo(await r,e);return $o(t,n)}var ui=li;var pi=qr("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQARg0EIAFBBGoLIQEgAyAENgIsAkAgA0EIaiADQSxqECJFBEAgAygCLCECIAMoAjgiBCADKAI0RgRAIANBMGogBBA+IAMoAjghBAsgAygCMCAEQQJ0aiACNgIADAELIAMoAjgiBCADKAI0RgRAIANBMGogBBA+IAMoAjghBAsgAygCMCAEQQJ0akHcADYCACADIAMoAjhBAWoiAjYCOCADKAIkRQ0DIAMoAhgiBiADKQMQIgsgAygCLCIJrUKAgICAgICAgASEIgyFQvPK0cunjNmy9ACFIg1CEIkgDSADKQMIIg5C4eSV89bs2bzsAIV8Ig2FIg8gC0Lt3pHzlszct+QAhSILIA5C9crNg9es27fzAIV8Ig5CIIl8IhAgDIUgDSALQg2JIA6FIgt8IgwgC0IRiYUiC3wiDSALQg2JhSILIA9CFYkgEIUiDiAMQiCJQv8BhXwiDHwiDyALQhGJhSILQg2JIAsgDkIQiSAMhSIMIA1CIIl8Ig18IguFIg5CEYkgDiAMQhWJIA2FIgwgD0IgiXwiDXwiDoUiD0INiSAPIAxCEIkgDYUiDCALQiCJfCILfIUiDSAMQhWJIAuFIgsgDkIgiXwiDHwiDiALQhCJIAyFQhWJhSANQhGJhSAOQiCIhSILp3EhBCALQhmIQv8Ag0KBgoSIkKDAgAF+IQ1BACEFIAMoAhwhBwNAIAQgB2opAAAiDCANhSILQn+FIAtC//379+/fv/9+fINCgIGChIiQoMCAf4MhCwNAIAtQBEAgDCAMQgGGg0KAgYKEiJCgwIB/g1BFDQYgBCAFQQhqIgVqIAZxIQQMAgsgC3ohDiALQn98IAuDIQsgByAOp0EDdiAEaiAGcUEDdGsiCkF4aigCACAJRw0ACwsgCkF8aigCACEEIAMoAjQgAkYEQCADQTBqIAIQPiADKAI4IQILIAMoAjAgAkECdGogBDYCAAsgAyADKAI4QQFqIgI2AjggASAIRw0ACwwCC0GwisAAQcYAIANBMGpB2IvAAEHIi8AAEFIAC0GAgcAAQZSDwAAQbwALIABBADYCCCAAQgE3AgAgAygCMCIBIAJBAnRqIQQgAkUNACAAQQAgAhBBCyABIAQgABAoIAMoAjQEQCADKAIwEBULAkAgAygCGCIARQ0AIAAgAEEDdEEIaiIBakEJakUNACADKAIcIAFrEBULIANB0ABqJAALmAkBBX8jAEHwAGsiBCQAIAQgAzYCDCAEIAI2AggCQAJAAkACQAJAIAQCfwJAIAFBgQJPBEACf0GAAiAALACAAkG/f0oNABpB/wEgACwA/wFBv39KDQAaQf4BIAAsAP4BQb9/Sg0AGkH9AQsiBSABSQ0BIAEgBUcNAwsgBCABNgIUIAQgADYCEEGAk8AAIQZBAAwBCyAEIAU2AhQgBCAANgIQQcOYwAAhBkEFCzYCHCAEIAY2AhggAiABSyIFIAMgAUtyDQEgAiADTQRAAkACQCACRQ0AIAIgAU8EQCABIAJGDQEMAgsgACACaiwAAEFASA0BCyADIQILIAQgAjYCICACIAEiA0kEQCACQQFqIgVBACACQX1qIgMgAyACSxsiA0kNBAJAIAMgBUYNACAAIAVqIAAgA2oiB2shBSAAIAJqIggsAABBv39KBEAgBUF/aiEGDAELIAIgA0YNACAIQX9qIgIsAABBv39KBEAgBUF+aiEGDAELIAIgB0YNACAIQX5qIgIsAABBv39KBEAgBUF9aiEGDAELIAIgB0YNACAIQX1qIgIsAABBv39KBEAgBUF8aiEGDAELIAIgB0YNACAFQXtqIQYLIAMgBmohAwsCQCADRQ0AIAMgAU8EQCABIANGDQEMBwsgACADaiwAAEG/f0wNBgsgASADRg0EAn8CQAJAIAAgA2oiASwAACIAQX9MBEAgAS0AAUE/cSEFIABBH3EhAiAAQV9LDQEgAkEGdCAFciECDAILIAQgAEH/AXE2AiRBAQwCCyABLQACQT9xIAVBBnRyIQUgAEFwSQRAIAUgAkEMdHIhAgwBCyACQRJ0QYCA8ABxIAEtAANBP3EgBUEGdHJyIgJBgIDEAEYNBgsgBCACNgIkQQEgAkGAAUkNABpBAiACQYAQSQ0AGkEDQQQgAkGAgARJGwshASAEIAM2AiggBCABIANqNgIsIARBxABqQQU2AgAgBEHsAGpBNDYCACAEQeQAakE0NgIAIARB3ABqQTU2AgAgBEHUAGpBNjYCACAEQgU3AjQgBEGsmsAANgIwIARBAzYCTCAEIARByABqNgJAIAQgBEEYajYCaCAEIARBEGo2AmAgBCAEQShqNgJYIAQgBEEkajYCUCAEIARBIGo2AkggBEEwakHUmsAAEHQACyAEQeQAakE0NgIAIARB3ABqQTQ2AgAgBEHUAGpBAzYCACAEQcQAakEENgIAIARCBDcCNCAEQbiZwAA2AjAgBEEDNgJMIAQgBEHIAGo2AkAgBCAEQRhqNgJgIAQgBEEQajYCWCAEIARBDGo2AlAgBCAEQQhqNgJIIARBMGpB2JnAABB0AAsgACABQQAgBRB7AAsgBCACIAMgBRs2AiggBEHEAGpBAzYCACAEQdwAakE0NgIAIARB1ABqQTQ2AgAgBEIDNwI0IARB7JjAADYCMCAEQQM2AkwgBCAEQcgAajYCQCAEIARBGGo2AlggBCAEQRBqNgJQIAQgBEEoajYCSCAEQTBqQYSZwAAQdAALIAMgBRC2AQALQdCTwABB6JnAABBvAAsgACABIAMgARB7AAv/BwEIfwJAAkAgAEEDakF8cSICIABrIgMgAUsgA0EES3INACABIANrIgZBBEkNACAGQQNxIQdBACEBAkAgA0UNACADQQNxIQgCQCACIABBf3NqQQNJBEAgACECDAELIANBfHEhBCAAIQIDQCABIAIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEBIAJBBGohAiAEQXxqIgQNAAsLIAhFDQADQCABIAIsAABBv39KaiEBIAJBAWohAiAIQX9qIggNAAsLIAAgA2ohAAJAIAdFDQAgACAGQXxxaiICLAAAQb9/SiEFIAdBAUYNACAFIAIsAAFBv39KaiEFIAdBAkYNACAFIAIsAAJBv39KaiEFCyAGQQJ2IQMgASAFaiEEA0AgACEBIANFDQIgA0HAASADQcABSRsiBUEDcSEGIAVBAnQhBwJAIAVB/AFxIghBAnQiAEUEQEEAIQIMAQsgACABaiEJQQAhAiABIQADQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAEEEaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiAAQQhqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIABBDGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQRBqIgAgCUcNAAsLIAEgB2ohACADIAVrIQMgAkEIdkH/gfwHcSACQf+B/AdxakGBgARsQRB2IARqIQQgBkUNAAsgASAIQQJ0aiEAIAZB/////wNqIgNB/////wNxIgFBAWoiAkEDcQJAIAFBA0kEQEEAIQIMAQsgAkH8////B3EhAUEAIQIDQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAEEEaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiAAQQhqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIABBDGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQRBqIQAgAUF8aiIBDQALCwRAIANBgYCAgHxqIQEDQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQQRqIQAgAUF/aiIBDQALCyACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgBGoPCyABRQRAQQAPCyABQQNxIQICQCABQX9qQQNJBEAMAQsgAUF8cSEBA0AgBCAALAAAQb9/SmogAEEBaiwAAEG/f0pqIABBAmosAABBv39KaiAAQQNqLAAAQb9/SmohBCAAQQRqIQAgAUF8aiIBDQALCyACRQ0AA0AgBCAALAAAQb9/SmohBCAAQQFqIQAgAkF/aiICDQALCyAEC4cHAQV/IAAQvQEiACAAEK8BIgIQugEhAQJAAkACQCAAELABDQAgACgCACEDAkAgABClAUUEQCACIANqIQIgACADELsBIgBBwLHAACgCAEcNASABKAIEQQNxQQNHDQJBuLHAACACNgIAIAAgAiABEIYBDwsgAiADakEQaiEADAILIANBgAJPBEAgABA1DAELIABBDGooAgAiBCAAQQhqKAIAIgVHBEAgBSAENgIMIAQgBTYCCAwBC0GorsAAQaiuwAAoAgBBfiADQQN2d3E2AgALAkAgARCiAQRAIAAgAiABEIYBDAELAkACQAJAQcSxwAAoAgAgAUcEQCABQcCxwAAoAgBHDQFBwLHAACAANgIAQbixwABBuLHAACgCACACaiIBNgIAIAAgARCUAQ8LQcSxwAAgADYCAEG8scAAQbyxwAAoAgAgAmoiATYCACAAIAFBAXI2AgQgAEHAscAAKAIARg0BDAILIAEQrwEiAyACaiECAkAgA0GAAk8EQCABEDUMAQsgAUEMaigCACIEIAFBCGooAgAiAUcEQCABIAQ2AgwgBCABNgIIDAELQaiuwABBqK7AACgCAEF+IANBA3Z3cTYCAAsgACACEJQBIABBwLHAACgCAEcNAkG4scAAIAI2AgAMAwtBuLHAAEEANgIAQcCxwABBADYCAAtB4LHAACgCACABTw0BQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiIAQQBBEEEIEJcBQQJ0ayIBIAEgAEsbRQ0BQcSxwAAoAgBFDQFBCEEIEJcBIQBBFEEIEJcBIQFBEEEIEJcBIQJBAAJAQbyxwAAoAgAiBCACIAEgAEEIa2pqIgJNDQBBxLHAACgCACEBQdCxwAAhAAJAA0AgACgCACABTQRAIAAQpwEgAUsNAgsgACgCCCIADQALQQAhAAsgABCxAQ0AIABBDGooAgAaDAALQQAQN2tHDQFBvLHAACgCAEHgscAAKAIATQ0BQeCxwABBfzYCAA8LIAJBgAJJDQEgACACEDRB6LHAAEHoscAAKAIAQX9qIgA2AgAgAA0AEDcaDwsPCyACQQN2IgNBA3RBsK7AAGohAQJ/QaiuwAAoAgAiAkEBIAN0IgNxBEAgASgCCAwBC0GorsAAIAIgA3I2AgAgAQshAyABIAA2AgggAyAANgIMIAAgATYCDCAAIAM2AggL8gYBBn8CQAJAAkACQAJAIAAoAggiCEEBR0EAIAAoAhAiBEEBRxtFBEAgBEEBRw0DIAEgAmohByAAQRRqKAIAIgYNASABIQQMAgsgACgCGCABIAIgAEEcaigCACgCDBEDACEDDAMLIAEhBANAIAQiAyAHRg0CAn8gA0EBaiADLAAAIgRBf0oNABogA0ECaiAEQWBJDQAaIANBA2ogBEFwSQ0AGiAEQf8BcUESdEGAgPAAcSADLQADQT9xIAMtAAJBP3FBBnQgAy0AAUE/cUEMdHJyckGAgMQARg0DIANBBGoLIgQgBSADa2ohBSAGQX9qIgYNAAsLIAQgB0YNACAELAAAIgNBf0ogA0FgSXIgA0FwSXJFBEAgA0H/AXFBEnRBgIDwAHEgBC0AA0E/cSAELQACQT9xQQZ0IAQtAAFBP3FBDHRycnJBgIDEAEYNAQsCQAJAIAVFBEBBACEEDAELIAUgAk8EQEEAIQMgBSACIgRGDQEMAgtBACEDIAUiBCABaiwAAEFASA0BCyAEIQUgASEDCyAFIAIgAxshAiADIAEgAxshAQsgCEUNASAAQQxqKAIAIQcCQCACQRBPBEAgASACEBQhBAwBCyACRQRAQQAhBAwBCyACQQNxIQUCQCACQX9qQQNJBEBBACEEIAEhAwwBCyACQXxxIQZBACEEIAEhAwNAIAQgAywAAEG/f0pqIANBAWosAABBv39KaiADQQJqLAAAQb9/SmogA0EDaiwAAEG/f0pqIQQgA0EEaiEDIAZBfGoiBg0ACwsgBUUNAANAIAQgAywAAEG/f0pqIQQgA0EBaiEDIAVBf2oiBQ0ACwsgByAESwRAQQAhAyAHIARrIgQhBgJAAkACQEEAIAAtACAiBSAFQQNGG0EDcUEBaw4CAAECC0EAIQYgBCEDDAELIARBAXYhAyAEQQFqQQF2IQYLIANBAWohAyAAQRxqKAIAIQQgACgCBCEFIAAoAhghAAJAA0AgA0F/aiIDRQ0BIAAgBSAEKAIQEQEARQ0AC0EBDwtBASEDIAVBgIDEAEYNASAAIAEgAiAEKAIMEQMADQFBACEDA0AgAyAGRgRAQQAPCyADQQFqIQMgACAFIAQoAhARAQBFDQALIANBf2ogBkkPCwwBCyADDwsgACgCGCABIAIgAEEcaigCACgCDBEDAAv+BgEGf0ErQYCAxAAgACgCACIFQQFxIgYbIQogBCAGaiEHAkAgBUEEcUUEQEEAIQEMAQsCQCACQRBPBEAgASACEBQhCAwBCyACRQ0AIAJBA3EhBgJAIAJBf2pBA0kEQCABIQUMAQsgAkF8cSEJIAEhBQNAIAggBSwAAEG/f0pqIAVBAWosAABBv39KaiAFQQJqLAAAQb9/SmogBUEDaiwAAEG/f0pqIQggBUEEaiEFIAlBfGoiCQ0ACwsgBkUNAANAIAggBSwAAEG/f0pqIQggBUEBaiEFIAZBf2oiBg0ACwsgByAIaiEHCwJAAkAgACgCCEUEQEEBIQUgACAKIAEgAhBuDQEMAgsCQAJAAkACQCAAQQxqKAIAIgYgB0sEQCAALQAAQQhxDQRBACEFIAYgB2siBiEHQQEgAC0AICIIIAhBA0YbQQNxQQFrDgIBAgMLQQEhBSAAIAogASACEG4NBAwFC0EAIQcgBiEFDAELIAZBAXYhBSAGQQFqQQF2IQcLIAVBAWohBSAAQRxqKAIAIQggACgCBCEGIAAoAhghCQJAA0AgBUF/aiIFRQ0BIAkgBiAIKAIQEQEARQ0AC0EBDwtBASEFIAZBgIDEAEYNASAAIAogASACEG4NASAAKAIYIAMgBCAAKAIcKAIMEQMADQEgACgCHCEBIAAoAhghAEEAIQUCfwNAIAcgBSAHRg0BGiAFQQFqIQUgACAGIAEoAhARAQBFDQALIAVBf2oLIAdJIQUMAQsgACgCBCEIIABBMDYCBCAALQAgIQlBASEFIABBAToAICAAIAogASACEG4NAEEAIQUgBiAHayIBIQICQAJAAkBBASAALQAgIgYgBkEDRhtBA3FBAWsOAgABAgtBACECIAEhBQwBCyABQQF2IQUgAUEBakEBdiECCyAFQQFqIQUgAEEcaigCACEGIAAoAgQhASAAKAIYIQcCQANAIAVBf2oiBUUNASAHIAEgBigCEBEBAEUNAAtBAQ8LQQEhBSABQYCAxABGDQAgACgCGCADIAQgACgCHCgCDBEDAA0AIAAoAhwhAyAAKAIYIQRBACEGAkADQCACIAZGDQEgBkEBaiEGIAQgASADKAIQEQEARQ0ACyAGQX9qIAJJDQELIAAgCToAICAAIAg2AgRBAA8LIAUPCyAAKAIYIAMgBCAAQRxqKAIAKAIMEQMAC4MHAQZ/AkACQAJAIAJBCU8EQCADIAIQJyICDQFBAA8LQQAhAkGAgHxBCEEIEJcBQRRBCBCXAWpBEEEIEJcBamtBd3FBfWoiAUEAQRBBCBCXAUECdGsiBSAFIAFLGyADTQ0BQRAgA0EEakEQQQgQlwFBe2ogA0sbQQgQlwEhBSAAEL0BIgEgARCvASIGELoBIQQCQAJAAkACQAJAAkACQCABEKUBRQRAIAYgBU8NASAEQcSxwAAoAgBGDQIgBEHAscAAKAIARg0DIAQQogENByAEEK8BIgcgBmoiCCAFSQ0HIAggBWshBiAHQYACSQ0EIAQQNQwFCyABEK8BIQQgBUGAAkkNBiAEIAVBBGpPQQAgBCAFa0GBgAhJGw0FIAEoAgAiBiAEakEQaiEHIAVBH2pBgIAEEJcBIQRBACIFRQ0GIAUgBmoiASAEIAZrIgBBcGoiAjYCBCABIAIQugFBBzYCBCABIABBdGoQugFBADYCBEHIscAAQcixwAAoAgAgBCAHa2oiADYCAEHkscAAQeSxwAAoAgAiAiAFIAUgAksbNgIAQcyxwABBzLHAACgCACICIAAgAiAASxs2AgAMCQsgBiAFayIEQRBBCBCXAUkNBCABIAUQugEhBiABIAUQggEgBiAEEIIBIAYgBBAhDAQLQbyxwAAoAgAgBmoiBiAFTQ0EIAEgBRC6ASEEIAEgBRCCASAEIAYgBWsiBUEBcjYCBEG8scAAIAU2AgBBxLHAACAENgIADAMLQbixwAAoAgAgBmoiBiAFSQ0DAkAgBiAFayIEQRBBCBCXAUkEQCABIAYQggFBACEEQQAhBgwBCyABIAUQugEiBiAEELoBIQcgASAFEIIBIAYgBBCUASAHIAcoAgRBfnE2AgQLQcCxwAAgBjYCAEG4scAAIAQ2AgAMAgsgBEEMaigCACIJIARBCGooAgAiBEcEQCAEIAk2AgwgCSAENgIIDAELQaiuwABBqK7AACgCAEF+IAdBA3Z3cTYCAAsgBkEQQQgQlwFPBEAgASAFELoBIQQgASAFEIIBIAQgBhCCASAEIAYQIQwBCyABIAgQggELIAENAwsgAxALIgVFDQEgBSAAIAMgARCvAUF4QXwgARClARtqIgEgASADSxsQuQEgABAVDwsgAiAAIAMgASABIANLGxC5ARogABAVCyACDwsgARClARogARC8AQvbBQIKfwd+IwBBMGsiAiQAIABBGGooAgBBAkEEIABBHGooAgAbIgNJBEAgAiAAQRBqIAMgABAMCyACQSBqIAFBGGopAgA3AwAgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACQoCAgIDAADcDKCACIAEpAgA3AwggAEEQaiEJQQAhAyAAQRRqIQoDQCAAKAIQIgQgAkEIaiADQQN0aikCACIQQv////8PgyIMIABBCGopAwAiDYVC88rRy6eM2bLwAIUiDkIQiSAOIAApAwAiD0Lh5JXz1uzZvOwAhXwiDoUiESANQu3ekfOWzNy35ACFIg0gD0L1ys2D16zbt/MAhXwiD0IgiXwiEiAMQoCAgICAgICABISFIA4gDUINiSAPhSIMfCINIAxCEYmFIgx8Ig4gDEINiYUiDCARQhWJIBKFIg8gDUIgiUL/AYV8Ig18IhEgDEIRiYUiDEINiSAMIA9CEIkgDYUiDSAOQiCJfCIOfCIMhSIPQhGJIA8gDUIViSAOhSINIBFCIIl8Ig58Ig+FIhFCDYkgESANQhCJIA6FIg0gDEIgiXwiDHyFIg4gDUIViSAMhSIMIA9CIIl8Ig18Ig8gDEIQiSANhUIViYUgDkIRiYUgD0IgiYUiDKdxIQEgDEIZiEL/AINCgYKEiJCgwIABfiEOIANBAWohAyAKKAIAIQUgEKchBiAQQiCIpyEHQQAhCAJAAkADQCABIAVqKQAAIg0gDoUiEEJ/hSAQQv/9+/fv37//fnyDQoCBgoSIkKDAgH+DIRADQCAQUARAIA0gDUIBhoNCgIGChIiQoMCAf4NQRQ0DIAEgCEEIaiIIaiAEcSEBDAILIBB6IQ8gEEJ/fCAQgyEQIAUgD6dBA3YgAWogBHFBA3RrIgtBeGooAgAgBkcNAAsLIAtBfGogBzYCAAwBCyAJIAwgBiAHIAAQJgsgA0EERw0ACyACQTBqJAALmAUBB38CQAJ/AkAgACABayACSQRAIAEgAmohBSAAIAJqIQMgACACQQ9NDQIaIANBfHEhAEEAIANBA3EiBmshByAGBEAgASACakF/aiEEA0AgA0F/aiIDIAQtAAA6AAAgBEF/aiEEIAAgA0kNAAsLIAAgAiAGayIGQXxxIgJrIQNBACACayECIAUgB2oiBUEDcQRAIAJBf0oNAiAFQQN0IgRBGHEhByAFQXxxIghBfGohAUEAIARrQRhxIQkgCCgCACEEA0AgAEF8aiIAIAQgCXQgASgCACIEIAd2cjYCACABQXxqIQEgACADSw0ACwwCCyACQX9KDQEgASAGakF8aiEBA0AgAEF8aiIAIAEoAgA2AgAgAUF8aiEBIAAgA0sNAAsMAQsCQCACQQ9NBEAgACEDDAELIABBACAAa0EDcSIFaiEEIAUEQCAAIQMgASEAA0AgAyAALQAAOgAAIABBAWohACADQQFqIgMgBEkNAAsLIAQgAiAFayICQXxxIgZqIQMCQCABIAVqIgVBA3EEQCAGQQFIDQEgBUEDdCIAQRhxIQcgBUF8cSIIQQRqIQFBACAAa0EYcSEJIAgoAgAhAANAIAQgACAHdiABKAIAIgAgCXRyNgIAIAFBBGohASAEQQRqIgQgA0kNAAsMAQsgBkEBSA0AIAUhAQNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIANJDQALCyACQQNxIQIgBSAGaiEBCyACRQ0CIAIgA2ohAANAIAMgAS0AADoAACABQQFqIQEgA0EBaiIDIABJDQALDAILIAZBA3EiAEUNASACIAVqIQUgAyAAawshACAFQX9qIQEDQCADQX9qIgMgAS0AADoAACABQX9qIQEgACADSQ0ACwsLwwUCAX8CfiMAQfAAayIFJAAgBSADNgIkIAUgAjYCICAFIAFBBGo2AiggBUHQAGogBUEgahANIAVB0ABqQQRyIQICQAJAAkAgBSgCUEUEQCAFQThqIAJBCGooAgAiAzYCACAFIAIpAgAiBjcDMCAFQdgAaiADNgIAIAUgBjcDUCAFQUBrIAVBIGogBUHQAGoQESAFQSE2AmQgBUGwh8AAQQIQATYCaCAFIAUoAkAiAiAFKAJIEAE2AmwgBUEYaiABIAVB5ABqIAVB6ABqIAVB7ABqEGYgBSgCHCEBAkAgBSgCGEUEQCAFKAJsIgNBJE8EQCADEAALIAUoAmgiA0EkTwRAIAMQAAsgBSgCZCIDQSRPBEAgAxAACyAFIAE2AmwgBUEhNgJQIAVBCGogBUHsAGogBUHQAGogBBBpIAUoAgwhASAFKAIIRQ0DIABCgYCAgBA3AgAgAUEkTwRAIAEQAAsgBSgCUCIAQSRPBEAgABAACyAFKAJsIgBBJEkNASAAEAAMAQsgBSABNgJQIAVBEGogBUHQAGooAgAQBSIBEAIgBSgCECIERQ0DIAUoAhQhAyABQSNLBEAgARAACyAAQgE3AgAgAEEQaiADNgIAIABBDGogAzYCACAAQQhqIAQ2AgAgBSgCUCIAQSRPBEAgABAACyAFKAJsIgBBJE8EQCAAEAALIAUoAmgiAEEkTwRAIAAQAAsgBSgCZCIAQSRJDQAgABAACyAFKAJERQ0DIAIQFQwDCyAFQcgAaiACQQhqKQIAIgY3AwAgBSACKQIAIgc3A0AgAEEMaiAGNwIAIAAgBzcCBCAAQQE2AgAMAgsgBSgCUCIDQSRPBEAgAxAACyAAQQA2AgAgACABNgIEIAUoAmwiAEEkTwRAIAAQAAsgBSgCREUNASACEBUMAQtBgIHAAEG0h8AAEG8ACyAFQfAAaiQAC6wFAQN/IwBBgAFrIgUkACAFQfAAakEKNgIAIAVB6ABqQoqAgIAQNwMAIAVB5ABqIAI2AgAgBUHgAGpBADYCACAFQdwAaiACNgIAIAUgAzYCeCAFQQA7AXQgBSABNgJYIAUgAjYCVCAFQQA2AlACQCADBEAgBUEANgJ4IANBf2oiBgRAA0AgBUEQaiAFQdAAahAdIAUoAhBFDQMgBkF/aiIGDQALCyAFQQhqIAVB0ABqEB0gBSgCCEUNAQsgBSAFQdAAahAdIAUoAgAiBkUNACAFKAIEIQcgBSAGNgIYIAUgBzYCHCAFQfAAakEKNgIAIAVB6ABqQoqAgIAQNwMAIAVB5ABqIAI2AgBBACEHIAVB4ABqQQA2AgAgBUHcAGogAjYCACAFIAM2AnggBUEBOwF0IAUgATYCWCAFIAI2AlQgBUEANgJQIAUgBCAFQdAAahAPayIBNgIkIAVBADYCMCAFQgE3AygCQCABQX9qIgIEQCAFQShqQQAgAhBBIAUoAjAhBgNAIAUoAiwgBkYEfyAFQShqIAYQQCAFKAIwBSAGCyAFKAIoakEgOgAAIAUgBSgCMEEBaiIGNgIwIAJBf2oiAg0ACyAFKAIsIgcgBkcNAQsgBUEoaiAHQQEQQSAFKAIwIQYLIAUoAiggBmpB3gA6AAAgBSAGQQFqNgIwIAVB7ABqQQE2AgAgBUHkAGpBAjYCACAFQdwAakEDNgIAIAVBAzYCVCAFIANBAWo2AjQgBSAFQShqNgJoIAUgBUEYajYCYCAFIAVBJGo2AlggBSAFQTRqNgJQIAVBzABqQQQ2AgAgBUIENwI8IAVBxILAADYCOCAFIAVB0ABqNgJIIAAgBUE4ahAjIAUoAiwEQCAFKAIoEBULIAVBgAFqJAAPC0GAgcAAQaSCwAAQbwALwAQBDX8jAEEQayIFJAACQCABLQAlDQAgASgCCCEIAn8CQCABQRRqKAIAIgYgAUEQaigCACIDSQ0AIAYgAUEMaigCACIMSw0AIAFBHGooAgAiByABQSBqIg5qQX9qIQ0CQCAHQQRNBEADQCADIAhqIQkgDS0AACEKAn8gBiADayIEQQhPBEAgBUEIaiAKIAkgBBAxIAUoAgwhAiAFKAIIDAELQQAhAkEAIARFDQAaA0BBASAKIAIgCWotAABGDQEaIAQgAkEBaiICRw0ACyAEIQJBAAtBAUcNAiABIAIgA2pBAWoiAzYCEAJAIAMgB0kgAyAMS3INACAIIAMgB2siBGogDiAHELgBDQAgASgCACECIAEgAzYCACAEIAJrDAULIAYgA08NAAwDCwALA0AgAyAIaiEJIA0tAAAhCgJ/IAYgA2siBEEITwRAIAUgCiAJIAQQMSAFKAIEIQIgBSgCAAwBC0EAIQJBACAERQ0AGgNAQQEgCiACIAlqLQAARg0BGiAEIAJBAWoiAkcNAAsgBCECQQALQQFHDQEgASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiAC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AiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQML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AX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEgACgCBCgCDBEBAAsRACAAKAIAIAAoAgQgARC3AQsIACAAIAEQJwsWAEHgrcAAIAA2AgBB3K3AAEEBOgAACw0AIAAoAgAgARAuQQALEwAgAEH4j8AANgIEIAAgATYCAAsNACAALQAEQQJxQQF2CxAAIAEgACgCACAAKAIEEBYLCgBBACAAayAAcQsLACAALQAEQQNxRQsMACAAIAFBA3I2AgQLDQAgACgCACAAKAIEagsNACAAKAIAIAEQL0EACw4AIAAoAgAaA0AMAAsACwsAIAA1AgAgARAyCwsAIAAjAGokACMACwkAIAAgARAKAAsNAEGUjcAAQRsQrAEACw4AQa+NwABBzwAQrAEACwoAIAAoAgRBeHELCgAgACgCBEEBcQsKACAAKAIMQQFxCwoAIAAoAgxBAXYLGQAgACABQfytwAAoAgAiAEEjIAAbEQAAAAsJACAAIAEQWAALCQAgACABEFoACwkAIAAgARBZAAsKACACIAAgARAWCwoAIAAgASACEGwLCgAgACABIAIQMAsHACAAIAFqCwcAIAAgAWsLBwAgAEEIagsHACAAQXhqCw0AQovk55XyuI/XuH8LDQBC/LTd9YySl9W1fwsNAEKksbTUvr71pMMACwMAAQsL2i0BAEGAgMAAC9AtL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAAABAATwAAAIwFAAAhAAAAAAAQAE8AAACYBQAAFAAAAAAAEABPAAAAmAUAACEAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAABgAAAAAAAAABAAAABwAAAAgAAAAEAAAABAAAAAkAAAAAABAATwAAABwEAAAXAAAAAAAQAE8AAAC3AQAAJgAAAHNyYy9saWIucnMAABgBEAAKAAAAfAAAAEYAAABsaW5lICBjb2wgOgoKCgAANAEQAAUAAAA5ARAABQAAAD4BEAADAAAAQQEQAAEAAAAYARAACgAAAJQAAAAWAAAAGAEQAAoAAACYAAAAFgAAABgBEAAKAAAAvAAAABYAAAAYARAACgAAANEAAAAwAAAAGAEQAAoAAAAAAQAAFgAAABgBEAAKAAAAAgEAABYAAAAYARAACgAAACkBAAAnAAAAbGV0IF9fcHJzID0gW107CmxldCAgPSAnJzsKAOQBEAAEAAAA6AEQAAcAAAAYARAACgAAAFABAAA9AAAAAis9Jyc7CgAAABAAAAAAABECEAADAAAAFAIQAAMAAAAYARAACgAAAF4BAABQAAAAOwoAAAAAEAAAAAAAQAIQAAIAAAAYARAACgAAAGkBAABRAAAAX19wcnMucHVzaCgpOwoAAGQCEAALAAAAbwIQAAMAAAAYARAACgAAAGUBAABHAAAAckoyS3FYenhRZwAAlAIQAAoAAAAYARAACgAAAGcBAAAiAAAAGAEQAAoAAABxAQAARAAAAGNvbnN0IF9fcnN0ID0gYXdhaXQgUHJvbWlzZS5hbGwoX19wcnMpOwogPSAucmVwbGFjZSgvL2csICgpID0+IF9fcnN0LnNoaWZ0KCkpOwoAAAAQAAAAAADwAhAAAwAAAPMCEAAKAAAA/QIQABoAAAAYARAACgAAAHoBAAAKAAAAcmV0dXJuIABIAxAABwAAAEACEAACAAAAGAEQAAoAAAB7AQAAOwAAAGJvZHksIHJldHVybiAoYXN5bmMgZnVuY3Rpb24oKXt9KS5jb25zdHJ1Y3RvcgAAABgBEAAKAAAAjAEAAEkAAAB0cAAAGAEQAAoAAACgAQAANQAAAAsAAAAMAAAABAAAAAwAAAANAAAADgAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvYTU1ZGQ3MWQ1ZmIwZWM1YTZhM2E5ZThjMjdiMjEyN2JhNDkxY2U1Mi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAABMEEABLAAAAugkAAA4AAAAPAAAAAAAAAAEAAAAHAAAATWlzc2luZyBjbG9zaW5nIGNvbW1hbmQgdGFnIGF0IACABBAAHwAAAE1pc3NpbmcgY29tbWFuZCB0eXBlIGF0IKgEEAAYAAAAVGVtcGxhdGUgZnVuY3Rpb24gY2FsbCBlcnJvcsgEEAAcAAAAVGVtcGxhdGUgc3ludGF4IGVycm9yOiAA7AQQABcAAAAAAAAA//////////8QAAAABAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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");var pr=class{async init(){await ui(pi);let e=new Je("<%","%>","\0","*","-","_","tR");this.renderer=new pt(e)}async parse_commands(e,t){return this.renderer.render_content(e,t)}};var Te;(function(s){s[s.CreateNewFromTemplate=0]="CreateNewFromTemplate",s[s.AppendActiveFile=1]="AppendActiveFile",s[s.OverwriteFile=2]="OverwriteFile",s[s.OverwriteActiveFile=3]="OverwriteActiveFile",s[s.DynamicProcessor=4]="DynamicProcessor",s[s.StartupTemplate=5]="StartupTemplate"})(Te||(Te={}));var ft=class{constructor(e){this.plugin=e;this.functions_generator=new sr(this.plugin),this.parser=new pr}async setup(){this.files_with_pending_templates=new Set,await this.parser.init(),await this.functions_generator.init(),this.plugin.registerMarkdownPostProcessor((e,t)=>this.process_dynamic_templates(e,t))}create_running_config(e,t,n){let i=He(this.plugin.app);return{template_file:e,target_file:t,run_mode:n,active_file:i}}async read_and_parse_template(e){if(!(e.template_file instanceof G.TFile))throw new T("Template file is not a TFile");let t=await this.plugin.app.vault.read(e.template_file);return this.parse_template(e,t)}async parse_template(e,t){let n=await this.functions_generator.generate_object(e,ve.USER_INTERNAL);return this.current_functions_object=n,await this.parser.parse_commands(t,n)}start_templater_task(e){this.files_with_pending_templates.add(e)}async end_templater_task(e){this.files_with_pending_templates.delete(e),this.files_with_pending_templates.size===0&&(this.plugin.app.workspace.trigger("templater:all-templates-executed"),await this.functions_generator.teardown())}async create_new_note_from_template(e,t,n,i=!0){if(!t)switch(this.plugin.app.vault.getConfig("newFileLocation")){case"current":{let j=He(this.plugin.app);j&&(t=j.parent instanceof G.TFolder?j.parent:void 0);break}case"folder":t=this.plugin.app.fileManager.getNewFileParent("");break;case"root":t=this.plugin.app.vault.getRoot();break;default:break}let o=e instanceof G.TFile&&e.extension||"md",s=await se(async()=>{let h=t instanceof G.TFolder?t.path:t,j=this.plugin.app.vault.getAvailablePath((0,G.normalizePath)(`${h??""}/${n||"Untitled"}`),o),E=sn(j);return E&&!this.plugin.app.vault.getAbstractFileByPathInsensitive(E)&&await this.plugin.app.vault.createFolder(E),this.plugin.app.vault.create(j,"")},`Couldn't create ${o} file.`);if(s==null)return;let{path:l}=s;this.start_templater_task(l);let u,d;if(e instanceof G.TFile?(u=this.create_running_config(e,s,0),d=await se(async()=>this.read_and_parse_template(u),"Template parsing error, aborting.")):(u=this.create_running_config(void 0,s,0),d=await se(async()=>this.parse_template(u,e),"Template parsing error, aborting.")),d==null){await this.plugin.app.vault.delete(s),await this.end_templater_task(l);return}if(await this.plugin.app.vault.modify(s,d),this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:s,content:d}),i){let h=this.plugin.app.workspace.getLeaf(!1);if(!h){z(new T("No active leaf"));return}await h.openFile(s,{state:{mode:"source"}}),await this.plugin.editor_handler.jump_to_next_cursor_location(s,!0),h.setEphemeralState({rename:"all"})}return await this.end_templater_task(l),s}async append_template_to_active_file(e){let t=this.plugin.app.workspace.getActiveViewOfType(G.MarkdownView),n=this.plugin.app.workspace.activeEditor;if(!n||!n.file||!n.editor){z(new T("No active editor, can't append templates."));return}let{path:i}=n.file;this.start_templater_task(i);let o=this.create_running_config(e,n.file,1),s=await se(async()=>this.read_and_parse_template(o),"Template parsing error, aborting.");if(s==null){await this.end_templater_task(i);return}let{content:l,frontmatter:u}=St(s),h=n.editor.getDoc(),j=h.listSelections();h.replaceSelection(l),t&&(Object.keys(u).length>0&&t instanceof G.MarkdownView&&typeof t.metadataEditor?.insertProperties=="function"&&t.metadataEditor.insertProperties(u),await Le(100),await t.save()),this.plugin.app.workspace.trigger("templater:template-appended",{view:t,editor:n,content:s,oldSelections:j,newSelections:h.listSelections()}),await this.plugin.editor_handler.jump_to_next_cursor_location(n.file,!0),await this.end_templater_task(i)}async write_template_to_file(e,t){let{path:n}=t;this.start_templater_task(n);let i=this.plugin.app.workspace.getActiveViewOfType(G.MarkdownView),o=this.plugin.app.workspace.activeEditor,s=He(this.plugin.app),l=this.create_running_config(e,t,2),u=await se(async()=>this.read_and_parse_template(l),"Template parsing error, aborting.");if(u==null){await this.end_templater_task(n);return}let{content:d,frontmatter:h}=St(u);if(s?.path===t.path&&o&&o.editor&&i){let j="",{content:E,frontmatter:M}=St(o.editor.getValue());cn(M,h),Object.keys(M).length>0&&(j+=`--- +${(0,G.stringifyYaml)(M)}--- +`),j+=E+d,o.editor.setValue(j),o.editor.setSelection({line:0,ch:0},{line:0,ch:0}),await Le(100),await i.save()}else await this.plugin.app.vault.process(t,j=>{let E="",{content:M,frontmatter:I}=St(j);return cn(I,h),Object.keys(I).length>0&&(E+=`--- +${(0,G.stringifyYaml)(I)}--- +`),E+=M+d,u=E,E});this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:t,content:u}),await this.plugin.editor_handler.jump_to_next_cursor_location(t,!0),await this.end_templater_task(n)}async overwrite_active_file_commands(){let e=this.plugin.app.workspace.activeEditor;if(!e||!e.file){z(new T("Active editor is null, can't overwrite content"));return}await this.overwrite_file_commands(e.file,!0)}async overwrite_file_commands(e,t=!1){let{path:n}=e;this.start_templater_task(n);let i=this.create_running_config(e,e,t?3:2),o=await se(async()=>this.read_and_parse_template(i),"Template parsing error, aborting.");if(o==null){await this.end_templater_task(n);return}await this.plugin.app.vault.modify(e,o),this.plugin.app.workspace.trigger("templater:overwrite-file",{file:e,content:o}),await this.plugin.editor_handler.jump_to_next_cursor_location(e,!0),await this.end_templater_task(n)}async process_dynamic_templates(e,t){let n=Jr(),i=activeDocument.createNodeIterator(e,NodeFilter.SHOW_TEXT),o,s=!1,l;for(;o=i.nextNode();){let u=o.nodeValue;if(u!==null){let d=n.exec(u);if(d!==null){let h=this.plugin.app.metadataCache.getFirstLinkpathDest("",t.sourcePath);if(!h||!(h instanceof G.TFile))return;if(!s){s=!0;let j=this.create_running_config(h,h,4);l=await this.functions_generator.generate_object(j,ve.USER_INTERNAL),this.current_functions_object=l}}for(;d!=null;){let h=d[1]+d[2],j=await se(async()=>await this.parser.parse_commands(h,l),`Command Parsing error in dynamic command '${h}'`);if(j==null)return;let E=n.lastIndex-d[0].length,M=n.lastIndex;u=u.substring(0,E)+j+u.substring(M),n.lastIndex+=j.length-d[0].length,d=n.exec(u)}o.nodeValue=u}}}get_new_file_template_for_folder(e){let t=e;for(;t instanceof G.TFolder;){let n=t,i=this.plugin.settings.folder_templates.find(o=>o.folder==n.path);if(i&&i.template)return i.template;t=t.parent}}get_new_file_template_for_file(e){let t=this.plugin.settings.file_templates.find(n=>new RegExp(n.regex).test(e.path));if(t&&t.template)return t.template}static async on_file_creation(e,t,n){if(!(n instanceof G.TFile)||n.extension!=="md")return;let i=(0,G.normalizePath)(e.plugin.settings.templates_folder);if(n.path.includes(i)&&i!=="/")return;for(let u of e.plugin.settings.ignore_folders_on_creation){let d=(0,G.normalizePath)(u.folder);if(n.path.startsWith(d)&&d!=="")return}if(await Le(300),e.files_with_pending_templates.has(n.path))return;let o=await t.vault.read(n),s=(0,G.getFrontMatterInfo)(o),l=o.length-s.contentStart;if(l==0&&e.plugin.settings.enable_folder_templates){if(!(n.parent instanceof G.TFolder))return;let u=e.get_new_file_template_for_folder(n.parent);if(!u)return;let d=await se(async()=>De(t,u),`Couldn't find template ${u}`);if(d==null)return;await e.write_template_to_file(d,n)}else if(l==0&&e.plugin.settings.enable_file_templates){let u=e.get_new_file_template_for_file(n);if(!u)return;let d=await se(async()=>De(t,u),`Couldn't find template ${u}`);if(d==null)return;await e.write_template_to_file(d,n)}else{let u=1e5;n.stat.size<=u?await e.overwrite_file_commands(n):console.debug(`Templater skipped parsing ${n.path} because file size exceeds ${u}`)}}async execute_startup_scripts(){for(let e of this.plugin.settings.startup_templates){if(!e)continue;let t=ce(()=>De(this.plugin.app,e),`Couldn't find startup template "${e}"`);if(!t)continue;let{path:n}=t;this.start_templater_task(n);let i=this.create_running_config(t,t,5);await se(async()=>this.read_and_parse_template(i),"Startup Template parsing error, aborting."),await this.end_templater_task(n)}}};var dt=Y(require("obsidian"));var An=class{constructor(e,t,n){this.plugin=e;this.templater=t;this.settings=n}async setup(){this.plugin.app.workspace.onLayoutReady(async()=>{if(this.settings.trigger_on_file_creation&&this.plugin.app.vault.getConfig("openBehavior")==="daily"){let t=this.plugin.app.internalPlugins.getEnabledPluginById("daily-notes");if(t){let{folder:n,format:i}=t.options,o=(0,dt.normalizePath)(`${n}/${(0,dt.moment)().format(i)}.md`),s=He(this.plugin.app);s?.path===o&&await ft.on_file_creation(this.templater,this.plugin.app,s)}}this.update_trigger_file_on_creation()}),await this.update_syntax_highlighting(),this.update_file_menu()}async update_syntax_highlighting(){let e=this.plugin.editor_handler.desktopShouldHighlight(),t=this.plugin.editor_handler.mobileShouldHighlight();e||t?await this.plugin.editor_handler.enable_highlighter():await this.plugin.editor_handler.disable_highlighter()}update_trigger_file_on_creation(){this.settings.trigger_on_file_creation?(this.trigger_on_file_creation_event=this.plugin.app.vault.on("create",e=>ft.on_file_creation(this.templater,this.plugin.app,e)),this.plugin.registerEvent(this.trigger_on_file_creation_event)):this.trigger_on_file_creation_event&&(this.plugin.app.vault.offref(this.trigger_on_file_creation_event),this.trigger_on_file_creation_event=void 0)}update_file_menu(){this.plugin.registerEvent(this.plugin.app.workspace.on("file-menu",(e,t)=>{t instanceof dt.TFolder&&e.addItem(n=>{n.setTitle("Create new note from template").setIcon("templater-icon").onClick(()=>{this.plugin.fuzzy_suggester.create_new_note_from_template(t)})})}))}};var We=Y(require("obsidian"));var fr=class{constructor(e){this.plugin=e}setup(){this.plugin.addCommand({id:"insert-templater",name:"Open insert template modal",icon:"templater-icon",hotkeys:We.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"e"}],callback:()=>{this.plugin.fuzzy_suggester.insert_template()}}),this.plugin.addCommand({id:"replace-in-file-templater",name:"Replace templates in the active file",icon:"templater-icon",hotkeys:We.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"r"}],callback:async()=>{await this.plugin.templater.overwrite_active_file_commands()}}),this.plugin.addCommand({id:"jump-to-next-cursor-location",name:"Jump to next cursor location",icon:"text-cursor",hotkeys:[{modifiers:["Alt"],key:"Tab"}],callback:async()=>{await this.plugin.editor_handler.jump_to_next_cursor_location()}}),this.plugin.addCommand({id:"create-new-note-from-template",name:"Create new note from template",icon:"templater-icon",hotkeys:We.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"n"}],callback:()=>{this.plugin.fuzzy_suggester.create_new_note_from_template()}}),this.register_templates_hotkeys(),this.register_cli_handler()}register_templates_hotkeys(){this.plugin.settings.enabled_templates_hotkeys.forEach(e=>{e&&this.add_template_hotkey(null,e)})}add_template_hotkey(e,t){if(this.remove_template_hotkey(e),t){let n=this.plugin.settings.templates_folder?this.plugin.settings.templates_folder.length+1:0,i=t.slice(n,-3);this.plugin.addCommand({id:t,name:`Insert ${i}`,icon:"templater-icon",callback:async()=>{let o=ce(()=>De(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||await this.plugin.templater.append_template_to_active_file(o)}}),this.plugin.addCommand({id:`create-${t}`,name:`Create ${i}`,icon:"templater-icon",callback:async()=>{let o=ce(()=>De(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||await this.plugin.templater.create_new_note_from_template(o)}})}}remove_template_hotkey(e){e&&(this.plugin.removeCommand(`${e}`),this.plugin.removeCommand(`create-${e}`))}register_cli_handler(){this.plugin.registerCliHandler("templater:create-from-template","Create a new note from a Templater template",{template:{value:"",description:"Template file path (relative to vault root or templates folder)",required:!0},file:{value:"",description:"Output file path (relative to vault root)",required:!0},open:{description:"Open the created file in the UI",required:!1}},async e=>this.handle_create_from_template(e))}resolve_template_file(e){let t=e;t.endsWith(".md")||(t=`${t}.md`);try{return De(this.plugin.app,t)}catch{let n=this.plugin.settings.templates_folder;if(n){let i=(0,We.normalizePath)(`${n}/${t}`);return De(this.plugin.app,i)}throw new Error(`Template "${e}" not found`)}}async handle_create_from_template(e){let{template:t,file:n,open:i}=e;if(!t)return"Error: template parameter is required";if(!n)return"Error: file parameter is required";try{let o=this.resolve_template_file(t),s=(0,We.normalizePath)(n),l=sn(s),u=s.slice(l.length+1).replace(/\.md$/,""),d;if(l)try{d=Un(this.plugin.app,l)}catch{}let h=i==="true",j=await this.plugin.templater.create_new_note_from_template(o,d??l,u,h);return j?j.path:"Error: Failed to create note from template"}catch(o){return`Error: ${o instanceof Error?o.message:String(o)}`}}};var _r=Y(require("obsidian"));var dr=Y(require("obsidian"));var gr=class{constructor(e){this.app=e}async jump_to_next_cursor_location(){let e=this.app.workspace.activeEditor;if(!e?.editor)return;let t=e.editor.getValue(),{cursor_matches:n,positions:i}=this.get_cursor_matches_and_positions(t);if(!i||!n)return;let o=e instanceof dr.MarkdownView?e.currentMode.getFoldInfo():null,s=[];for(let l=n.length-1;l>=0;l--){let u=n[l],d=this.get_editor_position_from_index(t,u.index),h=this.get_editor_position_from_index(t,u.index+u[0].length);s.push({from:d,to:h,text:""})}e.editor.transaction({changes:s,selections:i.map(l=>({from:l}))}),o&&Array.isArray(o.folds)&&(i.forEach(l=>{o.folds=o.folds.filter(u=>u.from>l.line||u.to[0-9]*)\)\s*%>/g,n=[],i;for(;(i=t.exec(e))!==null;)n.push(i);if(n.length===0)return{};n.sort((h,j)=>Number(h.groups?.order||0)-Number(j.groups?.order||0));let o=n[0][0],s=n.filter(h=>h[0]===o),l=s[0][1]===""?[s[0]]:s,u=[],d=0;for(let h of l){let j=h.index-d;u.push(this.get_editor_position_from_index(e,j)),e=e.slice(0,j)+e.slice(j+h[0].length),d+=h[0].length}return{cursor_matches:l,positions:u}}};var mi=Y(require("obsidian"));var Yo={app:{name:"app",description:"This module exposes the app instance. Prefer to use this over the global app instance."},user:{name:"user",description:"This module exposes custom made scripts, written by yourself within the script file folder location"},config:{name:"config",description:`This module exposes Templater's running configuration. + +This is mostly useful when writing scripts requiring some context information. +`,functions:{template_file:{name:"template_file",description:"The `TFile` object representing the template file.",definition:"tp.config.template_file"},target_file:{name:"target_file",description:"The `TFile` object representing the target file where the template will be inserted.",definition:"tp.config.target_file"},run_mode:{name:"run_mode",description:"The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...).",definition:"tp.config.run_mode"},active_file:{name:"active_file",description:"The active file (if existing) when launching Templater.",definition:"tp.config.active_file?"}}},date:{name:"date",description:"This module contains every internal function related to dates.",functions:{now:{name:"now",description:"Retrieves the date.",definition:'tp.date.now(format: string = "YYYY-MM-DD", offset?: number | string, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"offset",description:"Duration to offset the date from. If a number is provided, duration will be added to the date in days. You can also specify the offset as a string using the ISO 8601 format."},{name:"reference",description:"The date to use instead of today's date, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"Date now",example:"<% tp.date.now() %>"},{name:"Date now with format",example:'<% tp.date.now("Do MMMM YYYY") %>'},{name:"Last week",example:'<% tp.date.now("YYYY-MM-DD", -7) %>'},{name:"Next week",example:'<% tp.date.now("YYYY-MM-DD", 7) %>'},{name:"Last month",example:'<% tp.date.now("YYYY-MM-DD", "P-1M") %>'},{name:"Next year",example:'<% tp.date.now("YYYY-MM-DD", "P1Y") %>'},{name:"File's title date + 1 day (tomorrow)",example:'<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title date - 1 day (yesterday)",example:'<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>'}]},tomorrow:{name:"tomorrow",description:"Retrieves tomorrow's date.",definition:'tp.date.tomorrow(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date tomorrow",example:"<% tp.date.tomorrow() %>"},{name:"Date tomorrow with format",example:'<% tp.date.tomorrow("Do MMMM YYYY") %>'}]},yesterday:{name:"yesterday",description:"Retrieves yesterday's date.",definition:'tp.date.yesterday(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date yesterday",example:"<% tp.date.yesterday() %>"},{name:"Date yesterday with format",example:'<% tp.date.yesterday("Do MMMM YYYY") %>'}]},weekday:{name:"weekday",description:"",definition:'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"weekday",description:"Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day."},{name:"reference",description:"The reference date to use instead of today, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"This week's Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0) %>'},{name:"Next Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 7) %>'},{name:"File's title Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title previous Monday",example:'<% tp.date.weekday("YYYY-MM-DD", -7, tp.file.title, "YYYY-MM-DD") %>'}]}},momentjs:{examples:[{name:"Date now",example:'<% moment(tp.file.title, "YYYY-MM-DD").format("YYYY-MM-DD") %>'},{name:"Get start of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").startOf("month").format("YYYY-MM-DD") %>'},{name:"Get end of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").endOf("month").format("YYYY-MM-DD") %>'}]}},file:{name:"file",description:"This module contains every internal function related to files.",functions:{content:{name:"content",description:"The string contents of the file at the time that Templater was executed. Manipulating this string will *not* update the current file.",definition:"tp.file.content",examples:[{name:"Retrieve file content",example:"<% tp.file.content %>"}]},create_new:{name:"create_new",description:"Creates a new file using a specified template or with a specified content.",definition:"tp.file.create_new(template: TFile | string, filename: string = 'Untitled', open_new: boolean = false, folder?: TFolder | string)",args:[{name:"template",description:"Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`."},{name:"filename",description:'The filename of the new file, defaults to "Untitled".'},{name:"open_new",description:"Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file."},{name:"folder",description:'The folder to put the new file in, defaults to Obsidian\'s default location. If you want the file to appear in a different folder, specify it with `"PATH/TO/FOLDERNAME"` or `tp.app.vault.getAbstractFileByPath("PATH/TO/FOLDERNAME")`.'}],examples:[{name:"File creation",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename") %>'},{name:"File creation with template",example:'<%* await tp.file.create_new(tp.file.find_tfile("MyTemplate"), "MyFilename") %>'},{name:"File creation and open created note",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", true) %>'},{name:"File creation in current folder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.file.folder(true)) %>'},{name:"File creation in specified folder with string path",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, "Path/To/MyFolder") %>'},{name:"File creation in specified folder with TFolder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.app.vault.getAbstractFileByPath("MyFolder")) %>'},{name:"File creation and append link to current note",example:'[[<% (await tp.file.create_new("MyFileContent", "MyFilename")).basename %>]]'}]},creation_date:{name:"creation_date",description:"Retrieves the current file's creation date.",definition:'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File creation date",example:"<% tp.file.creation_date() %>"},{name:"File creation date with format",example:'<% tp.file.creation_date("dddd Do MMMM YYYY HH:mm") %>'}]},cursor:{name:"cursor",description:`Sets the cursor to this location after the template has been inserted. + +You can navigate between the different cursors using the configured hotkey in Obsidian settings. +`,definition:"tp.file.cursor(order?: number)",args:[{name:"order",description:`The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on. +If you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor. +`}],examples:[{name:"File cursor",example:"<% tp.file.cursor() %>"},{name:"File multi-cursor",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1) %>"}]},cursor_append:{name:"cursor_append",description:"Appends some content after the active cursor in the file.",definition:"tp.file.cursor_append(content: string)",args:[{name:"content",description:"The content to append after the active cursor."}],examples:[{name:"File cursor append",example:'<% tp.file.cursor_append("Some text") %>'}]},exists:{name:"exists",description:"Check to see if a file exists by it's file path. The full path to the file, relative to the Vault and containing the extension, must be provided.",definition:"tp.file.exists(filepath: string)",args:[{name:"filepath",description:"The full file path of the file we want to check existence for."}],examples:[{name:"File existence",example:'<% await tp.file.exists("MyFolder/MyFile.md") %>'},{name:"File existence of current file",example:'<% await tp.file.exists(tp.file.folder(true) + "/" + tp.file.title + ".md") %>'}]},find_tfile:{name:"find_tfile",description:"Search for a file and returns its `TFile` instance.",definition:"tp.file.find_tfile(filename: string)",args:[{name:"filename",description:"The filename we want to search and resolve as a `TFile`."}],examples:[{name:"File find TFile",example:'<% tp.file.find_tfile("MyFile").basename %>'}]},folder:{name:"folder",description:"Retrieves the file's folder name.",definition:"tp.file.folder(absolute: boolean = false)",args:[{name:"absolute",description:"If set to `true`, returns the vault-absolute path of the folder. If `false`, only returns the basename of the folder (the last part). Defaults to `false`."}],examples:[{name:"File folder (Folder)",example:"<% tp.file.folder() %>"},{name:"File folder with vault-absolute path (Path/To/Folder)",example:"<% tp.file.folder(true) %>"}]},include:{name:"include",description:"Includes the file's link content. Templates in the included content will be resolved.",definition:"tp.file.include(include_link: string | TFile)",args:[{name:"include_link",description:'The link to the file to include, e.g. `"[[MyFile]]"`, or a TFile object. Also supports sections or blocks inclusions.'}],examples:[{name:"File include",example:'<% await tp.file.include("[[Template1]]") %>'},{name:"File include TFile",example:'<% await tp.file.include(tp.file.find_tfile("MyFile")) %>'},{name:"File include section",example:'<% await tp.file.include("[[MyFile#Section1]]") %>'},{name:"File include block",example:'<% await tp.file.include("[[MyFile#^block1]]") %>'}]},last_modified_date:{name:"last_modified_date",description:"Retrieves the file's last modification date.",definition:'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File last modified date",example:"<% tp.file.last_modified_date() %>"},{name:"File last modified date with format",example:'<% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm") %>'}]},move:{name:"move",description:"Moves the file to the desired vault location.",definition:"tp.file.move(new_path: string, file_to_move?: TFile)",args:[{name:"new_path",description:'The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. `"/Notes/MyNote"`.'},{name:"file_to_move",description:"The file to move, defaults to the current file."}],examples:[{name:"File move",example:'<%* await tp.file.move("/A/B/" + tp.file.title) %>'},{name:"File move and rename",example:'<%* await tp.file.move("/A/B/NewTitle") %>'}]},path:{name:"path",description:"Retrieves the file's absolute path on the system.",definition:"tp.file.path(relative: boolean = false)",args:[{name:"relative",description:"If set to `true`, only retrieves the vault's relative path."}],examples:[{name:"File path",example:"<% tp.file.path() %>"},{name:"File relative path (relative to vault root)",example:"<% tp.file.path(true) %>"}]},rename:{name:"rename",description:"Renames the file (keeps the same file extension).",definition:"tp.file.rename(new_title: string)",args:[{name:"new_title",description:"The new file title."}],examples:[{name:"File rename",example:'<%* await tp.file.rename("MyNewName") %>'},{name:"File append a 2 to the file name",example:'<%* await tp.file.rename(tp.file.title + "2") %>'}]},selection:{name:"selection",description:"Retrieves the active file's text selection.",definition:"tp.file.selection()",examples:[{name:"File selection",example:"<% tp.file.selection() %>"}]},tags:{name:"tags",description:"Retrieves the file's tags (array of string).",definition:"tp.file.tags",examples:[{name:"File tags",example:"<% tp.file.tags %>"}]},title:{name:"title",definition:"tp.file.title",description:"Retrieves the file's title.",examples:[{name:"File title",example:"<% tp.file.title %>"},{name:"Strip the Zettelkasten ID of title (if space separated)",example:'<% tp.file.title.split(" ")[1] %>'}]}}},frontmatter:{name:"frontmatter",description:"This modules exposes all the frontmatter variables of a file as variables."},hooks:{name:"hooks",description:"This module exposes hooks that allow you to execute code when a Templater event occurs.",functions:{on_all_templates_executed:{name:"on_all_templates_executed",description:"Hooks into when all actively running templates have finished executing. Most of the time this will be a single template, unless you are using `tp.file.include` or `tp.file.create_new`.\n\nMultiple invokations of this method will have their callback functions run in parallel.",definition:"tp.hooks.on_all_templates_executed(callback_function: () => any)",args:[{name:"callback_function",description:"Callback function that will be executed when all actively running templates have finished executing."}]}}},obsidian:{name:"obsidian",description:"This module exposes all the functions and classes from the Obsidian API."},system:{name:"system",description:"This module contains system related functions.",functions:{clipboard:{name:"clipboard",description:"Retrieves the clipboard's content.",definition:"tp.system.clipboard()",examples:[{name:"Clipboard",example:"<% tp.system.clipboard() %>"}]},prompt:{name:"prompt",description:"Spawns a prompt modal and returns the user's input.",definition:"tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)",args:[{name:"prompt_text",description:"Text placed above the input field."},{name:"default_value",description:"A default value for the input field."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"multiline",description:"If set to `true`, the input field will be a multiline textarea. Defaults to `false`."}],examples:[{name:"Prompt",example:'<% await tp.system.prompt("Please enter a value") %>'},{name:"Prompt with default value",example:'<% await tp.system.prompt("What is your mood today?", "happy") %>'},{name:"Multiline prompt",example:'<% await tp.system.prompt("What is your mood today?", null, false, true) %>'},{name:"Reuse output from prompt",example:`<%* +let value = await tp.system.prompt("Please enter a value"); +%> +# <% value %> +selected value: <% value %>`}]},suggester:{name:"suggester",description:"Spawns a suggester prompt and returns the user's chosen item.",definition:'tp.system.suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined, default_value?: T = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"placeholder",description:"Placeholder string of the prompt."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_value",description:"Default value to initialize the suggester with."}],examples:[{name:"Suggester",example:'<% await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester with mapping function (same as above example)",example:'<% await tp.system.suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester for files",example:"[[<% (await tp.system.suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).basename %>]]"},{name:"Suggester for tags",example:'<% await tp.system.suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from suggester",example:`<%* +let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); +%> +# <% selectedValue %> +selected value: <% selectedValue %>`},{name:"Default value for the suggester",example:`<%* +let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, "Confused"); +%> +# <% selectedValue %> +selected value: <% selectedValue %>`}]},multi_suggester:{name:"multi_suggester",description:"Spawns a suggester prompt that supports selecting multiple items and returns the user's chosen items.",definition:'tp.system.multi_suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, title: string = "", limit?: number = undefined, default_values?: T[] = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"title",description:"Text placed at the top of the modal."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_values",description:"Default values to initialize the suggester with."}],examples:[{name:"Multi-suggester",example:'<% await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester with mapping function (same as above example)",example:'<% await tp.system.multi_suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester for files",example:"<% (await tp.system.multi_suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).map(f => `[[${f.basename}]]`) %>"},{name:"Multi-suggester for tags",example:'<% await tp.system.multi_suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from multi-suggester",example:`<%* +let selectedValues = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); +%> +# <% selectedValues %> +selected values: <% selectedValues %>`},{name:"Default value for the suggester",example:`<%* +let selectedValue = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, ["Happy", "Confused"]); +%> +# <% selectedValue %> +selected value: <% selectedValue %>`}]}}},web:{name:"web",description:"This modules contains every internal function related to the web (making web requests).",functions:{daily_quote:{name:"daily_quote",description:"Retrieves and parses the daily quote from `https://github.com/Zachatoo/quotes-database` as a callout.",definition:"tp.web.daily_quote()",examples:[{name:"Daily quote",example:"<% await tp.web.daily_quote() %>"}]},random_picture:{name:"random_picture",description:"Gets a random image from `https://unsplash.com/`.",definition:"tp.web.random_picture(size?: string, query?: string, include_size?: boolean)",args:[{name:"size",description:"Image size in the format `x`."},{name:"query",description:"Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma."},{name:"include_size",description:"Optional argument to include the specified size in the image link markdown. Defaults to false."}],examples:[{name:"Random picture",example:"<% await tp.web.random_picture() %>"},{name:"Random picture with size",example:'<% await tp.web.random_picture("200x200") %>'},{name:"Random picture with size and query",example:'<% await tp.web.random_picture("200x200", "landscape,water") %>'}]},request:{name:"request",description:"Makes a HTTP request to the specified URL. Optionally, you can specify a path to extract specific data from the response.",definition:"tp.web.request(url: string, path?: string)",args:[{name:"url",description:"The URL to which the HTTP request will be made."},{name:"path",description:"A path within the response JSON to extract specific data."}],examples:[{name:"Simple request",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos/1") %>'},{name:"Request with path",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos", "0.title") %>'}]}}}},di={tp:Yo};var Go=["app","config","date","file","frontmatter","hooks","obsidian","system","user","web"],Ro=new Set(Go);function mr(r){return typeof r=="string"&&Ro.has(r)}function gi(r){return!!(r.definition||r.returns||r.args)}var hr=class{constructor(e){this.plugin=e;this.documentation=di}get_all_modules_documentation(){let e=this.documentation.tp,t=Object.values(e);return(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)&&(t=t.filter(n=>n.name!=="user")),t.map(n=>(n.queryKey=n.name,n))}async get_all_functions_documentation(e,t){if(e==="app")return this.get_app_functions_documentation(this.plugin.app,t);if(e==="user"){if(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)return;let n=await se(async()=>{let i=je(this.plugin.app,this.plugin.settings.user_scripts_folder).filter(s=>s.extension=="js");return await Wr(this.plugin.app,i)},"User Scripts folder doesn't exist");return!n||n.length===0?void 0:n.reduce((i,o)=>o.extension!=="js"?i:[...i,{name:o.basename,queryKey:o.basename,definition:"",description:o.description,returns:o.returns,args:o.arguments.reduce((l,u)=>(l[u.name]={name:u.name,description:u.description},l),{}),example:""}],[])}if(!!this.documentation.tp[e].functions)return Object.values(this.documentation.tp[e].functions).map(n=>(n.queryKey=n.name,n))}get_app_functions_documentation(e,t){if(!kt(e))return[];let n=t.split(".");if(n.length===0)return[];let i=e;for(let u=0;u[a-z]*)?(?\.(?[a-zA-Z_.]*)?)?$/;this.module_name="";this.function_trigger=!1;this.function_name="";this.documentation=new hr(e),this.intellisense_render_setting=e.settings.intellisense_render}onTrigger(e,t,n){let i=t.getRange({line:e.line,ch:0},{line:e.line,ch:e.ch}),o=this.tp_keyword_regex.exec(i);if(!o)return null;let s,l=o.groups&&o.groups.module||"";if(mr(l)&&(this.module_name=l),o.groups&&o.groups.fn_trigger){if(l==""||!mr(l))return null;this.function_trigger=!0,this.function_name=o.groups.fn||"",s=this.function_name}else this.function_trigger=!1,s=this.module_name;let u={start:{line:e.line,ch:e.ch-s.length},end:{line:e.line,ch:e.ch},query:s};return this.latest_trigger_info=u,u}async getSuggestions(e){let t;return this.module_name&&this.function_trigger?t=await this.documentation.get_all_functions_documentation(this.module_name,this.function_name):t=this.documentation.get_all_modules_documentation(),t?t.filter(n=>n.queryKey.toLowerCase().startsWith(e.query.toLowerCase())):[]}renderSuggestion(e,t){let n=gi(e),i=n&&e.args&&this.getNumberOfArguments(e.args)>0&&Zr(this.intellisense_render_setting),o=n&&e.returns&&Xr(this.intellisense_render_setting),s=n&&this.function_trigger&&e.definition,l=e.description&&ei(this.intellisense_render_setting),u=i||o||s||l;if(t.createEl("b",{text:e.name}),u&&t.createEl("br"),n){if(i){t.createEl("p",{text:"Parameter list:"});let d=t.createEl("ol");for(let[h,j]of Object.entries(e.args??{}))Yn(d,h,j.description)}o&&Yn(t,"Returns",e.returns)}s&&t.createEl("code",{text:e.definition}),l&&t.createDiv({text:e.description})}selectSuggestion(e,t){let n=this.app.workspace.activeEditor;if(!(!n||!n.editor)&&!!this.latest_trigger_info&&(n.editor.replaceRange(e.queryKey,this.latest_trigger_info.start,this.latest_trigger_info.end),this.latest_trigger_info.start.ch==this.latest_trigger_info.end.ch)){let i=this.latest_trigger_info.end;i.ch+=e.queryKey.length,n.editor.setCursor(i)}}getNumberOfArguments(e){try{return new Map(Object.entries(e)).size}catch{return 0}}updateAutocompleteIntellisenseSetting(e){this.intellisense_render_setting=e}};(function(r){r(window.CodeMirror)})(function(r){"use strict";r.defineMode("javascript",function(e,t){var n=e.indentUnit,i=t.statementIndent,o=t.jsonld,s=t.json||o,l=t.trackScope!==!1,u=t.typescript,d=t.wordCharacters||/[\w$\xa1-\uffff]/,h=function(){function a(te){return{type:te,style:"keyword"}}var c=a("keyword a"),m=a("keyword b"),_=a("keyword c"),C=a("keyword d"),O=a("operator"),$={type:"atom",style:"atom"};return{if:a("if"),while:c,with:c,else:m,do:m,try:m,finally:m,return:C,break:C,continue:C,new:a("new"),delete:_,void:_,throw:_,debugger:a("debugger"),var:a("var"),const:a("var"),let:a("var"),function:a("function"),catch:a("catch"),for:a("for"),switch:a("switch"),case:a("case"),default:a("default"),in:O,typeof:O,instanceof:O,true:$,false:$,null:$,undefined:$,NaN:$,Infinity:$,this:a("this"),class:a("class"),super:a("atom"),yield:_,export:a("export"),import:a("import"),extends:_,await:_}}(),j=/[+\-*&%=<>!?|~^@]/,E=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function M(a){for(var c=!1,m,_=!1;(m=a.next())!=null;){if(!c){if(m=="/"&&!_)return;m=="["?_=!0:_&&m=="]"&&(_=!1)}c=!c&&m=="\\"}}var I,K;function D(a,c,m){return I=a,K=m,c}function R(a,c){var m=a.next();if(m=='"'||m=="'")return c.tokenize=ie(m),c.tokenize(a,c);if(m=="."&&a.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return D("number","number");if(m=="."&&a.match(".."))return D("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(m))return D(m);if(m=="="&&a.eat(">"))return D("=>","operator");if(m=="0"&&a.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return D("number","number");if(/\d/.test(m))return a.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),D("number","number");if(m=="/")return a.eat("*")?(c.tokenize=oe,oe(a,c)):a.eat("/")?(a.skipToEnd(),D("comment","comment")):Br(a,c,1)?(M(a),a.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),D("regexp","string-2")):(a.eat("="),D("operator","operator",a.current()));if(m=="`")return c.tokenize=W,W(a,c);if(m=="#"&&a.peek()=="!")return a.skipToEnd(),D("meta","meta");if(m=="#"&&a.eatWhile(d))return D("variable","property");if(m=="<"&&a.match("!--")||m=="-"&&a.match("->")&&!/\S/.test(a.string.slice(0,a.start)))return a.skipToEnd(),D("comment","comment");if(j.test(m))return(m!=">"||!c.lexical||c.lexical.type!=">")&&(a.eat("=")?(m=="!"||m=="=")&&a.eat("="):/[<>*+\-|&?]/.test(m)&&(a.eat(m),m==">"&&a.eat(m))),m=="?"&&a.eat(".")?D("."):D("operator","operator",a.current());if(d.test(m)){a.eatWhile(d);var _=a.current();if(c.lastType!="."){if(h.propertyIsEnumerable(_)){var C=h[_];return D(C.type,C.style,_)}if(_=="async"&&a.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return D("async","keyword",_)}return D("variable","variable",_)}}function ie(a){return function(c,m){var _=!1,C;if(o&&c.peek()=="@"&&c.match(E))return m.tokenize=R,D("jsonld-keyword","meta");for(;(C=c.next())!=null&&!(C==a&&!_);)_=!_&&C=="\\";return _||(m.tokenize=R),D("string","string")}}function oe(a,c){for(var m=!1,_;_=a.next();){if(_=="/"&&m){c.tokenize=R;break}m=_=="*"}return D("comment","comment")}function W(a,c){for(var m=!1,_;(_=a.next())!=null;){if(!m&&(_=="`"||_=="$"&&a.eat("{"))){c.tokenize=R;break}m=!m&&_=="\\"}return D("quasi","string-2",a.current())}var Ue="([{}])";function fe(a,c){c.fatArrowAt&&(c.fatArrowAt=null);var m=a.string.indexOf("=>",a.start);if(!(m<0)){if(u){var _=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(a.string.slice(a.start,m));_&&(m=_.index)}for(var C=0,O=!1,$=m-1;$>=0;--$){var te=a.string.charAt($),xe=Ue.indexOf(te);if(xe>=0&&xe<3){if(!C){++$;break}if(--C==0){te=="("&&(O=!0);break}}else if(xe>=3&&xe<6)++C;else if(d.test(te))O=!0;else if(/["'\/`]/.test(te))for(;;--$){if($==0)return;var Yi=a.string.charAt($-1);if(Yi==te&&a.string.charAt($-2)!="\\"){$--;break}}else if(O&&!C){++$;break}}O&&!C&&(c.fatArrowAt=$)}}var xn={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function Pt(a,c,m,_,C,O){this.indented=a,this.column=c,this.type=m,this.prev=C,this.info=O,_!=null&&(this.align=_)}function yn(a,c){if(!l)return!1;for(var m=a.localVars;m;m=m.next)if(m.name==c)return!0;for(var _=a.context;_;_=_.prev)for(var m=_.vars;m;m=m.next)if(m.name==c)return!0}function gt(a,c,m,_,C){var O=a.cc;for(A.state=a,A.stream=C,A.marked=null,A.cc=O,A.style=c,a.lexical.hasOwnProperty("align")||(a.lexical.align=!0);;){var $=O.length?O.pop():s?U:X;if($(m,_)){for(;O.length&&O[O.length-1].lex;)O.pop()();return A.marked?A.marked:m=="variable"&&yn(a,_)?"variable-2":c}}}var A={state:null,column:null,marked:null,cc:null};function k(){for(var a=arguments.length-1;a>=0;a--)A.cc.push(arguments[a])}function f(){return k.apply(null,arguments),!0}function jn(a,c){for(var m=c;m;m=m.next)if(m.name==a)return!0;return!1}function Qe(a){var c=A.state;if(A.marked="def",!!l){if(c.context){if(c.lexical.info=="var"&&c.context&&c.context.block){var m=vr(a,c.context);if(m!=null){c.context=m;return}}else if(!jn(a,c.localVars)){c.localVars=new ht(a,c.localVars);return}}t.globalVars&&!jn(a,c.globalVars)&&(c.globalVars=new ht(a,c.globalVars))}}function vr(a,c){if(c)if(c.block){var m=vr(a,c.prev);return m?m==c.prev?c:new mt(m,c.vars,!0):null}else return jn(a,c.vars)?c:new mt(c.prev,new ht(a,c.vars),!1);else return null}function Nt(a){return a=="public"||a=="private"||a=="protected"||a=="abstract"||a=="readonly"}function mt(a,c,m){this.prev=a,this.vars=c,this.block=m}function ht(a,c){this.name=a,this.next=c}var xi=new ht("this",new ht("arguments",null));function Xe(){A.state.context=new mt(A.state.context,A.state.localVars,!1),A.state.localVars=xi}function wn(){A.state.context=new mt(A.state.context,A.state.localVars,!0),A.state.localVars=null}function de(){A.state.localVars=A.state.context.vars,A.state.context=A.state.context.prev}de.lex=!0;function N(a,c){var m=function(){var _=A.state,C=_.indented;if(_.lexical.type=="stat")C=_.lexical.indented;else for(var O=_.lexical;O&&O.type==")"&&O.align;O=O.prev)C=O.indented;_.lexical=new Pt(C,A.stream.column(),a,null,_.lexical,c)};return m.lex=!0,m}function S(){var a=A.state;a.lexical.prev&&(a.lexical.type==")"&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}S.lex=!0;function B(a){function c(m){return m==a?f():a==";"||m=="}"||m==")"||m=="]"?k():f(c)}return c}function X(a,c){return a=="var"?f(N("vardef",c),kn,B(";"),S):a=="keyword a"?f(N("form"),vn,X,S):a=="keyword b"?f(N("form"),X,S):a=="keyword d"?A.stream.match(/^\s*$/,!1)?f():f(N("stat"),Ze,B(";"),S):a=="debugger"?f(B(";")):a=="{"?f(N("}"),wn,It,S,de):a==";"?f():a=="if"?(A.state.lexical.info=="else"&&A.state.cc[A.state.cc.length-1]==S&&A.state.cc.pop()(),f(N("form"),vn,X,S,Cr)):a=="function"?f(Be):a=="for"?f(N("form"),wn,Dr,X,de,S):a=="class"||u&&c=="interface"?(A.marked="keyword",f(N("form",a=="class"?a:c),Nr,S)):a=="variable"?u&&c=="declare"?(A.marked="keyword",f(X)):u&&(c=="module"||c=="enum"||c=="type")&&A.stream.match(/^\s*\w/,!1)?(A.marked="keyword",c=="enum"?f(Ir):c=="type"?f(Pr,B("operator"),H,B(";")):f(N("form"),ge,B("{"),N("}"),It,S,S)):u&&c=="namespace"?(A.marked="keyword",f(N("form"),U,X,S)):u&&c=="abstract"?(A.marked="keyword",f(X)):f(N("stat"),bi):a=="switch"?f(N("form"),vn,B("{"),N("}","switch"),wn,It,S,S,de):a=="case"?f(U,B(":")):a=="default"?f(B(":")):a=="catch"?f(N("form"),Xe,yi,X,S,de):a=="export"?f(N("stat"),qi,S):a=="import"?f(N("stat"),Li,S):a=="async"?f(X):c=="@"?f(U,X):k(N("stat"),U,B(";"),S)}function yi(a){if(a=="(")return f(Re,B(")"))}function U(a,c){return Tr(a,c,!1)}function ae(a,c){return Tr(a,c,!0)}function vn(a){return a!="("?k():f(N(")"),Ze,B(")"),S)}function Tr(a,c,m){if(A.state.fatArrowAt==A.stream.start){var _=m?Er:br;if(a=="(")return f(Xe,N(")"),Z(Re,")"),S,B("=>"),_,de);if(a=="variable")return k(Xe,ge,B("=>"),_,de)}var C=m?et:Ye;return xn.hasOwnProperty(a)?f(C):a=="function"?f(Be,C):a=="class"||u&&c=="interface"?(A.marked="keyword",f(N("form"),Oi,S)):a=="keyword c"||a=="async"?f(m?ae:U):a=="("?f(N(")"),Ze,B(")"),S,C):a=="operator"||a=="spread"?f(m?ae:U):a=="["?f(N("]"),$i,S,C):a=="{"?At(Ft,"}",null,C):a=="quasi"?k(Mt,C):a=="new"?f(wi(m)):f()}function Ze(a){return a.match(/[;\}\)\],]/)?k():k(U)}function Ye(a,c){return a==","?f(Ze):et(a,c,!1)}function et(a,c,m){var _=m==!1?Ye:et,C=m==!1?U:ae;if(a=="=>")return f(Xe,m?Er:br,de);if(a=="operator")return/\+\+|--/.test(c)||u&&c=="!"?f(_):u&&c=="<"&&A.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?f(N(">"),Z(H,">"),S,_):c=="?"?f(U,B(":"),C):f(C);if(a=="quasi")return k(Mt,_);if(a!=";"){if(a=="(")return At(ae,")","call",_);if(a==".")return f(Ei,_);if(a=="[")return f(N("]"),Ze,B("]"),S,_);if(u&&c=="as")return A.marked="keyword",f(H,_);if(a=="regexp")return A.state.lastType=A.marked="operator",A.stream.backUp(A.stream.pos-A.stream.start-1),f(C)}}function Mt(a,c){return a!="quasi"?k():c.slice(c.length-2)!="${"?f(Mt):f(Ze,ji)}function ji(a){if(a=="}")return A.marked="string-2",A.state.tokenize=W,f(Mt)}function br(a){return fe(A.stream,A.state),k(a=="{"?X:U)}function Er(a){return fe(A.stream,A.state),k(a=="{"?X:ae)}function wi(a){return function(c){return c=="."?f(a?Ti:vi):c=="variable"&&u?f(Ni,a?et:Ye):k(a?ae:U)}}function vi(a,c){if(c=="target")return A.marked="keyword",f(Ye)}function Ti(a,c){if(c=="target")return A.marked="keyword",f(et)}function bi(a){return a==":"?f(S,X):k(Ye,B(";"),S)}function Ei(a){if(a=="variable")return A.marked="property",f()}function Ft(a,c){if(a=="async")return A.marked="property",f(Ft);if(a=="variable"||A.style=="keyword"){if(A.marked="property",c=="get"||c=="set")return f(ki);var m;return u&&A.state.fatArrowAt==A.stream.start&&(m=A.stream.match(/^\s*:\s*/,!1))&&(A.state.fatArrowAt=A.stream.pos+m[0].length),f(Ge)}else{if(a=="number"||a=="string")return A.marked=o?"property":A.style+" property",f(Ge);if(a=="jsonld-keyword")return f(Ge);if(u&&Nt(c))return A.marked="keyword",f(Ft);if(a=="[")return f(U,tt,B("]"),Ge);if(a=="spread")return f(ae,Ge);if(c=="*")return A.marked="keyword",f(Ft);if(a==":")return k(Ge)}}function ki(a){return a!="variable"?k(Ge):(A.marked="property",f(Be))}function Ge(a){if(a==":")return f(ae);if(a=="(")return k(Be)}function Z(a,c,m){function _(C,O){if(m?m.indexOf(C)>-1:C==","){var $=A.state.lexical;return $.info=="call"&&($.pos=($.pos||0)+1),f(function(te,xe){return te==c||xe==c?k():k(a)},_)}return C==c||O==c?f():m&&m.indexOf(";")>-1?k(a):f(B(c))}return function(C,O){return C==c||O==c?f():k(a,_)}}function At(a,c,m){for(var _=3;_"),H);if(a=="quasi")return k(bn,be)}function Di(a){if(a=="=>")return f(H)}function Tn(a){return a.match(/[\}\)\]]/)?f():a==","||a==";"?f(Tn):k(_t,Tn)}function _t(a,c){if(a=="variable"||A.style=="keyword")return A.marked="property",f(_t);if(c=="?"||a=="number"||a=="string")return f(_t);if(a==":")return f(H);if(a=="[")return f(B("variable"),Si,B("]"),_t);if(a=="(")return k(rt,_t);if(!a.match(/[;\}\)\],]/))return f()}function bn(a,c){return a!="quasi"?k():c.slice(c.length-2)!="${"?f(bn):f(H,Pi)}function Pi(a){if(a=="}")return A.marked="string-2",A.state.tokenize=W,f(bn)}function En(a,c){return a=="variable"&&A.stream.match(/^\s*[?:]/,!1)||c=="?"?f(En):a==":"?f(H):a=="spread"?f(En):k(H)}function be(a,c){if(c=="<")return f(N(">"),Z(H,">"),S,be);if(c=="|"||a=="."||c=="&")return f(H);if(a=="[")return f(H,B("]"),be);if(c=="extends"||c=="implements")return A.marked="keyword",f(H);if(c=="?")return f(H,B(":"),H)}function Ni(a,c){if(c=="<")return f(N(">"),Z(H,">"),S,be)}function Bt(){return k(H,Mi)}function Mi(a,c){if(c=="=")return f(H)}function kn(a,c){return c=="enum"?(A.marked="keyword",f(Ir)):k(ge,tt,Ie,Ii)}function ge(a,c){if(u&&Nt(c))return A.marked="keyword",f(ge);if(a=="variable")return Qe(c),f();if(a=="spread")return f(ge);if(a=="[")return At(Fi,"]");if(a=="{")return At(Sr,"}")}function Sr(a,c){return a=="variable"&&!A.stream.match(/^\s*:/,!1)?(Qe(c),f(Ie)):(a=="variable"&&(A.marked="property"),a=="spread"?f(ge):a=="}"?k():a=="["?f(U,B("]"),B(":"),Sr):f(B(":"),ge,Ie))}function Fi(){return k(ge,Ie)}function Ie(a,c){if(c=="=")return f(ae)}function Ii(a){if(a==",")return f(kn)}function Cr(a,c){if(a=="keyword b"&&c=="else")return f(N("form","else"),X,S)}function Dr(a,c){if(c=="await")return f(Dr);if(a=="(")return f(N(")"),Bi,S)}function Bi(a){return a=="var"?f(kn,nt):a=="variable"?f(nt):k(nt)}function nt(a,c){return a==")"?f():a==";"?f(nt):c=="in"||c=="of"?(A.marked="keyword",f(U,nt)):k(U,nt)}function Be(a,c){if(c=="*")return A.marked="keyword",f(Be);if(a=="variable")return Qe(c),f(Be);if(a=="(")return f(Xe,N(")"),Z(Re,")"),S,kr,X,de);if(u&&c=="<")return f(N(">"),Z(Bt,">"),S,Be)}function rt(a,c){if(c=="*")return A.marked="keyword",f(rt);if(a=="variable")return Qe(c),f(rt);if(a=="(")return f(Xe,N(")"),Z(Re,")"),S,kr,de);if(u&&c=="<")return f(N(">"),Z(Bt,">"),S,rt)}function Pr(a,c){if(a=="keyword"||a=="variable")return A.marked="type",f(Pr);if(c=="<")return f(N(">"),Z(Bt,">"),S)}function Re(a,c){return c=="@"&&f(U,Re),a=="spread"?f(Re):u&&Nt(c)?(A.marked="keyword",f(Re)):u&&a=="this"?f(tt,Ie):k(ge,tt,Ie)}function Oi(a,c){return a=="variable"?Nr(a,c):Ot(a,c)}function Nr(a,c){if(a=="variable")return Qe(c),f(Ot)}function Ot(a,c){if(c=="<")return f(N(">"),Z(Bt,">"),S,Ot);if(c=="extends"||c=="implements"||u&&a==",")return c=="implements"&&(A.marked="keyword"),f(u?H:U,Ot);if(a=="{")return f(N("}"),Ee,S)}function Ee(a,c){if(a=="async"||a=="variable"&&(c=="static"||c=="get"||c=="set"||u&&Nt(c))&&A.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return A.marked="keyword",f(Ee);if(a=="variable"||A.style=="keyword")return A.marked="property",f(xt,Ee);if(a=="number"||a=="string")return f(xt,Ee);if(a=="[")return f(U,tt,B("]"),xt,Ee);if(c=="*")return A.marked="keyword",f(Ee);if(u&&a=="(")return k(rt,Ee);if(a==";"||a==",")return f(Ee);if(a=="}")return f();if(c=="@")return f(U,Ee)}function xt(a,c){if(c=="!"||c=="?")return f(xt);if(a==":")return f(H,Ie);if(c=="=")return f(ae);var m=A.state.lexical.prev,_=m&&m.info=="interface";return k(_?rt:Be)}function qi(a,c){return c=="*"?(A.marked="keyword",f(Sn,B(";"))):c=="default"?(A.marked="keyword",f(U,B(";"))):a=="{"?f(Z(Mr,"}"),Sn,B(";")):k(X)}function Mr(a,c){if(c=="as")return A.marked="keyword",f(B("variable"));if(a=="variable")return k(ae,Mr)}function Li(a){return a=="string"?f():a=="("?k(U):a=="."?k(Ye):k(qt,Fr,Sn)}function qt(a,c){return a=="{"?At(qt,"}"):(a=="variable"&&Qe(c),c=="*"&&(A.marked="keyword"),f(Hi))}function Fr(a){if(a==",")return f(qt,Fr)}function Hi(a,c){if(c=="as")return A.marked="keyword",f(qt)}function Sn(a,c){if(c=="from")return A.marked="keyword",f(U)}function $i(a){return a=="]"?f():k(Z(ae,"]"))}function Ir(){return k(N("form"),ge,B("{"),N("}"),Z(Ki,"}"),S,S)}function Ki(){return k(ge,Ie)}function Ui(a,c){return a.lastType=="operator"||a.lastType==","||j.test(c.charAt(0))||/[,.]/.test(c.charAt(0))}function Br(a,c,m){return c.tokenize==R&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(c.lastType)||c.lastType=="quasi"&&/\{\s*$/.test(a.string.slice(0,a.pos-(m||0)))}return{startState:function(a){var c={tokenize:R,lastType:"sof",cc:[],lexical:new Pt((a||0)-n,0,"block",!1),localVars:t.localVars,context:t.localVars&&new mt(null,null,!1),indented:a||0};return t.globalVars&&typeof t.globalVars=="object"&&(c.globalVars=t.globalVars),c},token:function(a,c){if(a.sol()&&(c.lexical.hasOwnProperty("align")||(c.lexical.align=!1),c.indented=a.indentation(),fe(a,c)),c.tokenize!=oe&&a.eatSpace())return null;var m=c.tokenize(a,c);return I=="comment"?m:(c.lastType=I=="operator"&&(K=="++"||K=="--")?"incdec":I,gt(c,m,I,K,a))},indent:function(a,c){if(a.tokenize==oe||a.tokenize==W)return r.Pass;if(a.tokenize!=R)return 0;var m=c&&c.charAt(0),_=a.lexical,C;if(!/^\s*else\b/.test(c))for(var O=a.cc.length-1;O>=0;--O){var $=a.cc[O];if($==S)_=_.prev;else if($!=Cr&&$!=de)break}for(;(_.type=="stat"||_.type=="form")&&(m=="}"||(C=a.cc[a.cc.length-1])&&(C==Ye||C==et)&&!/^[,\.=+\-*:?[\(]/.test(c));)_=_.prev;i&&_.type==")"&&_.prev.type=="stat"&&(_=_.prev);var te=_.type,xe=m==te;return te=="vardef"?_.indented+(a.lastType=="operator"||a.lastType==","?_.info.length+1:0):te=="form"&&m=="{"?_.indented:te=="form"?_.indented+n:te=="stat"?_.indented+(Ui(a,c)?i||n:0):_.info=="switch"&&!xe&&t.doubleIndentSwitch!=!1?_.indented+(/^(?:case|default)\b/.test(c)?n:2*n):_.align?_.column+(xe?0:1):_.indented+(xe?0:n)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:o,jsonMode:s,expressionAllowed:Br,skipExpression:function(a){gt(a,"atom","atom","true",new r.StringStream("",2,null))}}}),r.registerHelper("wordChars","javascript",/[\w$]/),r.defineMIME("text/javascript","javascript"),r.defineMIME("text/ecmascript","javascript"),r.defineMIME("application/javascript","javascript"),r.defineMIME("application/x-javascript","javascript"),r.defineMIME("application/ecmascript","javascript"),r.defineMIME("application/json",{name:"javascript",json:!0}),r.defineMIME("application/x-json",{name:"javascript",json:!0}),r.defineMIME("application/manifest+json",{name:"javascript",json:!0}),r.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),r.defineMIME("text/typescript",{name:"javascript",typescript:!0}),r.defineMIME("application/typescript",{name:"javascript",typescript:!0})});(function(r){r(window.CodeMirror)})(function(r){"use strict";r.customOverlayMode=function(e,t,n){return{startState:function(){return{base:r.startState(e),overlay:r.startState(t),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(i){return{base:r.copyState(e,i.base),overlay:r.copyState(t,i.overlay),basePos:i.basePos,baseCur:null,overlayPos:i.overlayPos,overlayCur:null}},token:function(i,o){return(i!=o.streamSeen||Math.min(o.basePos,o.overlayPos)0&&(this.activeEditorExtensions.pop(),this.plugin.app.workspace.updateOptions())}async jump_to_next_cursor_location(e=null,t=!1){t&&!this.plugin.settings.auto_jump_to_cursor||e&&He(this.plugin.app)!==e||await this.cursor_jumper.jump_to_next_cursor_location()}async registerCodeMirrorMode(){if(!this.desktopShouldHighlight()&&!this.mobileShouldHighlight())return;let e=window.CodeMirror.getMode({},"javascript");if(e.name==="null"){z(new T("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));return}let t=window.CodeMirror.customOverlayMode;if(t==null){z(new T("Couldn't find customOverlayMode, can't enable syntax highlighting."));return}window.CodeMirror.defineMode(_i,function(n){let i={startState:function(){return{...window.CodeMirror.startState(e),inCommand:!1,tag_class:"",freeLine:!1}},copyState:function(o){let s=window.CodeMirror.startState(e),l=o;return{...s,inCommand:l.inCommand,tag_class:l.tag_class,freeLine:l.freeLine}},blankLine:function(o){return o.inCommand?"line-background-templater-command-bg":null},token:function(o,s){let l=s;if(o.sol()&&l.inCommand&&(l.freeLine=!0),l.inCommand){let d="";if(o.match(/[-_]{0,1}%>/,!0)){l.inCommand=!1,l.freeLine=!1;let j=l.tag_class;return l.tag_class="",`line-${yr} ${xr} ${zo} ${j}`}let h=e.token&&e.token(o,l);return o.peek()==null&&l.freeLine&&(d+=" line-background-templater-command-bg"),l.freeLine||(d+=` line-${yr}`),`${d} ${xr} ${h}`}let u=o.match(/<%[-_]{0,1}\s*([*+]{0,1})/,!0);if(u){switch(u[1]){case"*":l.tag_class=Wo;break;default:l.tag_class=Jo;break}return l.inCommand=!0,`line-${yr} ${xr} ${Vo} ${l.tag_class}`}for(;o.next()!=null&&!o.match(/<%/,!1););return null}};return t(window.CodeMirror.getMode(n,"hypermd"),i)})}updateEditorIntellisenseSetting(e){this.autocomplete.updateAutocompleteIntellisenseSetting(e)}};var wr=class extends _n.Plugin{async onload(){await this.load_settings(),this.templater=new ft(this),await this.templater.setup(),this.editor_handler=new jr(this),await this.editor_handler.setup(),this.fuzzy_suggester=new Rn(this),this.event_handler=new An(this,this.templater,this.settings),await this.event_handler.setup(),this.command_handler=new fr(this),this.command_handler.setup(),(0,_n.addIcon)("templater-icon",ri),this.addRibbonIcon("templater-icon","Templater",()=>{this.fuzzy_suggester.insert_template()}).setAttribute("id","rb-templater-icon"),this.addSettingTab(new Gn(this)),this.app.workspace.onLayoutReady(async()=>{await this.templater.execute_startup_scripts()})}async onExternalSettingsChange(){await this.load_settings()}onunload(){this.templater.functions_generator.teardown()}async save_settings(){await this.saveData(this.settings),this.editor_handler.updateEditorIntellisenseSetting(this.settings.intellisense_render)}async load_settings(){this.settings=Object.assign({},ti,await this.loadData())}}; + +/* nosourcemap */ \ No newline at end of file diff --git a/liph/.obsidian/plugins/templater-obsidian/manifest.json b/liph/.obsidian/plugins/templater-obsidian/manifest.json new file mode 100755 index 0000000..0811ec6 --- /dev/null +++ b/liph/.obsidian/plugins/templater-obsidian/manifest.json @@ -0,0 +1,17 @@ +{ + "id": "templater-obsidian", + "name": "Templater", + "version": "2.20.3", + "description": "Create and use templates", + "minAppVersion": "1.12.2", + "author": "SilentVoid", + "authorUrl": "https://github.com/SilentVoid13", + "fundingUrl": { + "GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo", + "Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo", + "GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13", + "Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q" + }, + "helpUrl": "https://silentvoid13.github.io/Templater/", + "isDesktopOnly": false +} diff --git a/liph/.obsidian/plugins/templater-obsidian/styles.css b/liph/.obsidian/plugins/templater-obsidian/styles.css new file mode 100755 index 0000000..36aa4fa --- /dev/null +++ b/liph/.obsidian/plugins/templater-obsidian/styles.css @@ -0,0 +1,226 @@ +.templater_search { + width: calc(100% - 20px); +} + +.templater_div { + border-top: 1px solid var(--background-modifier-border); +} + +.templater_div > .setting-item { + border-top: none !important; + align-self: center; +} + +.templater_div > .setting-item > .setting-item-control { + justify-content: space-around; + padding: 0; + width: 100%; +} + +.templater_div + > .setting-item + > .setting-item-control + > .setting-editor-extra-setting-button { + align-self: center; +} + +.templater_donating { + margin: 10px; +} + +.templater_title { + margin: 0; + padding: 0; + margin-top: 5px; + text-align: center; +} + +.templater_template { + align-self: center; + margin-left: 5px; + margin-right: 5px; + width: 70%; +} + +.templater_cmd { + margin-left: 5px; + margin-right: 5px; + font-size: 14px; + width: 100%; +} + +.templater_div2 > .setting-item { + align-content: center; + justify-content: center; +} + +.templater-prompt-div, +.templater-multisuggester-div { + display: flex; +} + +.templater-prompt-form { + display: flex; + flex-grow: 1; +} + +.templater-prompt-input, +.templater-multisuggester-input { + flex-grow: 1; +} + +.templater-button-div { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 1rem; +} + +textarea.templater-prompt-input { + height: 10rem; +} + +textarea.templater-prompt-input:focus { + border-color: var(--interactive-accent); +} + +.templater-multisuggester-list { + margin: 1.5em 0; +} + +.cm-s-obsidian .templater-command-bg { + left: 0px; + right: 0px; + background-color: var(--background-primary-alt); +} + +.cm-s-obsidian .cm-templater-command { + font-size: 0.85em; + font-family: var(--font-monospace); + line-height: 1.3; +} + +.cm-s-obsidian .templater-inline .cm-templater-command { + background-color: var(--background-primary-alt); +} + +.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag { + font-weight: bold; +} + +.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag { + font-weight: bold; +} + +.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag { + color: var(--code-property, #008bff); +} + +.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag { + color: var(--code-function, #c0d700); +} + +.cm-s-obsidian .cm-templater-command.cm-keyword { + color: var(--code-keyword, #00a7aa); + font-weight: normal; +} + +.cm-s-obsidian .cm-templater-command.cm-atom { + color: var(--code-normal, #f39b35); +} + +.cm-s-obsidian .cm-templater-command.cm-value, +.cm-s-obsidian .cm-templater-command.cm-number, +.cm-s-obsidian .cm-templater-command.cm-type { + color: var(--code-value, #a06fca); +} + +.cm-s-obsidian .cm-templater-command.cm-def, +.cm-s-obsidian .cm-templater-command.cm-type.cm-def { + color: var(--code-normal, var(--text-normal)); +} + +.cm-s-obsidian .cm-templater-command.cm-property, +.cm-s-obsidian .cm-templater-command.cm-property.cm-def, +.cm-s-obsidian .cm-templater-command.cm-attribute { + color: var(--code-function, #98e342); +} + +.cm-s-obsidian .cm-templater-command.cm-variable, +.cm-s-obsidian .cm-templater-command.cm-variable-2, +.cm-s-obsidian .cm-templater-command.cm-variable-3, +.cm-s-obsidian .cm-templater-command.cm-meta { + color: var(--code-property, #d4d4d4); +} + +.cm-s-obsidian .cm-templater-command.cm-callee, +.cm-s-obsidian .cm-templater-command.cm-operator, +.cm-s-obsidian .cm-templater-command.cm-qualifier, +.cm-s-obsidian .cm-templater-command.cm-builtin { + color: var(--code-operator, #fc4384); +} + +.cm-s-obsidian .cm-templater-command.cm-tag { + color: var(--code-tag, #fc4384); +} + +.cm-s-obsidian .cm-templater-command.cm-comment, +.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag, +.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute { + color: var(--code-comment, #696d70); +} + +.cm-s-obsidian .cm-templater-command.cm-string, +.cm-s-obsidian .cm-templater-command.cm-string-2 { + color: var(--code-string, #e6db74); +} + +.cm-s-obsidian .cm-templater-command.cm-header, +.cm-s-obsidian .cm-templater-command.cm-hr { + color: var(--code-keyword, #da7dae); +} + +.cm-s-obsidian .cm-templater-command.cm-link { + color: var(--code-normal, #696d70); +} + +.cm-s-obsidian .cm-templater-command.cm-error { + border-bottom: 1px solid #c42412; +} + +.CodeMirror-hints { + position: absolute; + z-index: 10; + overflow: hidden; + list-style: none; + + margin: 0; + padding: 2px; + + -webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2); + box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2); + border-radius: 3px; + border: 1px solid silver; + + background: white; + font-size: 90%; + font-family: monospace; + + max-height: 20em; + overflow-y: auto; +} + +.CodeMirror-hint { + margin: 0; + padding: 0 4px; + border-radius: 2px; + white-space: pre; + color: black; + cursor: pointer; +} + +li.CodeMirror-hint-active { + background: #08f; + color: white; +} diff --git a/liph/.obsidian/templates.json b/liph/.obsidian/templates.json index 2932d0e..c73ceea 100755 --- a/liph/.obsidian/templates.json +++ b/liph/.obsidian/templates.json @@ -1,3 +1,3 @@ { - "folder": "Tasks/_templates" + "folder": "_templates" } \ No newline at end of file diff --git a/liph/.obsidian/types.json b/liph/.obsidian/types.json index 30ce69a..93a83a2 100755 --- a/liph/.obsidian/types.json +++ b/liph/.obsidian/types.json @@ -27,6 +27,27 @@ "TQ_show_urgency": "checkbox", "deadline": "date", "datum": "date", - "date": "date" + "date": "date", + "prep": "checkbox", + "dreamsign manifest": "checkbox", + "rating": "number", + "sleepscore": "number", + "bedtime": "number", + "sleeptime": "number", + "lucid": "checkbox", + "due date": "date", + "length": "text", + "year": "number", + "last": "date", + "cards": "multitext", + "genre": "multitext", + "started": "date", + "finished": "date", + "people": "text", + "duration min": "number", + "layouts": "multitext", + "maker": "multitext", + "type": "text", + "oracle list": "multitext" } } \ No newline at end of file diff --git a/liph/.obsidian/workspace-mobile.json b/liph/.obsidian/workspace-mobile.json index ec27257..1d13929 100644 --- a/liph/.obsidian/workspace-mobile.json +++ b/liph/.obsidian/workspace-mobile.json @@ -11,14 +11,10 @@ "id": "d02e3470886ead5b", "type": "leaf", "state": { - "type": "markdown", - "state": { - "file": "Notes/Daily/2026-05-07 Thu.md", - "mode": "source", - "source": false - }, + "type": "empty", + "state": {}, "icon": "lucide-file", - "title": "2026-05-07 Thu" + "title": "New tab" } } ] @@ -100,7 +96,7 @@ } } ], - "currentTab": 0 + "currentTab": 4 }, "right": { "id": "eac894ce96138de9", @@ -179,6 +175,7 @@ }, "left-ribbon": { "hiddenItems": { + "templater-obsidian:Templater": false, "switcher:Open quick switcher": false, "graph:Open graph view": false, "canvas:Create new canvas": false, @@ -189,14 +186,17 @@ "bases:Create new base": false, "obsidian-day-planner:Open Timeline": false, "obsidian-day-planner:Open Multi-Day View": false, - "omnisearch:Omnisearch": false + "omnisearch:Omnisearch": false, + "periodic-notes:Open today": false } }, "active": "d02e3470886ead5b", "lastOpenFiles": [ + "Tasks/_utilities/Deadlines.md", + "_templates/_bases", + "Dreams/dreamdiary/23.12.2025 Tue.md", "Notes/Daily/2026-05-06 Wed.md", "Notes/Daily/2026-05-07 Thu.md", - "Tasks/_utilities/Deadlines.md", "Tasks/Notes/Daily/2026/05/2026-05-07 Thu.md", "Notes/Weekly/2026-19.md", "Notes/Daily/2026-05-05 Tue.md", diff --git a/liph/.obsidian/workspace.json b/liph/.obsidian/workspace.json index 617114d..655691c 100755 --- a/liph/.obsidian/workspace.json +++ b/liph/.obsidian/workspace.json @@ -4,21 +4,21 @@ "type": "split", "children": [ { - "id": "6277d6140f31fca6", + "id": "bd0326f3c1ebea17", "type": "tabs", "children": [ { - "id": "754656eb002ff433", + "id": "d6c7bd37e0cabd8d", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Notes/Daily/2026-05-05 Tue.md", + "file": "_templates/Oracle template.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "2026-05-05 Tue" + "title": "Oracle template" } } ] @@ -33,7 +33,7 @@ { "id": "3ca7da6e15f17768", "type": "tabs", - "dimension": 69.22222222222223, + "dimension": 65.77777777777779, "children": [ { "id": "0f37b3758387bd06", @@ -70,7 +70,7 @@ { "id": "862acbceb871000a", "type": "tabs", - "dimension": 30.77777777777778, + "dimension": 34.22222222222222, "children": [ { "id": "b86e970d153440a0", @@ -103,7 +103,7 @@ "state": { "type": "backlink", "state": { - "file": "_utilities/Deadlines.md", + "file": "_templates/Oracle template.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -113,7 +113,7 @@ "unlinkedCollapsed": true }, "icon": "links-coming-in", - "title": "Backlinks for Deadlines" + "title": "Backlinks for Oracle template" } }, { @@ -122,12 +122,12 @@ "state": { "type": "outgoing-link", "state": { - "file": "Welcome.md", + "file": "_templates/Oracle template.md", "linksCollapsed": false, "unlinkedCollapsed": true }, "icon": "links-going-out", - "title": "Outgoing links from Welcome" + "title": "Outgoing links from Oracle template" } }, { @@ -195,7 +195,17 @@ } }, { - "id": "2c09f5e49a55e69b", + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", "type": "leaf", "state": { "type": "planner-timeline", @@ -204,8 +214,7 @@ "title": "Timeline" } } - ], - "currentTab": 5 + ] }, { "id": "0a23d5e86baba90a", @@ -240,47 +249,49 @@ "zk-prefixer:Create new unique note": false, "obsidian-day-planner:Open Timeline": false, "obsidian-day-planner:Open Multi-Day View": false, - "omnisearch:Omnisearch": false + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false } }, - "active": "754656eb002ff433", + "active": "d6c7bd37e0cabd8d", "lastOpenFiles": [ - "Notes/Daily/2026-05-07 Thu.md", + "Oracel/Maya/Untitled.md", + "_templates/Oracle template.md", + "Categories/Oracle.md", + "_templates/Oracle Cards template.md", + "References/Runenorakel.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "References/Queen of the moon.md", + "_templates/_bases/Oracle.base", + "Categories/Books.md", + "_templates/Books template.md", + "_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "_templates/_bases/Books.base", + "Categories/Albums.md", + "_templates/Board Game Template.md", + "References/Level 8.md", + "Categories/Board games.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Giten Tonkov.md", + "References/Feel to heal.md", + "References/Dab Dana.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/City Template.md", + "References/I Swear.md", + "References/Oxygen Advantage.md", "Tasks/_utilities/Deadlines.md", - "Notes/Daily/2026-05-05 Tue.md", - "Steuerfrist.md", - "Notes/Daily/2026/05/2026-05-07 Thu.md", - "Notes/Daily/2026/05", - "Notes/Daily/2026", - "Notes/Daily/2026-05-06 Wed.md", - "Notes/Daily/2026/05/2026-05-07.md", - "Tasks/Areas/Someday.md", - "Tasks/Areas/Personal.md", - "Tasks/_templates/Daily Notes.md", - "Tasks/Notes/Daily/2026/05/2026-05-08 Fri.md", - "Tasks/_utilities/Anytime.md", - "Tasks/_utilities/Inbox.md", - "Tasks/_utilities/Someday.md", - "Tasks/_utilities/Today.md", - "Tasks/_utilities/Upcomming.md", - "Notes/Weekly/2026-19.md", - "Tasks/_templates/Unique.md", - "Notes/Daily", - "Notes", - "Tasks/Untitled.md", - "Notes/Weekly/2026/05", - "Notes/Weekly/2026", - "Tasks/Weekly/2026/19/2026-19.md", - "Tasks/Weekly/2026/19", - "Tasks/1900245/4/20262026/2026/19/2026-19.md", - "Tasks/1900245/4/20262026/2026/19", - "Tasks/1900245/4/20262026/2026", - "Tasks/1900245/4/20262026", - "Tasks/2026-05-19.md", - "2026-W19.md", - "Tasks/_templates/Meetings.md", - "Tasks/_templates/Project.md", - "Tasks/2026/05/2026-05-05 Tue 1.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", "kapano/Attachments/out-of-control.jpg", "Pasted image 20260504234500.png" ] diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-160323-QI4N5GS.json b/liph/.obsidian/workspace.sync-conflict-20260508-160323-QI4N5GS.json new file mode 100755 index 0000000..1ad72ab --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-160323-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Giten Tonkov.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Giten Tonkov" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Giten Tonkov.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Giten Tonkov" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Giten Tonkov.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Giten Tonkov" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ] + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "References/Feel to heal.md", + "Giten Tonkov.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "References/Dab Dana.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Patrick McKeown.md", + "References/Oxygen Advantage.md", + "References/I Swear.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Categories/Meetings.md", + "Categories/Journal.md", + "Categories/Events.md", + "Categories/Companies.md", + "Categories/Clippings.md", + "Categories/Books.md", + "Categories/Board games.md", + "Categories/Albums.md", + "_templates/Meetings List Template.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Books.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Games.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-160353-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-160353-IBX6ESZ.json new file mode 100755 index 0000000..ad0c315 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-160353-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Giten Tonkov.md", + "References/Feel to heal.md", + "References/Untitled.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "Categories/Trips.md", + "Categories/Evergreen.md", + "Categories/Podcasts.md", + "Categories/Companies.md", + "Categories/Podcast episodes.md", + "Categories/Board games.md", + "Categories/Recipes.md", + "Categories/Movies_1.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-161814-QI4N5GS.json b/liph/.obsidian/workspace.sync-conflict-20260508-161814-QI4N5GS.json new file mode 100755 index 0000000..7083223 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-161814-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "References/Level 8.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Level 8" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "References/Level 8.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Level 8" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "References/Level 8.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Level 8" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ] + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/Board games.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "References/Feel to heal.md", + "References/Dab Dana.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/Books template.md", + "_templates/City Template.md", + "References/I Swear.md", + "References/Oxygen Advantage.md", + "Tasks/_utilities/Deadlines.md", + "Categories/Books.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "Dreams/dreamdiary/23.12.2025 Tue.md", + "Categories/Meetings.md", + "Categories/Journal.md", + "Categories/Events.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Books.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Games.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-162707-QI4N5GS.json b/liph/.obsidian/workspace.sync-conflict-20260508-162707-QI4N5GS.json new file mode 100755 index 0000000..c2358ea --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-162707-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "_templates/Oracle Cards templateo.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Oracle Cards templateo" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "_templates/Oracle Cards templateo.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Oracle Cards templateo" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "_templates/Oracle Cards templateo.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Oracle Cards templateo" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ] + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/Board Game Template.md", + "_templates/Oracle Cards templateo.md", + "_templates/Books template.md", + "_templates/Oracle template.md", + "References/Level 8.md", + "Categories/Board games.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Giten Tonkov.md", + "References/Feel to heal.md", + "References/Dab Dana.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/City Template.md", + "References/I Swear.md", + "References/Oxygen Advantage.md", + "Tasks/_utilities/Deadlines.md", + "Categories/Books.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "Notes/1-Daily/2026-05-06 Wed.md", + "Notes/1-Daily/2026-05-05 Tue.md", + "Dreams/dreamdiary/2025-12-26 Fry.md", + "Dreams/dreamdiary/2025-12-25 Thu.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Books.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "_templates/_bases/Evergreen.base", + "_templates/_bases/Games.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-163018-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-163018-IBX6ESZ.json new file mode 100755 index 0000000..2ac616d --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-163018-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "References/Untitled.md", + "_templates/Oracle Cards templateo.md", + "_templates/Board Game Template 1.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "Giten Tonkov.md", + "References/Feel to heal.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "Categories/Trips.md", + "Categories/Evergreen.md", + "Categories/Podcasts.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-164011-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-164011-IBX6ESZ.json new file mode 100755 index 0000000..dda0ab0 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-164011-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/Untitled.md", + "References/Runenorakel.md", + "References/Untitled.md", + "_templates/Oracle Cards templateo.md", + "_templates/Board Game Template 1.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "Giten Tonkov.md", + "References/Feel to heal.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "Categories/Trips.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-164021-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-164021-IBX6ESZ.json new file mode 100755 index 0000000..f62e975 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-164021-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "Categories/Oracle.md", + "Categories/Untitled.md", + "References/Runenorakel.md", + "References/Untitled.md", + "_templates/Oracle Cards templateo.md", + "_templates/Board Game Template 1.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "Giten Tonkov.md", + "References/Feel to heal.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "Categories/Shows.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "_templates/_bases/Everything.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-164058-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-164058-IBX6ESZ.json new file mode 100755 index 0000000..476a021 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-164058-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/_bases/Oracle.base", + "_templates/_bases/Untitled.base", + "Categories/Oracle.md", + "Categories/Untitled.md", + "References/Runenorakel.md", + "References/Untitled.md", + "_templates/Oracle Cards templateo.md", + "_templates/Board Game Template 1.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "Giten Tonkov.md", + "References/Feel to heal.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "_templates/_bases/Events.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-164121-IBX6ESZ.json b/liph/.obsidian/workspace.sync-conflict-20260508-164121-IBX6ESZ.json new file mode 100755 index 0000000..f1c5eac --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-164121-IBX6ESZ.json @@ -0,0 +1,295 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Notes/1-Daily/2026-05-08 Fri.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 2026-05-08 Fri" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Welcome.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Welcome" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ], + "currentTab": 5 + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "_templates/_bases/Oracle.base", + "_templates/_bases/Untitled.base", + "Categories/Oracle.md", + "Categories/Untitled.md", + "References/Runenorakel.md", + "References/Untitled.md", + "_templates/Oracle Cards templateo.md", + "_templates/Board Game Template 1.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Level 8.md", + "References/Giten Tonkov.md", + "Giten Tonkov.md", + "References/Feel to heal.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "References/Dab Dana.md", + "Dab Dana.md", + "Categories/People.md", + "Oracel/QueenOfTheMoon/2026-03-03.md", + "Oracel/Maya/Maya geburtshoroskop.md", + "Oracel/Maya/2026-03-12_Authentizität.md.md", + "Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md", + "Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md", + "Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md", + "Oracel/Runenorakel", + "Oracel/QueenOfTheMoon", + "Oracel/Moonology", + "Oracel/Maya", + "Oracel", + "Categories/Products.md", + "Categories/Albums.md", + "Categories/Meetings.md", + "Categories/Posts.md", + "_templates/_bases/Companies.base", + "_templates/_bases/Projects.base", + "_templates/_bases/Meetings.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/workspace.sync-conflict-20260508-164621-QI4N5GS.json b/liph/.obsidian/workspace.sync-conflict-20260508-164621-QI4N5GS.json new file mode 100755 index 0000000..6f97ed9 --- /dev/null +++ b/liph/.obsidian/workspace.sync-conflict-20260508-164621-QI4N5GS.json @@ -0,0 +1,298 @@ +{ + "main": { + "id": "84462b6b9cd3ea8b", + "type": "split", + "children": [ + { + "id": "bd0326f3c1ebea17", + "type": "tabs", + "children": [ + { + "id": "d6c7bd37e0cabd8d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "References/Queen of the moon.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Queen of the moon" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "9796fba830c3ebae", + "type": "split", + "children": [ + { + "id": "3ca7da6e15f17768", + "type": "tabs", + "dimension": 65.77777777777779, + "children": [ + { + "id": "0f37b3758387bd06", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "638964cf3aefd4bf", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + } + ] + }, + { + "id": "862acbceb871000a", + "type": "tabs", + "dimension": 34.22222222222222, + "children": [ + { + "id": "b86e970d153440a0", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 239.50852584838867 + }, + "right": { + "id": "95e70b4ef6391547", + "type": "split", + "children": [ + { + "id": "f057c3bdc0010276", + "type": "tabs", + "dimension": 61.99575371549893, + "children": [ + { + "id": "2ff4ff1909d173de", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "References/Queen of the moon.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Queen of the moon" + } + }, + { + "id": "8801f8914ed8cc2e", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "References/Queen of the moon.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Queen of the moon" + } + }, + { + "id": "ed24da26355cbc8f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b510a3ea3902962d", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "All properties" + } + }, + { + "id": "e51df6d95245cfc5", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Tasks/2026/05/2026-05-06 Wed.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of 2026-05-06 Wed" + } + }, + { + "id": "99079565bfb74530", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + }, + { + "id": "2f5a52b5c16fe3e8", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "0b9ca99a53174582", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "lucide-ghost", + "title": "planner-timeline" + } + }, + { + "id": "1ef899f50be446ed", + "type": "leaf", + "state": { + "type": "planner-timeline", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Timeline" + } + } + ] + }, + { + "id": "0a23d5e86baba90a", + "type": "tabs", + "dimension": 38.004246284501065, + "children": [ + { + "id": "1f798b916a42d866", + "type": "leaf", + "state": { + "type": "calendar", + "state": {}, + "icon": "calendar-with-checkmark", + "title": "Calendar" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "zk-prefixer:Create new unique note": false, + "obsidian-day-planner:Open Timeline": false, + "obsidian-day-planner:Open Multi-Day View": false, + "omnisearch:Omnisearch": false, + "templater-obsidian:Templater": false, + "periodic-notes:Open today": false + } + }, + "active": "d6c7bd37e0cabd8d", + "lastOpenFiles": [ + "_templates/Oracle Cards template.md", + "Categories/Oracle.md", + "References/Queen of the moon.md", + "_templates/_bases/Oracle.base", + "References/Runenorakel.md", + "Categories/Books.md", + "_templates/Books template.md", + "_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base", + "_templates/_bases/Books.base", + "Categories/Albums.md", + "_templates/Board Game Template.md", + "_templates/Oracle template.md", + "References/Level 8.md", + "Categories/Board games.md", + "References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md", + "References/Giten Tonkov.md", + "References/Feel to heal.md", + "References/Dab Dana.md", + "References/Patrick McKeown.md", + "References/Polyvagal Theorie in Psychotherapie.md", + "_templates/City Template.md", + "References/I Swear.md", + "References/Oxygen Advantage.md", + "Tasks/_utilities/Deadlines.md", + "Dreams/dreamdiary/07.12.2025 Sun.md", + "_templates/Author Template.md", + "Dab Dana.sync-conflict-20260508-155809-IBX6ESZ.md", + "Notes/1-Daily/2026-05-08 Fri.md", + "Notes/1-Daily/2026-05-07 Thu.md", + "_templates/_bases/Attachments.base", + "_templates/_bases/Movies.base", + "_templates/_bases/Board games.base", + "_templates/_bases/Recipes.base", + "_templates/_bases/Posts.base", + "_templates/_bases/Templates.base", + "_templates/_bases/Daily.base", + "kapano/Attachments/out-of-control.jpg", + "Pasted image 20260504234500.png" + ] +} \ No newline at end of file diff --git a/liph/.obsidian/zk-prefixer.json b/liph/.obsidian/zk-prefixer.json index 8847ef4..1e7a289 100755 --- a/liph/.obsidian/zk-prefixer.json +++ b/liph/.obsidian/zk-prefixer.json @@ -1,5 +1,5 @@ { "format": "YYYY-MM-DD", - "folder": "/", - "template": "Tasks/_templates/unique" + "folder": "", + "template": "_templates/unique" } \ No newline at end of file diff --git a/liph/Breathwork/Breat_notes.md b/liph/Breathwork/Breat_notes.md new file mode 100755 index 0000000..7756c36 --- /dev/null +++ b/liph/Breathwork/Breat_notes.md @@ -0,0 +1,8 @@ +--- +categories: + - breath +rating: +year: +--- +## Music +- julianna barwick - relaxing sound track for breathwork either beginning or end. diff --git a/liph/Tasks/Areas/Breath.md b/liph/Breathwork/Breath.md similarity index 67% rename from liph/Tasks/Areas/Breath.md rename to liph/Breathwork/Breath.md index 172cd9e..39983c8 100755 --- a/liph/Tasks/Areas/Breath.md +++ b/liph/Breathwork/Breath.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done tags include #breath diff --git a/liph/breathwork_facilitator/Hypnosis.md b/liph/Breathwork/Hypnosis.md similarity index 99% rename from liph/breathwork_facilitator/Hypnosis.md rename to liph/Breathwork/Hypnosis.md index 5e552fc..6efab0e 100755 --- a/liph/breathwork_facilitator/Hypnosis.md +++ b/liph/Breathwork/Hypnosis.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- q# **🧠 COMPREHENSIVE HYPNOTHERAPY CERTIFICATION COMPARISON** Let me do a deep analysis of ALL the major hypnotherapy options with the same detail. diff --git a/liph/Categories/Albums.md b/liph/Categories/Albums.md new file mode 100755 index 0000000..232a675 --- /dev/null +++ b/liph/Categories/Albums.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Albums.base]] \ No newline at end of file diff --git a/liph/Categories/Board games.md b/liph/Categories/Board games.md new file mode 100755 index 0000000..ece506d --- /dev/null +++ b/liph/Categories/Board games.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Board games.base]] \ No newline at end of file diff --git a/liph/Categories/Books.md b/liph/Categories/Books.md new file mode 100755 index 0000000..79f91e7 --- /dev/null +++ b/liph/Categories/Books.md @@ -0,0 +1,9 @@ +--- +tags: + - categories +--- + +![[Books.base#Books]] + + + diff --git a/liph/Categories/Clippings.md b/liph/Categories/Clippings.md new file mode 100755 index 0000000..381fb3a --- /dev/null +++ b/liph/Categories/Clippings.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Clippings.base]] \ No newline at end of file diff --git a/liph/Categories/Companies.md b/liph/Categories/Companies.md new file mode 100755 index 0000000..6aa029e --- /dev/null +++ b/liph/Categories/Companies.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Companies.base]] diff --git a/liph/Categories/Events.md b/liph/Categories/Events.md new file mode 100755 index 0000000..b5ef5c5 --- /dev/null +++ b/liph/Categories/Events.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Events.base]] \ No newline at end of file diff --git a/liph/Categories/Journal.md b/liph/Categories/Journal.md new file mode 100755 index 0000000..32de41a --- /dev/null +++ b/liph/Categories/Journal.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Journal.base]] diff --git a/liph/Categories/Meetings.md b/liph/Categories/Meetings.md new file mode 100755 index 0000000..ca2603f --- /dev/null +++ b/liph/Categories/Meetings.md @@ -0,0 +1,5 @@ +--- +tags: + - categories +--- +![[Meetings.base]] \ No newline at end of file diff --git a/liph/Categories/Movies.md b/liph/Categories/Movies.md new file mode 100755 index 0000000..30d71bf --- /dev/null +++ b/liph/Categories/Movies.md @@ -0,0 +1,14 @@ +--- +tags: + - categories +--- +## Favorites + +![[Movies.base#Favorites]] + + +## Last seen + +![[Movies.base#Last seen]] + + diff --git a/liph/Categories/Oracle.md b/liph/Categories/Oracle.md new file mode 100755 index 0000000..4c821a2 --- /dev/null +++ b/liph/Categories/Oracle.md @@ -0,0 +1,11 @@ +--- +tags: + - categories +oracle list: + - "[[Queen of the moon]]" + - "[[Runenorakel]]" + - "[[Moonology]]" + - "[[Maya]]" +--- + +![[Oracle.base]] \ No newline at end of file diff --git a/liph/Categories/People.md b/liph/Categories/People.md new file mode 100755 index 0000000..959f61e --- /dev/null +++ b/liph/Categories/People.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[People.base]] \ No newline at end of file diff --git a/liph/Categories/Places.md b/liph/Categories/Places.md new file mode 100755 index 0000000..5f171fe --- /dev/null +++ b/liph/Categories/Places.md @@ -0,0 +1,7 @@ +--- +tags: + - categories +--- + +![[Map.base]] +![[Places.base]] diff --git a/liph/Categories/Projects.md b/liph/Categories/Projects.md new file mode 100755 index 0000000..57c26de --- /dev/null +++ b/liph/Categories/Projects.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Projects.base]] diff --git a/liph/Categories/Shows.md b/liph/Categories/Shows.md new file mode 100755 index 0000000..6a47ed0 --- /dev/null +++ b/liph/Categories/Shows.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Shows.base]] diff --git a/liph/Categories/Trips.md b/liph/Categories/Trips.md new file mode 100755 index 0000000..bcd8ffc --- /dev/null +++ b/liph/Categories/Trips.md @@ -0,0 +1,6 @@ +--- +tags: + - categories +--- + +![[Trips.base]] diff --git a/liph/Dreams/dreamdiary/07.12.2025 Sun.md b/liph/Dreams/dreamdiary/07.12.2025 Sun.md new file mode 100755 index 0000000..dea25f5 --- /dev/null +++ b/liph/Dreams/dreamdiary/07.12.2025 Sun.md @@ -0,0 +1,19 @@ +--- +date: 2025-12-07 +rating: 7 +prep: false +dreamsign manifest: false +bedtime: +sleeptime: +sleepscore: 71 +name: Oxygen Advantage +author: +year: 2015 +topics: + - breathing +--- +## Diary +- irgendetwas von einem geisterhaus. +- [[sara hausamann]] wollte umbedigt mit mir eins trinken gehen. wir haben dann [[babsi]] gesehen wie sie zu spät und ohne schuhe in die arbeit geschlichen ist. +- ich hatte geträumt, dass die kreditkarten bilanz viel höher war als erwartet +## Dreamsigns diff --git a/liph/Dreams/dreamdiary/2025-12-25 Thu.md b/liph/Dreams/dreamdiary/2025-12-25 Thu.md new file mode 100755 index 0000000..9c8fae0 --- /dev/null +++ b/liph/Dreams/dreamdiary/2025-12-25 Thu.md @@ -0,0 +1,16 @@ +--- +date: 2025-12-25 +rating: +prep: false +dreamsign manifest: false +bedtime: +sleeptime: +sleepscore: 74 +year: +--- +## Diary +- ein sehr wirrer traum. +- ich habe zum fenster rausgeschaut und da hängte ein kind vom seil runter. das kind hat sich gehalten und baumelte im wind. es war ganz nass weil es geregnet hatte. direkt daneben war eine treppe die ins den ersten stock geführt hatte. +- ich war mit meinem bruder in einem laden am einkaufen. plötzlich hat der gesamte laden angefangent, sich längs um seine eigene achse zu drehen, wir sind dann möglichst schnell aus dem laden zu springen es schien jedoch keinen anderen zu interessierem. als wir draussen waren und ich zurück geschaut hatte viel mir auf das im laden alles ganz normal war. ich wollte dann einen stein, den ich gefunden habe auf das förderband legen, als briefbeschwerer. den stein ist redoch immer vom förderband gefallen. die verkäuferin hatte mir dann einen sfein aus ihrer kollektion gegen, mit dem. vermerk, dass ich ihr einen ganz speziellen stein zurück bringe. +- dann war noch ein traum den ich wie aus dee dritten person gesehen hatte. ich glaube es war wie eine fernsehserie, wo ich eine folge nach der anderen geschaut hatte. eine komplizin der hauotcharaktere wurde aus dem fenster geschubst und ist zu boden gefalle, darunter wahr so etwas wie eine hochschule. keiner der schüler hat in irgendeiner weise reagiert. es war noch so viel in diesem traum passiert aber ich kann ih nicht mehr zusammenfügen. +## Dreamsigns diff --git a/liph/Dreams/dreamdiary/2025-12-26 Fry.md b/liph/Dreams/dreamdiary/2025-12-26 Fry.md new file mode 100755 index 0000000..7305015 --- /dev/null +++ b/liph/Dreams/dreamdiary/2025-12-26 Fry.md @@ -0,0 +1,13 @@ +--- +date: 2025-12-26 +rating: +prep: false +dreamsign manifest: false +bedtime: +sleeptime: +sleepscore: +year: +--- +## Diary +- ich habe am [[wef]] gearbeitet. jedoch nicht unter chrigi sonder unter einem jungen unternehmer. ich habe gipsdecken geschliffen. maurus war auch im bauteam. ich glaube im traum wahr auch [[weihnachten]]. +## Dreamsigns diff --git a/liph/Dreams/dreamdiary/23.12.2025 Tue.md b/liph/Dreams/dreamdiary/23.12.2025 Tue.md new file mode 100755 index 0000000..b01aa44 --- /dev/null +++ b/liph/Dreams/dreamdiary/23.12.2025 Tue.md @@ -0,0 +1,13 @@ +--- +date: 2025-12-23 +rating: +prep: false +dreamsign manifest: false +bedtime: +sleeptime: +sleepscore: 78 +year: +--- +## Diary +- ich habe in einem pumptrack Wettbewerb gewonnen. und habe dann als preis eine neues bike gewonnen. ich wahr sehr dankbar denn mein altes bike war in einem sehr schlechten zustand. zusätzlich habe ich als bikeguide gearbeitet. +## Dreamsigns diff --git a/liph/Notes/Daily/2026-05-05 Tue.md b/liph/Notes/1-Daily/2026-05-05 Tue.md similarity index 76% rename from liph/Notes/Daily/2026-05-05 Tue.md rename to liph/Notes/1-Daily/2026-05-05 Tue.md index 9884804..413384d 100755 --- a/liph/Notes/Daily/2026-05-05 Tue.md +++ b/liph/Notes/1-Daily/2026-05-05 Tue.md @@ -1,5 +1,7 @@ --- -date: +date: 2026-05-05 +rating: +year: --- ## Completed @@ -13,7 +15,7 @@ done on 2026/05/2026-05-05 Tue - [x] 12:00 - 12:30 recherchieren wegen hiby r4 #personal 🔺 ✅ 2026-05-05 - [x] 12:30 - 13:00 Dauerauftrag Gemeinden einrichten #finance ✅ 2026-05-05 - [ ] 12:30 - 13:00 Gemeinde Steckborn schreiben wegen Dauerauftrag #finance ⏳ 2026-05-04 -- [ ] 17:00 - 17:30 Kletterfinken zurückschicken Bergzeit #personal ⏳ 2026-05-05 +- [x] 12:30 - 13:00 Kletterfinken zurückschicken Bergzeit #personal ⏳ 2026-05-08 ✅ 2026-05-08 ## Notes ## Dream diff --git a/liph/Notes/Daily/2026-05-06 Wed.md b/liph/Notes/1-Daily/2026-05-06 Wed.md old mode 100644 new mode 100755 similarity index 75% rename from liph/Notes/Daily/2026-05-06 Wed.md rename to liph/Notes/1-Daily/2026-05-06 Wed.md index 59082f6..d72be98 --- a/liph/Notes/Daily/2026-05-06 Wed.md +++ b/liph/Notes/1-Daily/2026-05-06 Wed.md @@ -1,7 +1,9 @@ --- -datum: 2026-05-05 +datum: 2026-05-06 tags: - daily +rating: +year: --- ## Completed diff --git a/liph/Notes/Daily/2026-05-07 Thu.md b/liph/Notes/1-Daily/2026-05-07 Thu.md old mode 100644 new mode 100755 similarity index 80% rename from liph/Notes/Daily/2026-05-07 Thu.md rename to liph/Notes/1-Daily/2026-05-07 Thu.md index 9359f4f..7e12ef5 --- a/liph/Notes/Daily/2026-05-07 Thu.md +++ b/liph/Notes/1-Daily/2026-05-07 Thu.md @@ -1,13 +1,16 @@ --- -datum: 2026-05-05 +datum: 2025-05-07 tags: - notes +rating: +year: --- ## Daily Tasks -- [ ] 12:00 - 12:30 hiby r5 an audioessence schicken ⏳ 2026-05-07 + +- [x] 12:30 - 13:00 hiby r5 an audioessence schicken ⏳ 2026-05-08 ✅ 2026-05-08 - [x] 12:30 - 13:00 k55 addressänderung per mail ⏳ 2026-05-07 ✅ 2026-05-07 - [x] 12:30 - 13:00 k55 einzahlen ⏳ 2026-05-07 ✅ 2026-05-07 -- [ ] monzoon einzahlen (dauerauftrag einrichten) ⏳ 2026-05-07 + ## Weekly Tasks ```tasks not done diff --git a/liph/Notes/1-Daily/2026-05-08 Fri.md b/liph/Notes/1-Daily/2026-05-08 Fri.md new file mode 100755 index 0000000..e9d7beb --- /dev/null +++ b/liph/Notes/1-Daily/2026-05-08 Fri.md @@ -0,0 +1,29 @@ +--- +datum: 2026-05-08 +tags: + - notes +rating: +year: +--- +## Daily Tasks + +- [ ] 11:30 - 12:00 regierapport schreiben KOWA ⏳ 2026-05-08 +- [ ] 11:30 - 12:00 stunden schreiben richi ⏳ 2026-05-08 +- [ ] 12:00 - 12:30 monzoon einzahlen (dauerauftrag einrichten) ⏳ 2026-05-08 +- [ ] 12:00 - 12:30 recherchieren wegen intrum rechnungen ⏳ 2026-05-08 +- [ ] 13:00 - 13:30 email adresse ändern SBB ⏳ 2026-05-08 +- [ ] + +## Weekly Tasks +```tasks +not done +happens this week +(scheduled before today) OR (scheduled after today) +``` +## Completed +```tasks +done on 2026-05-08 Fri +``` +## Notes + +## Dreams diff --git a/liph/Notes/2-Weekly/2026-19.md b/liph/Notes/2-Weekly/2026-19.md new file mode 100755 index 0000000..036ad0e --- /dev/null +++ b/liph/Notes/2-Weekly/2026-19.md @@ -0,0 +1,4 @@ +--- +rating: +year: +--- diff --git a/liph/Orakel/Maya/2026-03-12_Authentizität.md.md b/liph/Oracel/Maya/2026-03-12_Authentizität.md.md similarity index 99% rename from liph/Orakel/Maya/2026-03-12_Authentizität.md.md rename to liph/Oracel/Maya/2026-03-12_Authentizität.md.md index 4d8c40d..dfe4f8a 100755 --- a/liph/Orakel/Maya/2026-03-12_Authentizität.md.md +++ b/liph/Oracel/Maya/2026-03-12_Authentizität.md.md @@ -2,6 +2,8 @@ id: 2026-03-12_Authentizität.md aliases: [] tags: [] +rating: +year: --- Maya-Orakel Auswertung diff --git a/liph/Orakel/Maya/Maya geburtshoroskop.md b/liph/Oracel/Maya/Maya geburtshoroskop.md similarity index 98% rename from liph/Orakel/Maya/Maya geburtshoroskop.md rename to liph/Oracel/Maya/Maya geburtshoroskop.md index 5daf0b2..ea74f06 100755 --- a/liph/Orakel/Maya/Maya geburtshoroskop.md +++ b/liph/Oracel/Maya/Maya geburtshoroskop.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- Basierend auf den Tabellen und der Berechnungsmethode aus dem Maya-Kalender-System ergibt sich für dein Geburtsdatum (9. August 1983) folgende Berechnung : diff --git a/liph/Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md b/liph/Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md similarity index 99% rename from liph/Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md rename to liph/Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md index b58b897..b6a7306 100755 --- a/liph/Orakel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md +++ b/liph/Oracel/Moonology/Manifestations-Lesung_Vergangenheit_Gegenwart_Zukunft.md @@ -3,6 +3,8 @@ datum: 2026-04-17T11:25:38 ort: Zürich system: Moonology-Orakel der Manifestation legung: Vergangenheit, Gegenwart & Zukunft +rating: +year: --- # Moonology Manifestations-Lesung diff --git a/liph/Orakel/QueenOfTheMoon/2026-03-03.md b/liph/Oracel/QueenOfTheMoon/2026-03-03.md similarity index 99% rename from liph/Orakel/QueenOfTheMoon/2026-03-03.md rename to liph/Oracel/QueenOfTheMoon/2026-03-03.md index 763c455..fec4e43 100755 --- a/liph/Orakel/QueenOfTheMoon/2026-03-03.md +++ b/liph/Oracel/QueenOfTheMoon/2026-03-03.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- # Queen of the moon orakle diff --git a/liph/Orakel/2026-05-22-Runenlegung-Glueck.md b/liph/Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md similarity index 95% rename from liph/Orakel/2026-05-22-Runenlegung-Glueck.md rename to liph/Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md index 159537f..e92567a 100755 --- a/liph/Orakel/2026-05-22-Runenlegung-Glueck.md +++ b/liph/Oracel/Runenorakel/2026-05-22-Runenlegung-Glueck.md @@ -1,4 +1,9 @@ -# Runenorakel-Legung: Wie kann ich mein Leben glücklicher gestalten? +--- +rating: +year: +--- +[[Runenorakel]] +## Runenorakel-Legung: Wie kann ich mein Leben glücklicher gestalten? **Datum:** 22. Mai 2024 **Orakel-System:** Der Rat (Momentaufnahme) diff --git a/liph/Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md b/liph/Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md similarity index 97% rename from liph/Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md rename to liph/Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md index e2e3116..ffbeef8 100755 --- a/liph/Orakel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md +++ b/liph/Oracel/Runenorakel/Musterauswertung_Die_Waage_2025-03-06.md @@ -1,3 +1,9 @@ +--- +rating: +year: +--- +[[Runenorakel]] + Datum: 06.03.2025 Zeit: 10:45 Frage: Soll ich mich beruflich verändern und das neue Jobangebot annehmen? diff --git a/liph/Orakel/2026-03_06-Legung_Anette_Die_Maske.md b/liph/Orakel/2026-03_06-Legung_Anette_Die_Maske.md deleted file mode 100755 index 552c49e..0000000 --- a/liph/Orakel/2026-03_06-Legung_Anette_Die_Maske.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -tags: - - Runenorakel - - Legung - - DieMaske - - Anette -system: Gulliver Runenorakel -status: abgeschlossen ---- -# Gulliver Runenorakel: Die Maske - -**Datum:** 24. Mai 2024 -**Frage:** Wie ist meine Verbindung mit Anette wirklich... ist sie meine Seelenschwester? -**Legesystem:** Die Maske (gelesen von unten nach oben) - ---- - -### 1. Position (Unten): Was du zu wissen glaubst -**Rune:** Kauna (auf dem Kopf stehend) -**Deutung:** Diese Position beschreibt die aktuelle bewusste Wahrnehmung. Kauna umgekehrt deutet auf einen Mangel an Klarheit hin. Man glaubt vielleicht, dass das „vitalisierende Feuer“ zwischeneinander am Erlöschen ist oder dass wichtige Aspekte verborgen bleiben. Die Situation wird momentan als trüb wahrgenommen [2][3]. - -### 2. Position (Mitte): Warum die Wahrheit verborgen bleibt -**Rune:** Ingwaz -**Deutung:** Ingwaz steht für ein rohes schöpferisches Potenzial, kurz vor einer „Geburt“ oder Vollendung. Der Grund für die Unklarheit ist, dass sich die Verbindung noch in einer geschützten Reifephase befindet (wie ein Ei im Nest). Es erfordert Geduld, da die Energie erst noch manifestiert werden muss [2][3]. - -### 3. Position (Oben): Die Wahrheit -**Rune:** Ansuz (aufrecht) -**Deutung:** Dies ist die eigentliche Antwort. Ansuz steht für göttliche Inspiration und Weisheit. Dass sie aufrecht erscheint, markiert eine Verbindung von hoher Qualität. Es handelt sich um eine Botschaft aus Intuition und wertvollen Ratschlägen, geprägt durch schöpferische Sprache und geistigen Austausch [2][3]. - ---- - -### Zusammenfassung & Ratschlag -Die Wahrheit hinter der Frage ist weitaus positiver, als sie momentan wahrgenommen wird. Während an der Oberfläche Zweifel an der Klarheit bestehen (Kauna umgekehrt), zeigen die Runen eine tiefe, fast „göttliche“ Inspiration (Ansuz). - -**Ist sie eine Seelenschwester?** -Ansuz aufrecht spricht für eine Verbindung auf der Ebene der Intuition. Ingwaz mahnt jedoch, den Prozess nicht zu überstürzen. Die Verbindung ist ein Keim, der Schutz und Zeit braucht, um vollständig ins Leben zu treten [2]. - -**Ratschlag:** Vertraue der inneren Stimme. Lass die Ängste über mangelnde Klarheit los und gib der Beziehung den Raum zum Reifen [2]. - ---- -*Hinweis: Erstelle eine Skizze/Reflexionsmandala dieser Legung. Diese Frage sollte nun für mindestens einen Monat ruhen, um die Klarheit nicht zu trüben [3].* diff --git a/liph/Orakel/Maya/07.03.2026_Visionquest_überblick-lebenssituation.md b/liph/Orakel/Maya/07.03.2026_Visionquest_überblick-lebenssituation.md deleted file mode 100755 index 732c09d..0000000 --- a/liph/Orakel/Maya/07.03.2026_Visionquest_überblick-lebenssituation.md +++ /dev/null @@ -1,31 +0,0 @@ -Hier ist die vollständige, systematische Auswertung deiner Vision-Quest-Legung für deine Frage: „Wie gelingt es mir, einen heilsamen Überblick über meine Lebenssituation zu erlangen?“ - -Da du die Karte Die Welle gezogen hast, wurde die Zusatzkarte Sonne als ergänzende Kraft hinzugezogen, um das Thema tiefer zu beleuchten . -# Schritt 1: Auflistung der gezogenen Karten - - Ausgangssituation: Weißer Magier (IX) – Wurzelrasse: Weiß (Luft/Geist) . - Gaben & Medizin: Die Welle (Spezialkarte) & Zusatzkarte: Die (Zentral-) Sonne – Farbe: Gold/Licht . - Inspirierende Vision: Blauer Adler (MEN) – Wurzelrasse: Blau (Wasser/Transformation) . - Umsetzung (Action): Blaue Hand (MANIK) – Wurzelrasse: Blau (Wasser/Transformation) . - -Hinweis: Da keine spezifischen Töne (1–13) genannt wurden, stützt sich die Analyse auf die Archetypen und die Wurzelrassen, welche die energetische Ausrichtung und das Element vorgeben [1]. -# Schritt 2: Ausführliche Auswertung - -## 1. Ausgangssituation: Weißer Magier (IX) -Der Weiße Magier repräsentiert deine geistige Schöpferkraft und Herzensmacht . In deiner aktuellen Situation geht es darum, absolut authentisch und ehrlich zu dir selbst zu sein, da der Magier jegliche Manipulation oder Ego-Spiele entlarvt. Er ist der Weißen Wurzelrasse zugeordnet, was bedeutet, dass du dich im Element Luft bewegst: Hier ist „geistige Feinarbeit“ gefragt . Um den Überblick zu finden, musst du zuerst in deinem Inneren aufräumen, Illusionen loslassen und dich auf deine Herzensweisheit besinnen . Nur durch diese innere Reinigung und Strukturierung deines Geistes schaffst du die Basis, um überhaupt klar sehen zu können. Der Magier lehrt dich, dass deine Gedankenwelt deine Realität formt; achte also darauf, welche Schöpfungen du gerade in dein Leben rufst. - -## 2. Gaben & Medizin: Die Welle & Die (Zentral-) Sonne -Die Karte „Die Welle“ lädt dich dazu ein, deine Fragestellung nicht als flüchtigen Moment, sondern als Prozess über 13 Einheiten (Tage oder Phasen) zu betrachten . Die ergänzende Kraft der „Sonne“ fungiert hier als dein innerer Kompass und Symbol für deine Lebenskraft . Die Sonne repräsentiert deine Essenz und Identität; sie erinnert dich daran, dass dein göttlicher Kern – Hunab Ku – immer strahlt, auch wenn Wolken die Sicht verdecken . Deine Medizin ist die Rückbindung an diesen Ursprung (Reset). Die Sonne schenkt dir die Vitalität und das Bewusstsein, um aus der Ablehnung in die Annahme deiner Situation zu kommen . Nutze diese 13 Phasen der Welle, um dein inneres Licht wieder voll entfalten zu lassen und dich auf dein Herzstück zu konzentrieren. - -## 3. Inspirierende Vision: Blauer Adler (MEN) -Der Blaue Adler bietet die perfekte Antwort auf deine Suche nach Überblick: Er besitzt das „Adlerauge“, das es dir ermöglicht, über die Details des Alltags hinauszuheben und die Meta-Ebene einzunehmen . Er ist geduldig und zukunftsweisend. Als Vertreter der Blauen Wurzelrasse (Element Wasser) ist diese Vision eng mit deiner Intuition und inneren Transformation verknüpft . Deine Vision sollte es sein, dich selbst zu ermächtigen und deine wahre Größe zu erfahren, indem du einen strategischen Weitblick entwickelst. Der Adler lehrt dich, dass kein Traum zu groß ist . Er inspiriert dich dazu, die emotionale Ruhe zu bewahren, während du von oben betrachtest, was hinter dir liegt und welche neuen Möglichkeiten sich am Horizont für dich auftun. - -## 4. Umsetzung (Action): Blaue Hand (MANIK) -Die Blaue Hand ist der Archetyp für aktives Handeln, Heilung und Kreativität . Die Umsetzung deines neu gewonnenen Überblicks gelingt dir nicht durch bloßes Nachdenken, sondern durch tatkräftiges Tun. Auch sie gehört zur Blauen Wurzelrasse, was betont, dass deine Handlungen eine tiefe emotionale Heilwirkung entfalten müssen . Du bist aufgerufen, die Dinge „begreifbar“ zu machen, für dich selbst zu sorgen und vielleicht sogar Hilfe von außen anzunehmen, wo sie benötigt wird . Die Hand erinnert dich daran, dass du zwei Hände hast: eine zum Geben und eine zum Nehmen. In deiner aktuellen Situation bedeutet das, die Visionen des Adlers nun konkret in die Tat umzusetzen, indem du heilende Schritte einleitest und deine Kreativität nutzt, um deine Lebensbedingungen aktiv zu verändern. -# Schritt 3: Relationen & Kombinationen - -In dieser Legung zeigt sich eine kraftvolle Dynamik: Du beginnst mit der geistigen Klarheit des Weißen Magiers (Element Luft/Weiß), der den Raum für Veränderung öffnet . Die Sonne beleuchtet diesen Weg und gibt dir die notwendige Identität und Kraft, um durch die Welle der Zeit zu schreiten . Schließlich mündet der Prozess in die Blaue Energie (Wasser/Westen), die für die innere Transformation zuständig ist . Hier arbeiten der Adler (Vision) und die Hand (Tat) Hand in Hand: Der Adler schenkt dir das Wissen, was zu tun ist (den Überblick), und die Hand führt diese Heilung praktisch aus . Ohne das Handeln der Maskulin-Energie (Hand) bliebe der Adler eine bloße Tagträumerei; gemeinsam führen sie zu echter Lebensfülle. - -# Schritt 4: Zusammenfassung - -Dir gelingt ein heilsamer Überblick, wenn du zuerst deine geistige Authentizität prüfst (Weißer Magier) und dich auf dein strahlendes Herzstück besinnst (Sonne). Nimm dir die Zeit für einen 13-tägigen Prozess (Welle), in dem du lernst, die Perspektive deines höheren Selbst einzunehmen (Blauer Adler). Der entscheidende Schlüssel zur Heilung deiner Situation liegt jedoch darin, diese Erkenntnisse nicht nur im Kopf zu behalten, sondern sie durch konkretes, liebevolles Handeln und kreative Selbstfürsorge in dein Leben zu integrieren (Blaue Hand). \ No newline at end of file diff --git a/liph/References/Dab Dana.md b/liph/References/Dab Dana.md new file mode 100755 index 0000000..7006eba --- /dev/null +++ b/liph/References/Dab Dana.md @@ -0,0 +1,8 @@ +--- +categories: "[[People]]" +type: + - "[[Authors]]" +--- +## Books + +![[Books.base#Author]] \ No newline at end of file diff --git a/liph/References/Feel to heal.md b/liph/References/Feel to heal.md new file mode 100755 index 0000000..b56e835 --- /dev/null +++ b/liph/References/Feel to heal.md @@ -0,0 +1,26 @@ +--- +categories: + - "[[Books]]" +author: + - "[[Giten Tonkov]]" +cover: +genre: + - "[[nonfiction]]" +pages: +isbn: +isbn13: +year: 2019 +rating: +topics: [] +started: 2026-05-03 +finished: +medium: "[[epub]]" +tags: + - reading +--- +## Review + +## Summary + +## Key Takeaways +> 1. diff --git a/liph/References/Giten Tonkov.md b/liph/References/Giten Tonkov.md new file mode 100755 index 0000000..7006eba --- /dev/null +++ b/liph/References/Giten Tonkov.md @@ -0,0 +1,8 @@ +--- +categories: "[[People]]" +type: + - "[[Authors]]" +--- +## Books + +![[Books.base#Author]] \ No newline at end of file diff --git a/liph/References/I Swear.md b/liph/References/I Swear.md new file mode 100755 index 0000000..4edba27 --- /dev/null +++ b/liph/References/I Swear.md @@ -0,0 +1,19 @@ +--- +categories: + - "[[Movies]]" +cover: +genre: + - "[[Drama]]" + - "[[Comedy]]" + - "[[Truestory]]" +director: +cast: +runtime: "91" +rating: 9 +year: 2026 +date: 2026-04-30 +imdbId: +via: +plot: True story about a child with syndrome +last: 2026-04-30 +--- diff --git a/liph/References/Level 8.md b/liph/References/Level 8.md new file mode 100755 index 0000000..fed65a0 --- /dev/null +++ b/liph/References/Level 8.md @@ -0,0 +1,17 @@ +--- +categories: + - "[[Board games]]" +type: + - "[[Cardgame]]" +people: 2-6 +duration min: 40 +publisher: "[[Ravensburger]]" +year: +rating: 7 +last: 2026-05-02 +--- +## Rules +Play through the different levels and collect these cards. +Only come out once you have the desired collections. +## Extra Rules + diff --git a/liph/References/Oxygen Advantage.md b/liph/References/Oxygen Advantage.md new file mode 100755 index 0000000..10fcfc9 --- /dev/null +++ b/liph/References/Oxygen Advantage.md @@ -0,0 +1,43 @@ +--- +categories: + - "[[Books]]" +author: + - "[[Patrick McKeown]]" +cover: +genre: + - "[[self help]]" + - "[[health]]" + - "[[nonfiction]]" +pages: +isbn: +isbn13: +year: 2015 +rating: 8 +topics: + - "[[breathing]]" +started: 2026-03-02 +finished: 2026-03-30 +medium: "[[epub]]" +tags: + - finished + - reviewed +--- +## Review +Patrick McKeown’s The Oxygen Advantage presents a counterintuitive yet compelling thesis: most of us breathe too much, and this chronic overbreathing is silently undermining our health, fitness, and mental clarity. + +The book’s central argument revolves around the misunderstood role of carbon dioxide. Contrary to being a mere waste product, CO₂ is essential for releasing oxygen from red blood cells to the body’s tissues. When we overbreathe (often through the mouth), we expel too much CO₂, causing blood vessels to constrict and oxygen to bind tightly to hemoglobin instead of being delivered to the brain and muscles. McKeown therefore advocates "breathing light to breathe right" — gentle, quiet, diaphragmatic breaths through the nose to restore optimal CO₂ levels and improve oxygenation. + +To help readers gauge their breathing efficiency, McKeown introduces the Body Oxygen Level Test (BOLT), a simple measurement of how long one can comfortably hold their breath after an exhalation. A low BOLT score correlates with symptoms like nasal congestion, fatigue, poor sleep, and excessive breathlessness during exercise, while the goal is a score of around 40 seconds. The book then systematically outlines functional breathing techniques to raise this score, including taping the mouth during sleep to enforce nasal breathing, breath-hold exercises that simulate high-altitude training, and warm-up drills designed to create a beneficial "air hunger". + +For athletes and fitness enthusiasts, the program offers a distinct edge. McKeown explains how nasal-only breathing during training can improve VO₂ max, increase carbon dioxide tolerance, and even naturally stimulate red blood cell production, mimicking the effects of "live high, train low" altitude camps. Several elite sports stories are woven into the text as evidence, alongside anecdotes about ordinary people who have reversed asthma symptoms or shed weight without dietary changes. + +## Summary +In summary, The Oxygen Advantage is a life-changing read for those willing to sift through the repetition to get to the program itself. The information on nasal breathing and carbon dioxide tolerance is genuinely transformative and has demonstrably helped many people improve their asthma, sleep quality, and athletic performance. It is best approached as a manual to be practiced rather than a book to be read once; as one reviewer noted, it should be treated as a textbook where repetition aids learning. I would readily recommend it to anyone struggling with breathlessness, chronic fatigue, or suboptimal fitness, with the gentle advice to skip through the redundant stories and focus on the exercises—because in the end, learning to breathe less really can help you achieve more. + +## Key Takeaways +> 1. The "Breathe Less" Paradox +> The book’s most significant insight is that "overbreathing"—taking deep, heavy breaths through the mouth—doesn't actually get more oxygen to your cells. Paradoxically, it flushes out too much carbon dioxide (CO₂). Because CO₂ is the "key" that allows oxygen to release from your blood into your muscles and brain, breathing less and breathing more quietly actually leads to better oxygenation. +> 2. The BOLT Score is Your Fitness Compass +> McKeown introduces the Body Oxygen Level Test (BOLT) as a primary health metric. By measuring how long you can comfortably hold your breath after a normal exhale, you can determine your body’s tolerance to CO₂. A low BOLT score (typically under 20 seconds) indicates poor breathing habits and lower endurance; raising this score through practice is the primary goal of the program for improving health and stamina. +> 3. Simulated High-Altitude Training +> You don't need to live in the mountains to gain the benefits of altitude. By using specific breath-holding techniques during exercise (creating "air hunger"), you can mimic the effects of high-altitude training. This forces the body to increase its red blood cell count and improve its buffering capacity, allowing athletes to perform at a higher intensity with less breathlessness. diff --git a/liph/References/Patrick McKeown.md b/liph/References/Patrick McKeown.md new file mode 100755 index 0000000..7006eba --- /dev/null +++ b/liph/References/Patrick McKeown.md @@ -0,0 +1,8 @@ +--- +categories: "[[People]]" +type: + - "[[Authors]]" +--- +## Books + +![[Books.base#Author]] \ No newline at end of file diff --git a/liph/References/Polyvagal Theorie in Psychotherapie.md b/liph/References/Polyvagal Theorie in Psychotherapie.md new file mode 100755 index 0000000..185f462 --- /dev/null +++ b/liph/References/Polyvagal Theorie in Psychotherapie.md @@ -0,0 +1,27 @@ +--- +categories: + - "[[Books]]" +author: + - "[[Dab Dana]]" +cover: +genre: + - "[[nonfiction]]" + - "[[science]]" +pages: +isbn: +isbn13: +year: 2018 +rating: 7 +topics: [] +started: 2026-04-05 +finished: 2026-04-27 +medium: "[[epub]]" +tags: + - finished +--- +## Review + +## Summary + +## Key Takeaways +> 1. \ No newline at end of file diff --git a/liph/References/Queen of the moon.md b/liph/References/Queen of the moon.md new file mode 100755 index 0000000..bcd3ea2 --- /dev/null +++ b/liph/References/Queen of the moon.md @@ -0,0 +1,22 @@ +--- +categories: + - "[[oracle cards]]" +type: + - "[[Oracle]]" +cards: 44 +layouts: + - "[[Vollmondlegung]]" + - "[[Einzelkartenlegung]]" + - "[[Vier Element Legung]]" + - "[[Siebenkarten Legung]]" + - "[[Mondzyklus Legung]]" +author: + - "[[Stacey Demarco]]" +illustrator: "[[Kinga Britschgi]]" +year: 2025 +rating: 8 +last: 2026-02-02 +--- + + + diff --git a/liph/References/Runenorakel.md b/liph/References/Runenorakel.md new file mode 100755 index 0000000..24084cd --- /dev/null +++ b/liph/References/Runenorakel.md @@ -0,0 +1,21 @@ +--- +categories: + - "[[oracle cards]]" +type: + - "[[Oracle]]" +cards: 24 +layouts: + - "[[Der Rat]]" + - "[[Die Maske]]" + - "[[Die Waage]]" + - "[[Yggdrasil]]" +maker: + - "[[Gulliver l’Aventurière]]" + - "[[Lyra Ceoltóir]]" +year: 2022 +rating: 9 +last: 2026-01-21 +--- +## Special +Cards can be interpreted facing up and down + diff --git a/liph/References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md b/liph/References/Untitled.sync-conflict-20260508-161812-IBX6ESZ.md new file mode 100755 index 0000000..e69de29 diff --git a/liph/Tasks/Areas/Camper.md b/liph/Tasks/Areas/Camper.md deleted file mode 100755 index b955c87..0000000 --- a/liph/Tasks/Areas/Camper.md +++ /dev/null @@ -1,6 +0,0 @@ -## Completed - -```tasks -not done -tags include #camper -``` diff --git a/liph/Tasks/Areas/Personal.md b/liph/Tasks/Areas/Personal.md index ab64f30..1440d84 100755 --- a/liph/Tasks/Areas/Personal.md +++ b/liph/Tasks/Areas/Personal.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done tags include #personal diff --git a/liph/Tasks/Areas/Someday.md b/liph/Tasks/Areas/Someday.md index 2322715..0b90708 100755 --- a/liph/Tasks/Areas/Someday.md +++ b/liph/Tasks/Areas/Someday.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done tags include #someday diff --git a/liph/Tasks/Areas/Untitled.base b/liph/Tasks/Areas/Untitled.base deleted file mode 100755 index e0448a1..0000000 --- a/liph/Tasks/Areas/Untitled.base +++ /dev/null @@ -1,13 +0,0 @@ -views: - - type: table - name: Table - filters: - and: - - file.folder == "Tasks/_utilities/Deadlines" - order: - - file.name - - file.folder - - datum - sort: - - property: file.name - direction: ASC diff --git a/liph/Tasks/Areas/Work.md b/liph/Tasks/Areas/Work.md index 2276bc7..58517b6 100755 --- a/liph/Tasks/Areas/Work.md +++ b/liph/Tasks/Areas/Work.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done tags include #work diff --git a/liph/Tasks/Projects/Active/Camper.md b/liph/Tasks/Projects/Active/Camper.md index fed42cf..dc34d8a 100755 --- a/liph/Tasks/Projects/Active/Camper.md +++ b/liph/Tasks/Projects/Active/Camper.md @@ -1,5 +1,15 @@ --- deadline: +categories: + - "[[Projects template]]" +type: + - camper +org: [] +start: +url: +status: running +rating: +year: --- ## Tasks ### Kaufen @@ -31,7 +41,7 @@ deadline: - [ ] Schiebetüre höher aufhängen 🆔 6dbte2 - [ ] Schiebetüre kontakt flicken 🆔 vv78wx #### Elektronik -- [ ] Steckdose hinten rechts #camper +- [ ] Steckdose hinten rechts - [x] Radio wechseln ✅ 2026-05-05 - [ ] 🔼 Sicherung Landstrom - [x] ⏫ Steckdose Innenraum neu anhängen ✅ 2026-05-05 diff --git a/liph/Tasks/Projects/Active/Home.md b/liph/Tasks/Projects/Active/Home.md new file mode 100755 index 0000000..cbd4b90 --- /dev/null +++ b/liph/Tasks/Projects/Active/Home.md @@ -0,0 +1,23 @@ +--- +deadline: +categories: + - "[[Projects template]]" +type: + - home +org: [] +start: +url: +status: running +rating: +year: +--- +## Tasks +- [ ] Fliegennetz Balkon +- [ ] Fliegennetz Schlafzimmer +- [ ] Licht montieren Schlafzimmer +- [ ] Steckdose flicken +- [ ] Drucker installieren +- [ ] + +## Notes +- diff --git a/liph/Tasks/Projects/Holding Tank/Lenco.md b/liph/Tasks/Projects/Holding Tank/Lenco.md index 54f8d80..33a8315 100755 --- a/liph/Tasks/Projects/Holding Tank/Lenco.md +++ b/liph/Tasks/Projects/Holding Tank/Lenco.md @@ -1,10 +1,23 @@ --- deadline: +categories: + - "[[Projects template]]" +type: + - lenco +org: [] +start: +url: +status: waiting +rating: +year: --- ## Tasks - [ ] Plinth erstellen + ## Notes +- + diff --git a/liph/Tasks/_templates/Meetings.md b/liph/Tasks/_templates/Meetings.md deleted file mode 100755 index 04ffbce..0000000 --- a/liph/Tasks/_templates/Meetings.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -datum: -tags: - - meetings -location: -whom: ---- diff --git a/liph/Tasks/_templates/Project.md b/liph/Tasks/_templates/Project.md deleted file mode 100755 index 6c9629b..0000000 --- a/liph/Tasks/_templates/Project.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -deadline: -tags: - - project ---- -## Tasks - - -## Notes - - - - diff --git a/liph/Tasks/_utilities/Anytime.md b/liph/Tasks/_utilities/Anytime.md index 039c4e8..3e985a1 100755 --- a/liph/Tasks/_utilities/Anytime.md +++ b/liph/Tasks/_utilities/Anytime.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done no due date diff --git a/liph/Tasks/_utilities/Deadlines.md b/liph/Tasks/_utilities/Deadlines.md index 2ea9632..f5c1d46 100755 --- a/liph/Tasks/_utilities/Deadlines.md +++ b/liph/Tasks/_utilities/Deadlines.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- > [!warning] Overdue ```tasks not done diff --git a/liph/Tasks/_utilities/Inbox.md b/liph/Tasks/_utilities/Inbox.md index 6705fc1..0efd253 100755 --- a/liph/Tasks/_utilities/Inbox.md +++ b/liph/Tasks/_utilities/Inbox.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done diff --git a/liph/Tasks/Recurring.md b/liph/Tasks/_utilities/Recurring.md similarity index 95% rename from liph/Tasks/Recurring.md rename to liph/Tasks/_utilities/Recurring.md index c20de07..f7d6bcb 100755 --- a/liph/Tasks/Recurring.md +++ b/liph/Tasks/_utilities/Recurring.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ### Water plants --- - [x] 21:00 - 21:30 water plants 🔁 every month on the 15th and 30th ⏳ 2026-05-05 ✅ 2026-05-06 diff --git a/liph/Tasks/_utilities/Someday.md b/liph/Tasks/_utilities/Someday.md index ab3e6d3..67959e8 100755 --- a/liph/Tasks/_utilities/Someday.md +++ b/liph/Tasks/_utilities/Someday.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done tags include someday diff --git a/liph/Tasks/_utilities/Today.md b/liph/Tasks/_utilities/Today.md index f6a4e42..b819e97 100755 --- a/liph/Tasks/_utilities/Today.md +++ b/liph/Tasks/_utilities/Today.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done happens on or before today diff --git a/liph/Tasks/_utilities/Upcomming.md b/liph/Tasks/_utilities/Upcomming.md index 0cb4493..33aea73 100755 --- a/liph/Tasks/_utilities/Upcomming.md +++ b/liph/Tasks/_utilities/Upcomming.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ```tasks not done happens after today diff --git a/liph/_templates/Album Template.md b/liph/_templates/Album Template.md new file mode 100755 index 0000000..3946013 --- /dev/null +++ b/liph/_templates/Album Template.md @@ -0,0 +1,10 @@ +--- +categories: + - "[[Albums]]" +genre: [] +artist: "" +year: +created: <% tp.date.now() %> +rating: +--- + diff --git a/liph/_templates/Author Template.md b/liph/_templates/Author Template.md new file mode 100755 index 0000000..7006eba --- /dev/null +++ b/liph/_templates/Author Template.md @@ -0,0 +1,8 @@ +--- +categories: "[[People]]" +type: + - "[[Authors]]" +--- +## Books + +![[Books.base#Author]] \ No newline at end of file diff --git a/liph/_templates/Board Game Template.md b/liph/_templates/Board Game Template.md new file mode 100755 index 0000000..601cfdf --- /dev/null +++ b/liph/_templates/Board Game Template.md @@ -0,0 +1,16 @@ +--- +categories: + - "[[Board games]]" +type: +people: +duration min: +publisher: +maker: +year: +rating: +last: +--- +## Rules + +## Extra Rules + diff --git a/liph/_templates/Books template.md b/liph/_templates/Books template.md new file mode 100755 index 0000000..2be0df4 --- /dev/null +++ b/liph/_templates/Books template.md @@ -0,0 +1,22 @@ +--- +categories: + - "[[Books]]" +author: [] +cover: +genre: [] +pages: +isbn: +year: +rating: +topics: [] +started: +finished: +medium: "" +tags: +--- +## Review + +## Summary + +## Key Takeaways +> 1. diff --git a/liph/_templates/City Template.md b/liph/_templates/City Template.md new file mode 100755 index 0000000..9a7fcfa --- /dev/null +++ b/liph/_templates/City Template.md @@ -0,0 +1,22 @@ +--- +categories: + - "[[Places]]" +type: + - "[[Cities]]" +loc: +rating: +created: <% tp.date.now() %> +last: +coordinates: + - "35.021041" + - "135.7556075" +--- +## Trips + +![[Trips.base#Location]] + +## Places + +![[Map.base#Location]] + +![[Places.base#Location]] \ No newline at end of file diff --git a/liph/_templates/Clipping Template.md b/liph/_templates/Clipping Template.md new file mode 100755 index 0000000..549635b --- /dev/null +++ b/liph/_templates/Clipping Template.md @@ -0,0 +1,12 @@ +--- +categories: + - "[[Clippings]]" +tags: + - clippings +author: [] +url: "" +created: <% tp.date.now() %> +published: +topics: [] +--- + diff --git a/liph/_templates/Company Template.md b/liph/_templates/Company Template.md new file mode 100755 index 0000000..bbee728 --- /dev/null +++ b/liph/_templates/Company Template.md @@ -0,0 +1,7 @@ +--- +categories: + - "[[Companies]]" +type: [] +people: [] +url: +--- diff --git a/liph/Tasks/_templates/Daily Notes.md b/liph/_templates/Daily_notes template.md similarity index 68% rename from liph/Tasks/_templates/Daily Notes.md rename to liph/_templates/Daily_notes template.md index 1b4fb8f..5f940d1 100755 --- a/liph/Tasks/_templates/Daily Notes.md +++ b/liph/_templates/Daily_notes template.md @@ -1,7 +1,9 @@ --- -datum: 2026-05-05 -tags: - - notes +created: <% tp.file.creation_date("YYYY-MM-DD") %> +categories: + - daily_notes +rating: +year: --- ## Daily Tasks diff --git a/liph/_templates/Dreamdiary template.md b/liph/_templates/Dreamdiary template.md new file mode 100755 index 0000000..26004d6 --- /dev/null +++ b/liph/_templates/Dreamdiary template.md @@ -0,0 +1,17 @@ +--- +created: <% tp.file.creation_date("YYYY-MM-DD") %> +rating: +prep: false +dreamsign manifest: false +bedtime: +sleeptime: +sleepscore: +lucid: false +categories: + - dream +year: +--- +### Diary + + +### Dreamsigns diff --git a/liph/_templates/Event Template.md b/liph/_templates/Event Template.md new file mode 100755 index 0000000..874227e --- /dev/null +++ b/liph/_templates/Event Template.md @@ -0,0 +1,10 @@ +--- +categories: + - "[[Events]]" +tags: + - events +type: +start: +end: +loc: +--- diff --git a/liph/_templates/Journal Template.md b/liph/_templates/Journal Template.md new file mode 100755 index 0000000..0a24d28 --- /dev/null +++ b/liph/_templates/Journal Template.md @@ -0,0 +1,6 @@ +--- +created: {{date}} +tags: + - note + - journal +--- diff --git a/liph/_templates/Meditation Template.md b/liph/_templates/Meditation Template.md new file mode 100755 index 0000000..bf96439 --- /dev/null +++ b/liph/_templates/Meditation Template.md @@ -0,0 +1,12 @@ +--- +categories: + - "[[Meditations]]" +tags: + - note + - journal + - meditation +created: <% tp.date.now() %> +loc: [] +topics: [] +--- + diff --git a/liph/_templates/Meeting Template.md b/liph/_templates/Meeting Template.md new file mode 100755 index 0000000..4786f2c --- /dev/null +++ b/liph/_templates/Meeting Template.md @@ -0,0 +1,10 @@ +--- +categories: + - "[[Meetings]]" +type: [] +date: <% tp.date.now() %> +org: +loc: +people: [] +topics: [] +--- diff --git a/liph/_templates/Meeting Type Template.md b/liph/_templates/Meeting Type Template.md new file mode 100755 index 0000000..a6f2c56 --- /dev/null +++ b/liph/_templates/Meeting Type Template.md @@ -0,0 +1,5 @@ +--- +tags: + - meetings/type +--- +![[Meetings.base#Type]] \ No newline at end of file diff --git a/liph/_templates/Meetings List Template.md b/liph/_templates/Meetings List Template.md new file mode 100755 index 0000000..9cf11d5 --- /dev/null +++ b/liph/_templates/Meetings List Template.md @@ -0,0 +1 @@ +![[Meetings.base#Person]] \ No newline at end of file diff --git a/liph/_templates/Monthly Note Template.md b/liph/_templates/Monthly Note Template.md new file mode 100755 index 0000000..cffddbe --- /dev/null +++ b/liph/_templates/Monthly Note Template.md @@ -0,0 +1,11 @@ +--- +aliases: + - July 2023 +previous: "[[2023-06]]" +next: "[[2023-08]]" +tags: + - monthly +--- +## Entries + +![[Daily.base#Monthly]] diff --git a/liph/_templates/Movie Genre Template.md b/liph/_templates/Movie Genre Template.md new file mode 100755 index 0000000..48ff41b --- /dev/null +++ b/liph/_templates/Movie Genre Template.md @@ -0,0 +1,5 @@ +--- +tags: + - movies/genres +--- +![[Movies.base#Genre]] \ No newline at end of file diff --git a/liph/_templates/Movie Template.md b/liph/_templates/Movie Template.md new file mode 100755 index 0000000..bf9141f --- /dev/null +++ b/liph/_templates/Movie Template.md @@ -0,0 +1,15 @@ +--- +categories: + - "[[Movies]]" +cover: +genre: [] +director: +cast: [] +runtime: +rating: +year: +last: <% tp.date.now() %> +imdbId: +via: +--- + diff --git a/liph/_templates/Oracle Cards template.md b/liph/_templates/Oracle Cards template.md new file mode 100755 index 0000000..7859673 --- /dev/null +++ b/liph/_templates/Oracle Cards template.md @@ -0,0 +1,14 @@ +--- +categories: + - "[[oracle cards]]" +type: +cards: +layouts: +author: +illustrator: +year: +rating: +last: +--- + + diff --git a/liph/_templates/Oracle template.md b/liph/_templates/Oracle template.md new file mode 100755 index 0000000..209b7b8 --- /dev/null +++ b/liph/_templates/Oracle template.md @@ -0,0 +1,10 @@ +--- +created: <% tp.file.creation_date("YYYY-MM-DD") %> +categories: + - oracle +oracle list: +layouts: +question: +cards: +image: +--- diff --git a/liph/_templates/People Template.md b/liph/_templates/People Template.md new file mode 100755 index 0000000..6765d62 --- /dev/null +++ b/liph/_templates/People Template.md @@ -0,0 +1,10 @@ +--- +categories: + - "[[People]]" +birthday: +org: [] +created: <% tp.date.now() %> +--- +## Meetings + +![[Meetings.base#Person]] \ No newline at end of file diff --git a/liph/_templates/Places template.md b/liph/_templates/Places template.md new file mode 100755 index 0000000..5ecaae5 --- /dev/null +++ b/liph/_templates/Places template.md @@ -0,0 +1,10 @@ +--- +created: <% tp.file.creation_date("YYYY-MM-DD") %> +categories: + - "[[Places]]" +type: [] +loc: [] +rating: +last: +year: +--- diff --git a/liph/_templates/Project Template.md b/liph/_templates/Project Template.md new file mode 100755 index 0000000..2e6398e --- /dev/null +++ b/liph/_templates/Project Template.md @@ -0,0 +1,11 @@ +--- +categories: + - "[[Projects]]" +type: [] +org: [] +start: +year: +url: +status: +--- + diff --git a/liph/_templates/Projects template.md b/liph/_templates/Projects template.md new file mode 100755 index 0000000..aa0a34b --- /dev/null +++ b/liph/_templates/Projects template.md @@ -0,0 +1,17 @@ +--- +deadline: +categories: + - "[[Projects template]]" +type: [] +org: [] +start: +url: +status: +rating: +year: +--- +## Tasks +- [ ] + +## Notes +- diff --git a/liph/_templates/Quote Template.md b/liph/_templates/Quote Template.md new file mode 100755 index 0000000..24c2c40 --- /dev/null +++ b/liph/_templates/Quote Template.md @@ -0,0 +1,9 @@ +--- +categories: + - "[[Quotes]]" +attribution: [] +source: +created: <% tp.date.now() %> +topics: [] +via: +--- diff --git a/liph/_templates/Real Estate Template.md b/liph/_templates/Real Estate Template.md new file mode 100755 index 0000000..cd9fc0c --- /dev/null +++ b/liph/_templates/Real Estate Template.md @@ -0,0 +1,15 @@ +--- +categories: + - "[[Places]]" +type: [] +address: +rating: +created: <% tp.date.now() %> +url: +year: +price: +sqft: +lotsqft: +loc: [] +status: +--- diff --git a/liph/_templates/Restaurant Template.md b/liph/_templates/Restaurant Template.md new file mode 100755 index 0000000..64a05fd --- /dev/null +++ b/liph/_templates/Restaurant Template.md @@ -0,0 +1,10 @@ +--- +categories: + - "[[Places]]" +type: + - "[[Restaurants]]" +loc: +rating: +created: <% tp.date.now() %> +last: <% tp.date.now() %> +--- diff --git a/liph/_templates/Stock Trade Template.md b/liph/_templates/Stock Trade Template.md new file mode 100755 index 0000000..fe5f4b0 --- /dev/null +++ b/liph/_templates/Stock Trade Template.md @@ -0,0 +1,9 @@ +--- +date: <% tp.date.now() %> +trade: +tags: + - investment + - trade +price: +shares: +--- diff --git a/liph/_templates/Trip Template.md b/liph/_templates/Trip Template.md new file mode 100755 index 0000000..7b5e295 --- /dev/null +++ b/liph/_templates/Trip Template.md @@ -0,0 +1,8 @@ +--- +categories: + - "[[Trips]]" +start: +end: +loc: +--- + diff --git a/liph/_templates/Unique template.md b/liph/_templates/Unique template.md new file mode 100755 index 0000000..f897c00 --- /dev/null +++ b/liph/_templates/Unique template.md @@ -0,0 +1,7 @@ +--- +created: <% tp.file.creation_date("YYYY-MM-DD") %> +rating: +year: +--- +tags: + - note diff --git a/liph/_templates/_bases/Albums.base b/liph/_templates/_bases/Albums.base new file mode 100755 index 0000000..f16c39a --- /dev/null +++ b/liph/_templates/_bases/Albums.base @@ -0,0 +1,48 @@ +filters: + and: + - note.categories.contains(link("Albums")) + - '!file.name.contains("Template")' +properties: + file.name: + displayName: Album + note.year: + displayName: Year + note.artist: + displayName: Artist + note.created: + displayName: Added + note.rating: + displayName: Rating + note.genre: + displayName: Genre +views: + - type: table + name: Albums + order: + - file.name + - artist + - rating + - year + - genre + - type: table + name: Artist + filters: + and: + - list(artist).contains(this) + order: + - file.name + - artist + - rating + - year + - genre + - type: table + name: Genre + filters: + and: + - list(genre).contains(this) + order: + - file.name + - artist + - rating + - year + - genre diff --git a/liph/_templates/_bases/Attachments.base b/liph/_templates/_bases/Attachments.base new file mode 100755 index 0000000..26b023a --- /dev/null +++ b/liph/_templates/_bases/Attachments.base @@ -0,0 +1,32 @@ +formulas: + Embeds: if(file.embeds[0].containsAny("jpg","gif","webp","jpeg","avif"), file.embeds[0]) + Date: if(created,created,if(start,start)) + links: file. +views: + - type: cards + name: Images + filters: + and: + - this.file.hasLink(file) + - '!file.ext.containsAny("base", "canvas", "pdf", "md")' + - file == "" + order: [] + sort: + - property: file.name + direction: ASC + image: file.file + cardSize: 70 + - type: table + name: Images 2 + filters: + and: + - '!file.ext.containsAny("base", "canvas", "pdf", "md")' + order: + - file.name + - file.links + - formula.links + sort: + - property: file.name + direction: ASC + image: file.file + cardSize: 90 diff --git a/liph/_templates/_bases/Backlinks.base b/liph/_templates/_bases/Backlinks.base new file mode 100755 index 0000000..e06e8ad --- /dev/null +++ b/liph/_templates/_bases/Backlinks.base @@ -0,0 +1,31 @@ +filters: + and: + - file.hasLink(this) +formulas: + Path: file.path +properties: + note.created: + displayName: Date + file.name: + displayName: Title + note.categories: + displayName: Categories +views: + - type: table + name: Backlinks + order: + - file.name + - categories + - created + sort: + - property: created + direction: DESC + - type: table + name: Recent entries + order: + - file.name + - created + sort: + - property: created + direction: DESC + limit: 20 diff --git a/liph/_templates/_bases/Board games.base b/liph/_templates/_bases/Board games.base new file mode 100755 index 0000000..941b323 --- /dev/null +++ b/liph/_templates/_bases/Board games.base @@ -0,0 +1,18 @@ +filters: + and: + - categories.contains(link("Board games")) + - '!file.name.contains("Template")' +properties: + file.name: + displayName: Game + note.rating: + displayName: Rating + note.last: + displayName: Last +views: + - type: table + name: Table + order: + - file.name + - rating + - last diff --git a/liph/_templates/_bases/Books.base b/liph/_templates/_bases/Books.base new file mode 100755 index 0000000..66d2d88 --- /dev/null +++ b/liph/_templates/_bases/Books.base @@ -0,0 +1,57 @@ +filters: + and: + - categories.contains(link("Books")) + - '!file.name.contains("Template")' +properties: + note.author: + displayName: Author + file.name: + displayName: Name + note.year: + displayName: Year + note.genre: + displayName: Genre +views: + - type: table + name: Books + order: + - file.name + - author + - length + - year + - rating + - topics + - last + sort: + - property: file.name + direction: ASC + - type: table + name: Top rated + order: + - file.name + - rating + - last + sort: + - property: last + direction: DESC + - type: table + name: Author + filters: + and: + - list(author).contains(this) + order: + - file.name + - year + - genre + sort: + - property: genre + direction: ASC + - type: table + name: Genre + filters: + and: + - list(genre).contains(this) + order: + - file.name + - year + - genre diff --git a/liph/_templates/_bases/Clippings.base b/liph/_templates/_bases/Clippings.base new file mode 100755 index 0000000..d7b5155 --- /dev/null +++ b/liph/_templates/_bases/Clippings.base @@ -0,0 +1,39 @@ +filters: + and: + - note.categories.contains(link("Clippings")) + - '!file.name.contains("Template")' +properties: + file.name: + displayName: Title + note.author: + displayName: Author + note.created: + displayName: Clipped + note.published: + displayName: Published +views: + - type: table + name: Clippings + order: + - file.name + - author + - created + - published + sort: + - property: created + direction: DESC + columnSize: + note.author: 140 + - type: table + name: Author + filters: + and: + - list(author).contains(this) + order: + - file.name + - author + - created + - published + sort: + - property: clipped + direction: DESC diff --git a/liph/_templates/_bases/Daily.base b/liph/_templates/_bases/Daily.base new file mode 100755 index 0000000..abf1b95 --- /dev/null +++ b/liph/_templates/_bases/Daily.base @@ -0,0 +1,69 @@ +filters: + or: + - file.name.contains(this.file.name) + - created.toString().contains(this.file.name) + - start.toString().contains(this.file.name) + - end.toString().contains(this.file.name) + - file.links.contains(this.file) +properties: + file.name: + displayName: Entry + note.categories: + displayName: Categories + note.created: + displayName: Created + note.tags: + displayName: Tags +views: + - type: table + name: Daily notes + filters: + and: + - '!tags.contains("daily")' + - '!tags.contains("monthly")' + order: + - file.name + - created + - categories + - tags + sort: + - property: tags + direction: ASC + - property: created + direction: DESC + - property: file.name + direction: ASC + - property: categories + direction: ASC + columnSize: + file.name: 287 + note.created: 128 + note.categories: 119 + - type: table + name: Monthly + filters: + and: + - '!tags.contains("daily")' + - '!tags.contains("monthly")' + order: + - file.name + - categories + - created + sort: + - property: file.name + direction: ASC + - property: created + direction: DESC + - type: table + name: Yearly + filters: + and: + - '!tags.contains("daily")' + - '!tags.contains("monthly")' + order: + - file.name + - categories + - created + sort: + - property: created + direction: ASC diff --git a/liph/_templates/_bases/Events.base b/liph/_templates/_bases/Events.base new file mode 100755 index 0000000..693e682 --- /dev/null +++ b/liph/_templates/_bases/Events.base @@ -0,0 +1,46 @@ +filters: + and: + - categories.contains(link("Events")) + - '!file.name.contains("Template")' +properties: + note.end: + displayName: End + note.loc: + displayName: Location + note.start: + displayName: Start +views: + - type: table + name: Events + order: + - file.name + - start + - end + - loc + sort: + - property: start + direction: DESC + - type: table + name: Type + filters: + and: + - list(type).contains(this) + order: + - file.name + - start + - loc + sort: + - property: start + direction: DESC + - type: table + name: Location + filters: + and: + - list(loc).contains(this) + order: + - file.name + - start + - loc + sort: + - property: start + direction: DESC diff --git a/liph/_templates/_bases/Everything.base b/liph/_templates/_bases/Everything.base new file mode 100755 index 0000000..c72a5d4 --- /dev/null +++ b/liph/_templates/_bases/Everything.base @@ -0,0 +1,36 @@ +formulas: + Embeds: if(file.embeds[0].containsAny("jpg","gif","webp","jpeg","avif"), file.embeds[0]) + Date: if(created,created,if(start,start)) +views: + - type: table + name: All files + order: + - file.name + - file.mtime + - file.path + - file.ext + - type: cards + name: Images + filters: + and: + - '!file.ext.containsAny("base", "canvas", "pdf", "md")' + order: + - file.name + sort: + - property: file.name + direction: ASC + image: file.file + - type: cards + name: Images in posts + filters: + and: + - "!formula.Embeds.isEmpty()" + order: + - file.name + - formula.Date + sort: + - property: file.name + direction: ASC + - property: date + direction: DESC + image: formula.Embeds diff --git a/liph/_templates/_bases/Genre.base b/liph/_templates/_bases/Genre.base new file mode 100755 index 0000000..6560d4a --- /dev/null +++ b/liph/_templates/_bases/Genre.base @@ -0,0 +1,24 @@ +filters: + and: + - list(genre).contains(this) +display: + note.rating: Rating + note.categories: Category + note.last: Last + file.name: Name +views: + - type: table + name: Genre + order: + - file.name + - rating + - categories + - last + sort: + - column: note.rating + direction: DESC + - column: note.last + direction: DESC + columnSize: + file.name: 248 + note.categories: 170 diff --git a/liph/_templates/_bases/Journal.base b/liph/_templates/_bases/Journal.base new file mode 100755 index 0000000..62ff59b --- /dev/null +++ b/liph/_templates/_bases/Journal.base @@ -0,0 +1,15 @@ +filters: + and: + - '!file.name.contains("Template")' + - tags.contains("journal") +properties: + file.name: + displayName: Entry + note.created: + displayName: Created +views: + - type: table + name: Table + order: + - file.name + - created diff --git a/liph/_templates/_bases/Meetings.base b/liph/_templates/_bases/Meetings.base new file mode 100755 index 0000000..4aca3d6 --- /dev/null +++ b/liph/_templates/_bases/Meetings.base @@ -0,0 +1,52 @@ +filters: + and: + - categories.contains(link("Meetings")) + - '!file.name.contains("Template")' +properties: + note.date: + displayName: Date + note.people: + displayName: People + note.type: + displayName: Type + file.name: + displayName: Meeting + note.org: + displayName: Org +views: + - type: table + name: Meetings + order: + - file.name + - date + - type + - people + sort: + - property: date + direction: ASC + - type: table + name: Person + filters: + and: + - list(people).contains(this) + order: + - file.name + - date + - type + - people + sort: + - property: date + direction: ASC + - type: table + name: Type + filters: + and: + - list(type).contains(this) + order: + - file.name + - date + - people + - org + sort: + - property: date + direction: DESC diff --git a/liph/_templates/_bases/Movies.base b/liph/_templates/_bases/Movies.base new file mode 100755 index 0000000..55ea4c8 --- /dev/null +++ b/liph/_templates/_bases/Movies.base @@ -0,0 +1,239 @@ +filters: + and: + - categories.contains(link("Movies")) + - '!file.name.contains("Template")' +properties: + file.name: + displayName: Name + note.last: + displayName: Last + note.rating: + displayName: Rating + note.year: + displayName: Year + note.director: + displayName: Director + note.genre: + displayName: Genre + note.cast: + displayName: Cast + note.scoreImdb: + displayName: IMDB + note.scoreRT: + displayName: RT + note.runtime: + displayName: Runtime + note.watchlist: + displayName: Added +views: + - type: table + name: All + order: + - file.name + - year + - director + - rating + - last + - plot + - genre + sort: + - property: director + direction: ASC + - property: plot + direction: ASC + columnSize: + file.name: 193 + note.director: 205 + note.plot: 233 + note.genre: 261 + - type: table + name: To-watch + filters: + and: + - last.isEmpty() + - rating.isEmpty() + order: + - file.name + - year + - scoreImdb + - scoreRT + - runtime + - watchlist + - director + - genre + sort: + - property: scoreImdb + direction: DESC + - property: scoreRT + direction: DESC + - property: watchlist + direction: DESC + - property: file.name + direction: ASC + - property: director + direction: ASC + columnSize: + file.name: 283 + note.year: 68 + note.scoreRT: 67 + note.director: 238 + - type: table + name: Favorites + filters: + and: + - note.rating > 6 + order: + - file.name + - director + - year + - genre + - rating + - ratingImdb + - last + sort: + - property: file.name + direction: ASC + - property: ratingImdb + direction: DESC + columnSize: + file.name: 283 + note.director: 221 + note.year: 68 + - type: table + name: Last seen + filters: + and: + - "!last.isEmpty()" + order: + - file.name + - year + - rating + - last + - director + - genre + sort: + - property: last + direction: DESC + - property: file.name + direction: ASC + limit: 20 + - type: table + name: Actor + filters: + and: + - list(cast).contains(this) + order: + - file.name + - year + - director + - genre + - ratingImdb + sort: + - property: ratingImdb + direction: DESC + - type: table + name: Genre + filters: + and: + - list(genre).contains(this) + order: + - file.name + - rating + - year + - director + - last + - genre + sort: + - property: last + direction: DESC + - property: genre + direction: ASC + - property: rating + direction: DESC + columnSize: + note.director: 166 + note.last: 115 + - type: table + name: Director + filters: + and: + - list(director).contains(this) + order: + - file.name + - year + - rating + - last + - cast + - genre + sort: + - property: last + direction: DESC + - property: rating + direction: ASC + - property: year + direction: DESC + columnSize: + file.name: 186 + note.year: 79 + note.rating: 96 + note.genre: 243 + - type: table + name: Soundtrack + filters: + and: + - list(music).contains(this) + order: + - file.name + - year + - rating + - last + - cast + - genre + sort: + - property: last + direction: DESC + - property: rating + direction: ASC + - property: year + direction: DESC + columnSize: + file.name: 186 + note.year: 79 + note.rating: 96 + note.genre: 243 + - type: table + name: Theater + filters: + and: + - file.links.contains(this.file) + order: + - file.name + - rating + - last + - year + - scoreImdb + - runtime + - scoreRT + - watchlist + - director + - genre + sort: + - property: last + direction: DESC + - property: scoreImdb + direction: DESC + - property: scoreRT + direction: DESC + - property: watchlist + direction: DESC + - property: file.name + direction: ASC + - property: director + direction: ASC + columnSize: + file.name: 283 + note.rating: 94 + note.year: 68 + note.scoreRT: 67 + note.director: 238 + note.genre: 243 diff --git a/liph/_templates/_bases/Oracle.base b/liph/_templates/_bases/Oracle.base new file mode 100755 index 0000000..28a92de --- /dev/null +++ b/liph/_templates/_bases/Oracle.base @@ -0,0 +1,16 @@ +filters: + and: + - categories.contains(link("oracle cards")) + - '!file.name.contains("template")' +views: + - type: table + name: Table + order: + - file.name + - type + - cards + - last + - rating + - year + columnSize: + note.cards: 100 diff --git a/liph/_templates/_bases/People.base b/liph/_templates/_bases/People.base new file mode 100755 index 0000000..b50fdd3 --- /dev/null +++ b/liph/_templates/_bases/People.base @@ -0,0 +1,33 @@ +filters: + and: + - '!file.name.contains("Template")' + - note.tags.contains("people") +formulas: + Age: (now() - birthday).years.floor() +properties: + file.name: + displayName: Name + note.tags: + displayName: Tags + note.birthday: + displayName: Birthday +views: + - type: table + name: All people + order: + - file.name + - tags + - birthday + - formula.Age + sort: + - property: file.name + direction: ASC + - property: tags + direction: ASC + - property: formula.Age + direction: DESC + - property: birthday + direction: DESC + columnSize: + note.tags: 209 + formula.Age: 99 diff --git a/liph/_templates/_bases/Places.base b/liph/_templates/_bases/Places.base new file mode 100755 index 0000000..aab2dd0 --- /dev/null +++ b/liph/_templates/_bases/Places.base @@ -0,0 +1,115 @@ +filters: + and: + - note.categories.contains(link("Places")) + - '!file.name.contains("Template")' +properties: + note.type: + displayName: Type + note.rating: + displayName: Rating + note.loc: + displayName: Location + file.name: + displayName: Name + note.last: + displayName: Last +views: + - type: table + name: Places + order: + - file.name + - rating + - loc + - type + - last + sort: + - property: last + direction: DESC + - property: type + direction: ASC + - property: loc + direction: ASC + columnSize: + file.name: 162 + note.loc: 145 + note.type: 199 + - type: table + name: Location + filters: + and: + - list(loc).contains(this) + order: + - file.name + - type + - rating + - last + sort: + - property: rating + direction: DESC + - property: last + direction: DESC + - property: loc + direction: ASC + columnSize: + note.type: 197 + - type: table + name: Type + filters: + and: + - list(type).contains(this) + order: + - file.name + - type + - rating + - last + sort: + - property: last + direction: DESC + - property: loc + direction: ASC + columnSize: + note.type: 153 + - type: table + name: Related + filters: + and: + - file.hasLink(this) + - '!tags.containsAny("cities", "countries")' + order: + - file.name + - rating + - loc + - type + - last + sort: + - property: rating + direction: DESC + - property: last + direction: DESC + - property: type + direction: ASC + - property: loc + direction: ASC + columnSize: + file.name: 162 + note.rating: 65 + note.loc: 145 + note.type: 199 + - type: table + name: Metatype + filters: + or: + - list(type).contains(this) + - list(type).containsAny(this.topics) + order: + - file.name + - type + - rating + - last + sort: + - property: last + direction: DESC + - property: loc + direction: ASC + columnSize: + note.type: 153 diff --git a/liph/_templates/_bases/Projects.base b/liph/_templates/_bases/Projects.base new file mode 100755 index 0000000..eef5899 --- /dev/null +++ b/liph/_templates/_bases/Projects.base @@ -0,0 +1,32 @@ +filters: + and: + - '!file.name.contains("Template")' + - note.categories.contains(link("Projects")) +properties: + note.status: + displayName: Status + note.url: + displayName: URL + file.name: + displayName: Name + note.type: + displayName: Type + note.year: + displayName: Year +views: + - type: table + name: Table + order: + - file.name + - type + - year + - status + - url + sort: + - column: note.status + direction: ASC + - column: note.year + direction: DESC + columnSize: + file.name: 209 + note.type: 199 diff --git a/liph/_templates/_bases/Ratings.base b/liph/_templates/_bases/Ratings.base new file mode 100755 index 0000000..9658a1b --- /dev/null +++ b/liph/_templates/_bases/Ratings.base @@ -0,0 +1,39 @@ +filters: + and: + - rating > 0 +properties: + note.rating: + displayName: Rating + note.last: + displayName: Last + file.name: + displayName: Name + note.categories: + displayName: Categories +views: + - type: table + name: Ratings + order: + - file.name + - rating + - last + - categories + sort: + - property: last + direction: DESC + columnSize: + file.name: 238 + - type: table + name: Recent + filters: + and: + - last > now() - "60d" + order: + - file.name + - rating + - last + - categories + sort: + - property: last + direction: DESC + limit: 100 diff --git a/liph/_templates/_bases/Related.base b/liph/_templates/_bases/Related.base new file mode 100755 index 0000000..c48af0a --- /dev/null +++ b/liph/_templates/_bases/Related.base @@ -0,0 +1,40 @@ +filters: + and: + - file.path != this.file.path +formulas: + LinksOverlap: formula.Related.length + Related: list(this.file.links).filter(list(file.links).containsAny(value)).unique() + BacklinksCount: file.backlinks.length + TagsOverlap: list(this.file.tags).filter(list(file.tags).containsAny(value)).unique().length +properties: + formula.LinksOverlap: + displayName: Links overlap + file.name: + displayName: Name + formula.BacklinksCount: + displayName: Backlinks count + formula.TagsOverlap: + displayName: Tags overlap + formula.Related: + displayName: Links +views: + - type: table + name: Related + filters: + or: + - formula.LinksOverlap > 2 + - file.hasLink(this) + - this.file.hasLink(file) + order: + - file.name + - formula.Related + sort: + - property: formula.LinksOverlap + direction: DESC + - property: formula.TagsOverlap + direction: DESC + - property: formula.BacklinksCount + direction: DESC + limit: 20 + columnSize: + file.name: 220 diff --git a/liph/_templates/_bases/Templates.base b/liph/_templates/_bases/Templates.base new file mode 100755 index 0000000..cdf9f87 --- /dev/null +++ b/liph/_templates/_bases/Templates.base @@ -0,0 +1,12 @@ +filters: + and: + - file.path.contains("/Templates") +views: + - type: table + name: Table + order: + - file.name + - categories + sort: [] + columnSize: + file.name: 234 diff --git a/liph/_templates/_bases/Trips.base b/liph/_templates/_bases/Trips.base new file mode 100755 index 0000000..16ed3cc --- /dev/null +++ b/liph/_templates/_bases/Trips.base @@ -0,0 +1,43 @@ +filters: + and: + - note.categories.contains(link("Trips")) + - '!file.name.contains("Template")' +properties: + note.start: + displayName: Start + note.end: + displayName: End + file.name: + displayName: Trip + note.loc: + displayName: Location +views: + - type: table + name: All trips + filters: + and: + - '!file.name.contains("Planning")' + order: + - file.name + - start + - end + - loc + sort: + - property: end + direction: DESC + columnSize: + file.name: 255 + - type: table + name: Location + filters: + and: + - list(loc).contains(this) + order: + - file.name + - start + - end + sort: + - property: start + direction: DESC + - property: file.name + direction: DESC diff --git a/liph/_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base b/liph/_templates/_bases/Untitled.sync-conflict-20260508-164111-IBX6ESZ.base new file mode 100755 index 0000000..e69de29 diff --git a/liph/breathwork_facilitator/Breathwork.md b/liph/breathwork_facilitator/Breathwork.md deleted file mode 100755 index 2d5485c..0000000 --- a/liph/breathwork_facilitator/Breathwork.md +++ /dev/null @@ -1 +0,0 @@ -- julianna barwick - relaxing sound track for breathwork either beginning or end. \ No newline at end of file diff --git a/liph/lucid dreaming/dreamdiary.md b/liph/lucid dreaming/dreamdiary.md deleted file mode 100755 index f3977c4..0000000 --- a/liph/lucid dreaming/dreamdiary.md +++ /dev/null @@ -1,20 +0,0 @@ -[[lucid dream manifest]] -# 07.12.2025 -- irgendetwas von einem geisterhaus. -- sara hausamann wollte umbedigt mit mir eins trinken gehen. wir haben dann babsi gesehen wie sie zu spät und ohne schuhe in die arbeit geschlichen ist. -- ich hatte geträumt, dass die kreditkarten bilanz viel höher war als erwartet -sleep score war 71 - -# 23.12.25 -- ich habe in einem pumptrack Wettbewerb gewonnen. und habe dann als preis eine neues bike gewonnen. ich wahr sehr dankbar denn mein altes bike war in einem sehr schlechten zustand. zusätzlich habe ich als bikeguide gearbeitet. -sleepscror wae 78 - -# 25.12.25 -- ein sehr wirrer traum. -- ich habe zum fenster rausgeschaut und da hängte ein kind vom seil runter. das kind hat sich gehalten und baumelte im wind. es war ganz nass weil es geregnet hatte. direkt daneben war eine treppe die ins den ersten stock geführt hatte. -- ich war mit meinem bruden i. einem laden am einkaufen. plötzlich hat der gesamte laden angefangent, sich längs um seine eigene achse wir sind dann mglichst schnell aus dem. laden zu springen es schien jedoch keinen anderen zu interessierem. als wir draussen waren und ich zurück geschaut hatte viel mir auf das im laden alles ganz normal war. ich wollte dann einen stein, den ich gefunden habe auf das förderband legen, als briefbeschwere. den stein ist redoch immer vom förderband gefallen. die verkäuferin hatte mir dann einen sfein aus ihrer kollektion gegen, mit dem. vermerk, dass ich ihr einen ganz speziellen stein zurück bringe. -- dann war noch ein traum den ich wie aus dee dritten person gesehen hatte. ich glaube es war wie eine fernsehserie, wo ich eine folge nach der anderen geschaut hatte. eine komplizin der hauotcharaktere wurde aus dem fenster geschubst und ist zu boden gefalle, darunter wahr so etwas wie eine hochschule. keiner der schüler hat in irgendeiner weise reagiert. es war noch so viel in diesem traum passiert aber ich kann ih nicht mehr zusammenfügen. -schlafscore war 74 einschlaf meditation hatte ich nicht gemacht. - -# 26.12.25 -- ich habe am wef gearbeitet. jedoch nicht unter chrigi sonder unter einem jungen unternehmer. ich habe gipsdecken geschliffen. maurus war auch im bauteam. ich glaube im traum wahr auch weihnachten. \ No newline at end of file diff --git a/liph/lucid dreaming/lucid dream manifest.md b/liph/lucid dreaming/lucid dream manifest.md deleted file mode 100755 index 4a36a8d..0000000 --- a/liph/lucid dreaming/lucid dream manifest.md +++ /dev/null @@ -1,8 +0,0 @@ -in my next lucid dream i want to meet my inner guidance. - -i want to ask about future changes, what paths to take, to have another child, what is my purpose, and how to reach the financial freedom i deserve. i will give it love and thank for all the wisdom and guidance im receiving. - -i will wake up fully connected with myself and my purpose. Knowing exactly what my next steps will be. - -# San kalpa: -## inner guidance come to me \ No newline at end of file diff --git a/liph/programming/Mailserver setup/Complete Mail Server Setup Guide.md b/liph/programming/Complete Mail Server Setup Guide.md similarity index 99% rename from liph/programming/Mailserver setup/Complete Mail Server Setup Guide.md rename to liph/programming/Complete Mail Server Setup Guide.md index 7809f57..66e7d9e 100755 --- a/liph/programming/Mailserver setup/Complete Mail Server Setup Guide.md +++ b/liph/programming/Complete Mail Server Setup Guide.md @@ -2,6 +2,8 @@ id: Complete Mail Server Setup Guide aliases: [] tags: [] +rating: +year: --- # Complete Mail Server Setup Guide - Arch Linux Edition diff --git a/liph/programming/Mailserver setup/DNS Records Quick Reference for Cloudflare.md b/liph/programming/DNS Records Quick Reference for Cloudflare.md similarity index 99% rename from liph/programming/Mailserver setup/DNS Records Quick Reference for Cloudflare.md rename to liph/programming/DNS Records Quick Reference for Cloudflare.md index 4a65d85..17c2dac 100755 --- a/liph/programming/Mailserver setup/DNS Records Quick Reference for Cloudflare.md +++ b/liph/programming/DNS Records Quick Reference for Cloudflare.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- **Replace `example.com` with your actual domain** **Replace `YOUR_PUBLIC_IP` with your mail server's public IP address** diff --git a/liph/other/Docker Containers.md b/liph/programming/Docker/Docker Containers.md similarity index 92% rename from liph/other/Docker Containers.md rename to liph/programming/Docker/Docker Containers.md index 20d234c..2428ba1 100755 --- a/liph/other/Docker Containers.md +++ b/liph/programming/Docker/Docker Containers.md @@ -2,6 +2,8 @@ id: Docker Containers aliases: [] tags: [] +rating: +year: --- Komodo (similar to portainer) kasm (again) diff --git a/liph/other/Docker_stack.md b/liph/programming/Docker/Docker_stack.md similarity index 98% rename from liph/other/Docker_stack.md rename to liph/programming/Docker/Docker_stack.md index ba32814..52645a4 100755 --- a/liph/other/Docker_stack.md +++ b/liph/programming/Docker/Docker_stack.md @@ -2,6 +2,8 @@ id: Docker_stack aliases: [] tags: [] +rating: +year: --- [browser] diff --git a/liph/programming/Mailserver setup/Etc Mail-server.md b/liph/programming/Etc Mail-server.md similarity index 99% rename from liph/programming/Mailserver setup/Etc Mail-server.md rename to liph/programming/Etc Mail-server.md index 6f7a835..8643eb0 100755 --- a/liph/programming/Mailserver setup/Etc Mail-server.md +++ b/liph/programming/Etc Mail-server.md @@ -2,6 +2,8 @@ id: Etc Mail-server aliases: [] tags: [] +rating: +year: --- - [ ] *** diff --git a/liph/other/Samba shares miri.md b/liph/programming/Samba shares miri.md similarity index 99% rename from liph/other/Samba shares miri.md rename to liph/programming/Samba shares miri.md index f597c2e..b6a3aea 100755 --- a/liph/other/Samba shares miri.md +++ b/liph/programming/Samba shares miri.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- There are several ways to mount a Samba (SMB) share on macOS, ranging from a quick one-time connection to setting it up to reconnect automatically. Here are the three most common methods: diff --git a/liph/programming/arch on surface.md b/liph/programming/arch on surface.md deleted file mode 100755 index 34a95da..0000000 --- a/liph/programming/arch on surface.md +++ /dev/null @@ -1,381 +0,0 @@ -Here's a **hypothetical but realistic Arch setup** for a Surface Pro tablet with all the touch/tablet features: - ---- - -## **Base System Setup** - -**1. Installation with Surface kernel:** -```bash -# Install base Arch -# After base install, add linux-surface repo - -# Add the linux-surface repository key -wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo pacman-key --add - -sudo pacman-key --finger 56C464BAAC421453 -sudo pacman-key --lsign-key 56C464BAAC421453 - -# Add repo to /etc/pacman.conf -[linux-surface] -Server = https://pkg.surfacelinux.com/arch/ - -# Update and install Surface kernel -sudo pacman -Syu -sudo pacman -S linux-surface linux-surface-headers iptsd -``` - -**2. Core tablet packages:** -```bash -# Surface-specific firmware and drivers -sudo pacman -S libwacom # Wacom/stylus support -sudo pacman -S iptsd # Surface touchscreen daemon -sudo systemctl enable iptsd - -# Camera support -sudo pacman -S linux-firmware -# Surface cameras need special firmware from linux-surface -``` - ---- - -## **Desktop Environment: GNOME (Best Touch Support)** - -**Install GNOME with Wayland:** -```bash -sudo pacman -S gnome gnome-extra -sudo pacman -S gdm -sudo systemctl enable gdm - -# Touch-specific tools -sudo pacman -S gnome-shell-extension-appindicator -sudo pacman -S gnome-browser-connector -``` - -**GNOME gives you out-of-box:** -- Automatic screen rotation -- Touch gestures (swipe between workspaces) -- On-screen keyboard (built-in) -- Pinch-to-zoom -- Good HiDPI scaling - ---- - -## **Screen Rotation** - -**Auto-rotation with iio-sensor-proxy:** -```bash -sudo pacman -S iio-sensor-proxy -sudo systemctl enable iio-sensor-proxy - -# Test rotation sensor -monitor-sensor -``` - -**Manual rotation keybinds (if needed):** -```bash -# Create a script ~/bin/rotate.sh -#!/bin/bash -case $(xrandr --query --verbose | grep 'connected primary' | cut -d' ' -f5) in - normal) - xrandr --output eDP-1 --rotate right - ;; - right) - xrandr --output eDP-1 --rotate inverted - ;; - inverted) - xrandr --output eDP-1 --rotate left - ;; - left) - xrandr --output eDP-1 --rotate normal - ;; -esac -``` - ---- - -## **Battery Optimization** - -**TLP (automatic power management):** -```bash -sudo pacman -S tlp tlp-rdw -sudo systemctl enable tlp -sudo systemctl start tlp - -# Configure /etc/tlp.conf for aggressive power saving -sudo nano /etc/tlp.conf - -# Key settings: -TLP_DEFAULT_MODE=BAT -CPU_SCALING_GOVERNOR_ON_BAT=powersave -RUNTIME_PM_ON_BAT=auto -``` - -**Additional power tools:** -```bash -sudo pacman -S powertop # Power usage analysis -sudo pacman -S thermald # Thermal management -sudo systemctl enable thermald - -# Run powertop calibration once -sudo powertop --calibrate -``` - -**Check battery stats:** -```bash -sudo pacman -S acpi -acpi -V # Show battery info -``` - ---- - -## **Touch & Stylus Support** - -**Stylus configuration:** -```bash -sudo pacman -S xf86-input-wacom -# Surface Pen should work automatically with iptsd + libwacom - -# For pressure sensitivity in apps -sudo pacman -S xournalpp # Note-taking with pen -sudo pacman -S krita # Drawing with pressure -sudo pacman -S gimp -``` - -**On-screen keyboard alternatives:** -```bash -# GNOME has built-in OSK, but alternatives: -yay -S onboard # Feature-rich OSK -yay -S squeekboard # Mobile-focused OSK -``` - -**Touch gestures (if not using GNOME):** -```bash -yay -S libinput-gestures -yay -S gestures # GUI for libinput-gestures - -# Configure swipes, pinches, etc. -``` - ---- - -## **Camera Support** - -**Video/camera stack:** -```bash -sudo pacman -S v4l-utils # Video4Linux utilities -sudo pacman -S cheese # Test webcam -sudo pacan -S pipewire pipewire-pulse wireplumber - -# Check cameras -v4l2-ctl --list-devices - -# Surface cameras need IPU3 firmware -# Should be in linux-surface kernel already -``` - ---- - -## **WiFi & Bluetooth** - -```bash -sudo pacman -S networkmanager network-manager-applet -sudo systemctl enable NetworkManager - -sudo pacman -S bluez bluez-utils -sudo systemctl enable bluetooth -``` - ---- - -## **Audio** - -```bash -sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack -sudo pacman -S wireplumber -``` - ---- - -## **HiDPI Scaling** - -**For GNOME:** -```bash -# Settings > Displays > Scale (100%, 200%, etc.) -# Or via gsettings: -gsettings set org.gnome.desktop.interface scaling-factor 2 -``` - -**For Wayland fractional scaling:** -```bash -gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']" -``` - ---- - -## **Type Cover (Keyboard) Support** - -Should work automatically, but ensure: -```bash -# Check keyboard detected -libinput list-devices - -# Keyboard backlight control -yay -S surface-control -# Or manually: -echo 1 | sudo tee /sys/class/leds/surface::kbd_backlight/brightness -``` - ---- - -## **Useful Tablet Apps** - -```bash -# Note-taking -sudo pacman -S xournalpp # Best for stylus notes -yay -S rnote # Rust-based note app - -# PDF annotation -sudo pacman -S okular -yay -S xournal++ - -# Drawing -sudo pacman -S krita inkscape - -# E-reading -sudo pacman -S foliate # E-book reader -sudo pacman -S zathura # PDF reader - -# Touch-friendly file manager -sudo pacman -S nautilus # GNOME Files -``` - ---- - -## **Performance Tweaks** - -**Reduce swappiness:** -```bash -echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-swappiness.conf -``` - -**Enable ZRAM (compressed RAM):** -```bash -sudo pacman -S zram-generator -sudo nano /etc/systemd/zram-generator.conf - -[zram0] -zram-size = ram / 2 -compression-algorithm = zstd -``` - -**Trim SSD weekly:** -```bash -sudo systemctl enable fstrim.timer -``` - ---- - -## **Testing Everything** - -**Rotation:** -```bash -monitor-sensor # Rotate device, watch output -``` - -**Battery:** -```bash -sudo tlp-stat -b # Battery stats -sudo powertop # Power consumption -``` - -**Touch:** -```bash -libinput debug-events # Watch touch events -``` - -**Stylus:** -```bash -xsetwacom list devices # List stylus -``` - -**Camera:** -```bash -cheese # Open camera app -``` - ---- - -## **Alternative: KDE Plasma** - -If you prefer KDE over GNOME: -```bash -sudo pacman -S plasma-meta kde-applications -sudo pacman -S plasma-wayland-session - -# KDE has: -# - Good touch support -# - Better customization -# - Onboard for OSK -# - Screen rotation works -# - More lightweight than GNOME -``` - ---- - -## **Common Issues & Fixes** - -**Camera not working:** -```bash -# Update firmware -sudo pacman -Syu -# Check dmesg for IPU3 errors -dmesg | grep -i ipu3 -``` - -**Stylus not detected:** -```bash -sudo systemctl restart iptsd -# Check if iptsd is running -systemctl status iptsd -``` - -**Battery draining fast:** -```bash -sudo powertop --auto-tune -# Add to systemd service for persistence -``` - -**Screen rotation not working:** -```bash -# Check sensor -monitor-sensor -# May need to install iio-sensor-proxy-git from AUR -yay -S iio-sensor-proxy-git -``` - ---- - -## **Maintenance** - -```bash -# Update system + Surface kernel -sudo pacman -Syu - -# Check for Surface-specific updates -# linux-surface team releases patches regularly -``` - ---- - -This setup gives you: -✅ Automatic rotation -✅ Battery optimization (6-8 hours typical) -✅ Working cameras (front + rear) -✅ Stylus with pressure sensitivity -✅ Touch gestures -✅ On-screen keyboard -✅ Type Cover support -✅ Good performance - -The key is **linux-surface kernel + GNOME/KDE + proper power management**. It won't be *exactly* like iPad smoothness, but it's very usable as a daily driver tablet. - -Want me to elaborate on any specific part? \ No newline at end of file diff --git a/liph/programming/Mailserver setup/color scheming.md b/liph/programming/color scheming.md similarity index 99% rename from liph/programming/Mailserver setup/color scheming.md rename to liph/programming/color scheming.md index 97e976d..122f4df 100755 --- a/liph/programming/Mailserver setup/color scheming.md +++ b/liph/programming/color scheming.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- Great! Let's take your aerc setup to the next level. Here are several enhancements: ## 1. Color Schemes & Styling diff --git a/liph/programming/notmich aerc install.md b/liph/programming/notmich aerc install.md index f1dcae6..4b079ae 100755 --- a/liph/programming/notmich aerc install.md +++ b/liph/programming/notmich aerc install.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- Absolutely! Here's a complete step-by-step guide to set up notmuch with aerc: ## Step 1: Verify notmuch database location diff --git a/liph/other/spinstack.md b/liph/programming/spinstack.md similarity index 98% rename from liph/other/spinstack.md rename to liph/programming/spinstack.md index 5aeb8aa..39d45a9 100755 --- a/liph/other/spinstack.md +++ b/liph/programming/spinstack.md @@ -1,3 +1,7 @@ +--- +rating: +year: +--- ✅ Yes, We're Ready to Implement! Based on our planning session, we now have: 📋 All Technical Decisions Made: diff --git a/liph/test123 b/liph/test123 deleted file mode 100755 index b8fa8cf..0000000 --- a/liph/test123 +++ /dev/null @@ -1 +0,0 @@ -Dies ist eine Testnotiz. \ No newline at end of file