aidenlx / alx-folder-note

Add description, summary, and more info to folders with folder notes.
MIT License
246 stars 13 forks source link

Thousands of User Messages #65

Closed brimwats closed 2 years ago

brimwats commented 2 years ago

I am getting thousands of these (~12k after 30m open)

image

The details say that it is folder note:

(function anonymous(require, module, exports) {
    /*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source visit the plugins github repository
*/

    var ke = Object.create;
    var M = Object.defineProperty;
    var ye = Object.getOwnPropertyDescriptor;
    var Ae = Object.getOwnPropertyNames
      , re = Object.getOwnPropertySymbols
      , xe = Object.getPrototypeOf
      , ne = Object.prototype.hasOwnProperty
      , Ee = Object.prototype.propertyIsEnumerable;
    var oe = (n,e,t)=>e in n ? M(n, e, {
        enumerable: !0,
        configurable: !0,
        writable: !0,
        value: t
    }) : n[e] = t
      , I = (n,e)=>{
        for (var t in e || (e = {}))
            ne.call(e, t) && oe(n, t, e[t]);
        if (re)
            for (var t of re(e))
                Ee.call(e, t) && oe(n, t, e[t]);
        return n
    }
    ;
    var ie = n=>M(n, "__esModule", {
        value: !0
    });
    var K = (n,e)=>()=>(e || n((e = {
        exports: {}
    }).exports, e),
    e.exports)
      , Oe = (n,e)=>{
        for (var t in e)
            M(n, t, {
                get: e[t],
                enumerable: !0
            })
    }
      , le = (n,e,t,r)=>{
        if (e && typeof e == "object" || typeof e == "function")
            for (let o of Ae(e))
                !ne.call(n, o) && (t || o !== "default") && M(n, o, {
                    get: ()=>e[o],
                    enumerable: !(r = ye(e, o)) || r.enumerable
                });
        return n
    }
      , S = (n,e)=>le(ie(M(n != null ? ke(xe(n)) : {}, "default", !e && n && n.__esModule ? {
        get: ()=>n.default,
        enumerable: !0
    } : {
        value: n,
        enumerable: !0
    })), n)
      , Ie = (n=>(e,t)=>n && n.get(e) || (t = le(ie({}), e, 1),
    n && n.set(e, t),
    t))(typeof WeakMap != "undefined" ? new WeakMap : 0);
    var w = (n,e,t)=>new Promise((r,o)=>{
        var l = a=>{
            try {
                s(t.next(a))
            } catch (g) {
                o(g)
            }
        }
          , i = a=>{
            try {
                s(t.throw(a))
            } catch (g) {
                o(g)
            }
        }
          , s = a=>a.done ? r(a.value) : Promise.resolve(a.value).then(l, i);
        s((t = t.apply(n, e)).next())
    }
    );
    var Y = K(_=>{
        "use strict";
        Object.defineProperty(_, "__esModule", {
            value: !0
        });
        function se(n, e) {
            if (e)
                return n;
            throw new Error("Unhandled discriminated union member: " + JSON.stringify(n))
        }
        _.assertNever = se;
        _.default = se
    }
    );
    var fe = K((de,W)=>{
        (function(n, e) {
            "use strict";
            typeof define == "function" && define.amd ? define(e) : typeof W == "object" && W.exports ? W.exports = e() : n.log = e()
        }
        )(de, function() {
            "use strict";
            var n = function() {}
              , e = "undefined"
              , t = typeof window !== e && typeof window.navigator !== e && /Trident\/|MSIE /.test(window.navigator.userAgent)
              , r = ["trace", "debug", "info", "warn", "error"];
            function o(f, u) {
                var m = f[u];
                if (typeof m.bind == "function")
                    return m.bind(f);
                try {
                    return Function.prototype.bind.call(m, f)
                } catch {
                    return function() {
                        return Function.prototype.apply.apply(m, [f, arguments])
                    }
                }
            }
            function l() {
                console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])),
                console.trace && console.trace()
            }
            function i(f) {
                return f === "debug" && (f = "log"),
                typeof console === e ? !1 : f === "trace" && t ? l : console[f] !== void 0 ? o(console, f) : console.log !== void 0 ? o(console, "log") : n
            }
            function s(f, u) {
                for (var m = 0; m < r.length; m++) {
                    var h = r[m];
                    this[h] = m < f ? n : this.methodFactory(h, f, u)
                }
                this.log = this.debug
            }
            function a(f, u, m) {
                return function() {
                    typeof console !== e && (s.call(this, u, m),
                    this[f].apply(this, arguments))
                }
            }
            function g(f, u, m) {
                return i(f) || a.apply(this, arguments)
            }
            function F(f, u, m) {
                var h = this, ee;
                u = u ?? "WARN";
                var P = "loglevel";
                typeof f == "string" ? P += ":" + f : typeof f == "symbol" && (P = void 0);
                function Ce(c) {
                    var E = (r[c] || "silent").toUpperCase();
                    if (!(typeof window === e || !P)) {
                        try {
                            window.localStorage[P] = E;
                            return
                        } catch {}
                        try {
                            window.document.cookie = encodeURIComponent(P) + "=" + E + ";"
                        } catch {}
                    }
                }
                function te() {
                    var c;
                    if (!(typeof window === e || !P)) {
                        try {
                            c = window.localStorage[P]
                        } catch {}
                        if (typeof c === e)
                            try {
                                var E = window.document.cookie
                                  , V = E.indexOf(encodeURIComponent(P) + "=");
                                V !== -1 && (c = /^([^;]+)/.exec(E.slice(V))[1])
                            } catch {}
                        return h.levels[c] === void 0 && (c = void 0),
                        c
                    }
                }
                function Le() {
                    if (!(typeof window === e || !P)) {
                        try {
                            window.localStorage.removeItem(P);
                            return
                        } catch {}
                        try {
                            window.document.cookie = encodeURIComponent(P) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC"
                        } catch {}
                    }
                }
                h.name = f,
                h.levels = {
                    TRACE: 0,
                    DEBUG: 1,
                    INFO: 2,
                    WARN: 3,
                    ERROR: 4,
                    SILENT: 5
                },
                h.methodFactory = m || g,
                h.getLevel = function() {
                    return ee
                }
                ,
                h.setLevel = function(c, E) {
                    if (typeof c == "string" && h.levels[c.toUpperCase()] !== void 0 && (c = h.levels[c.toUpperCase()]),
                    typeof c == "number" && c >= 0 && c <= h.levels.SILENT) {
                        if (ee = c,
                        E !== !1 && Ce(c),
                        s.call(h, c, f),
                        typeof console === e && c < h.levels.SILENT)
                            return "No console available for logging"
                    } else
                        throw "log.setLevel() called with invalid level: " + c
                }
                ,
                h.setDefaultLevel = function(c) {
                    u = c,
                    te() || h.setLevel(c, !1)
                }
                ,
                h.resetLevel = function() {
                    h.setLevel(u, !1),
                    Le()
                }
                ,
                h.enableAll = function(c) {
                    h.setLevel(h.levels.TRACE, c)
                }
                ,
                h.disableAll = function(c) {
                    h.setLevel(h.levels.SILENT, c)
                }
                ;
                var J = te();
                J == null && (J = u),
                h.setLevel(J, !1)
            }
            var d = new F
              , N = {};
            d.getLogger = function(u) {
                if (typeof u != "symbol" && typeof u != "string" || u === "")
                    throw new TypeError("You must supply a name when creating a logger.");
                var m = N[u];
                return m || (m = N[u] = new F(u,d.getLevel(),d.methodFactory)),
                m
            }
            ;
            var b = typeof window !== e ? window.log : void 0;
            return d.noConflict = function() {
                return typeof window !== e && window.log === d && (window.log = b),
                d
            }
            ,
            d.getLoggers = function() {
                return N
            }
            ,
            d.default = d,
            d
        })
    }
    );
    var B = K((Ge,Fe)=>{
        "use strict";
        function y(n) {
            if (typeof n != "string")
                throw new TypeError("Path must be a string. Received " + JSON.stringify(n))
        }
        function pe(n, e) {
            for (var t = "", r = 0, o = -1, l = 0, i, s = 0; s <= n.length; ++s) {
                if (s < n.length)
                    i = n.charCodeAt(s);
                else {
                    if (i === 47)
                        break;
                    i = 47
                }
                if (i === 47) {
                    if (!(o === s - 1 || l === 1))
                        if (o !== s - 1 && l === 2) {
                            if (t.length < 2 || r !== 2 || t.charCodeAt(t.length - 1) !== 46 || t.charCodeAt(t.length - 2) !== 46) {
                                if (t.length > 2) {
                                    var a = t.lastIndexOf("/");
                                    if (a !== t.length - 1) {
                                        a === -1 ? (t = "",
                                        r = 0) : (t = t.slice(0, a),
                                        r = t.length - 1 - t.lastIndexOf("/")),
                                        o = s,
                                        l = 0;
                                        continue
                                    }
                                } else if (t.length === 2 || t.length === 1) {
                                    t = "",
                                    r = 0,
                                    o = s,
                                    l = 0;
                                    continue
                                }
                            }
                            e && (t.length > 0 ? t += "/.." : t = "..",
                            r = 2)
                        } else
                            t.length > 0 ? t += "/" + n.slice(o + 1, s) : t = n.slice(o + 1, s),
                            r = s - o - 1;
                    o = s,
                    l = 0
                } else
                    i === 46 && l !== -1 ? ++l : l = -1
            }
            return t
        }
        function Me(n, e) {
            var t = e.dir || e.root
              , r = e.base || (e.name || "") + (e.ext || "");
            return t ? t === e.root ? t + r : t + n + r : r
        }
        var D = {
            resolve: function() {
                for (var e = "", t = !1, r, o = arguments.length - 1; o >= -1 && !t; o--) {
                    var l;
                    o >= 0 ? l = arguments[o] : (r === void 0 && (r = process.cwd()),
                    l = r),
                    y(l),
                    l.length !== 0 && (e = l + "/" + e,
                    t = l.charCodeAt(0) === 47)
                }
                return e = pe(e, !t),
                t ? e.length > 0 ? "/" + e : "/" : e.length > 0 ? e : "."
            },
            normalize: function(e) {
                if (y(e),
                e.length === 0)
                    return ".";
                var t = e.charCodeAt(0) === 47
                  , r = e.charCodeAt(e.length - 1) === 47;
                return e = pe(e, !t),
                e.length === 0 && !t && (e = "."),
                e.length > 0 && r && (e += "/"),
                t ? "/" + e : e
            },
            isAbsolute: function(e) {
                return y(e),
                e.length > 0 && e.charCodeAt(0) === 47
            },
            join: function() {
                if (arguments.length === 0)
                    return ".";
                for (var e, t = 0; t < arguments.length; ++t) {
                    var r = arguments[t];
                    y(r),
                    r.length > 0 && (e === void 0 ? e = r : e += "/" + r)
                }
                return e === void 0 ? "." : D.normalize(e)
            },
            relative: function(e, t) {
                if (y(e),
                y(t),
                e === t || (e = D.resolve(e),
                t = D.resolve(t),
                e === t))
                    return "";
                for (var r = 1; r < e.length && e.charCodeAt(r) === 47; ++r)
                    ;
                for (var o = e.length, l = o - r, i = 1; i < t.length && t.charCodeAt(i) === 47; ++i)
                    ;
                for (var s = t.length, a = s - i, g = l < a ? l : a, F = -1, d = 0; d <= g; ++d) {
                    if (d === g) {
                        if (a > g) {
                            if (t.charCodeAt(i + d) === 47)
                                return t.slice(i + d + 1);
                            if (d === 0)
                                return t.slice(i + d)
                        } else
                            l > g && (e.charCodeAt(r + d) === 47 ? F = d : d === 0 && (F = 0));
                        break
                    }
                    var N = e.charCodeAt(r + d)
                      , b = t.charCodeAt(i + d);
                    if (N !== b)
                        break;
                    N === 47 && (F = d)
                }
                var f = "";
                for (d = r + F + 1; d <= o; ++d)
                    (d === o || e.charCodeAt(d) === 47) && (f.length === 0 ? f += ".." : f += "/..");
                return f.length > 0 ? f + t.slice(i + F) : (i += F,
                t.charCodeAt(i) === 47 && ++i,
                t.slice(i))
            },
            _makeLong: function(e) {
                return e
            },
            dirname: function(e) {
                if (y(e),
                e.length === 0)
                    return ".";
                for (var t = e.charCodeAt(0), r = t === 47, o = -1, l = !0, i = e.length - 1; i >= 1; --i)
                    if (t = e.charCodeAt(i),
                    t === 47) {
                        if (!l) {
                            o = i;
                            break
                        }
                    } else
                        l = !1;
                return o === -1 ? r ? "/" : "." : r && o === 1 ? "//" : e.slice(0, o)
            },
            basename: function(e, t) {
                if (t !== void 0 && typeof t != "string")
                    throw new TypeError('"ext" argument must be a string');
                y(e);
                var r = 0, o = -1, l = !0, i;
                if (t !== void 0 && t.length > 0 && t.length <= e.length) {
                    if (t.length === e.length && t === e)
                        return "";
                    var s = t.length - 1
                      , a = -1;
                    for (i = e.length - 1; i >= 0; --i) {
                        var g = e.charCodeAt(i);
                        if (g === 47) {
                            if (!l) {
                                r = i + 1;
                                break
                            }
                        } else
                            a === -1 && (l = !1,
                            a = i + 1),
                            s >= 0 && (g === t.charCodeAt(s) ? --s === -1 && (o = i) : (s = -1,
                            o = a))
                    }
                    return r === o ? o = a : o === -1 && (o = e.length),
                    e.slice(r, o)
                } else {
                    for (i = e.length - 1; i >= 0; --i)
                        if (e.charCodeAt(i) === 47) {
                            if (!l) {
                                r = i + 1;
                                break
                            }
                        } else
                            o === -1 && (l = !1,
                            o = i + 1);
                    return o === -1 ? "" : e.slice(r, o)
                }
            },
            extname: function(e) {
                y(e);
                for (var t = -1, r = 0, o = -1, l = !0, i = 0, s = e.length - 1; s >= 0; --s) {
                    var a = e.charCodeAt(s);
                    if (a === 47) {
                        if (!l) {
                            r = s + 1;
                            break
                        }
                        continue
                    }
                    o === -1 && (l = !1,
                    o = s + 1),
                    a === 46 ? t === -1 ? t = s : i !== 1 && (i = 1) : t !== -1 && (i = -1)
                }
                return t === -1 || o === -1 || i === 0 || i === 1 && t === o - 1 && t === r + 1 ? "" : e.slice(t, o)
            },
            format: function(e) {
                if (e === null || typeof e != "object")
                    throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof e);
                return Me("/", e)
            },
            parse: function(e) {
                y(e);
                var t = {
                    root: "",
                    dir: "",
                    base: "",
                    ext: "",
                    name: ""
                };
                if (e.length === 0)
                    return t;
                var r = e.charCodeAt(0), o = r === 47, l;
                o ? (t.root = "/",
                l = 1) : l = 0;
                for (var i = -1, s = 0, a = -1, g = !0, F = e.length - 1, d = 0; F >= l; --F) {
                    if (r = e.charCodeAt(F),
                    r === 47) {
                        if (!g) {
                            s = F + 1;
                            break
                        }
                        continue
                    }
                    a === -1 && (g = !1,
                    a = F + 1),
                    r === 46 ? i === -1 ? i = F : d !== 1 && (d = 1) : i !== -1 && (d = -1)
                }
                return i === -1 || a === -1 || d === 0 || d === 1 && i === a - 1 && i === s + 1 ? a !== -1 && (s === 0 && o ? t.base = t.name = e.slice(1, a) : t.base = t.name = e.slice(s, a)) : (s === 0 && o ? (t.name = e.slice(1, i),
                t.base = e.slice(1, a)) : (t.name = e.slice(s, i),
                t.base = e.slice(s, a)),
                t.ext = e.slice(i, a)),
                s > 0 ? t.dir = e.slice(0, s - 1) : o && (t.dir = "/"),
                t
            },
            sep: "/",
            delimiter: ":",
            win32: null,
            posix: null
        };
        D.posix = D;
        Fe.exports = D
    }
    );
    var Ve = {};
    Oe(Ve, {
        default: ()=>Z
    });
    var Te = S(Y(), 1);
    function ae(n, e) {
        let t = Object.keys(e).map(r=>Se(n, r, e[r]));
        return t.length === 1 ? t[0] : function() {
            t.forEach(r=>r())
        }
    }
    function Se(n, e, t) {
        let r = n[e]
          , o = n.hasOwnProperty(e)
          , l = t(r);
        return r && Object.setPrototypeOf(l, r),
        Object.setPrototypeOf(i, l),
        n[e] = i,
        s;
        function i(...a) {
            return l === r && n[e] === i && s(),
            l.apply(this, a)
        }
        function s() {
            n[e] === i && (o ? n[e] = r : delete n[e]),
            l !== r && (l = r,
            Object.setPrototypeOf(i, r || Function))
        }
    }
    var be = require("obsidian");
    var ue = S(fe(), 1)
      , De = ue.default.getLogger("folder-note-core")
      , v = De;
    var x = require("obsidian");
    var A = (r=>(r[r.Index = 0] = "Index",
    r[r.Inside = 1] = "Inside",
    r[r.Outside = 2] = "Outside",
    r))(A || {})
      , ce = n=>({
        get renderCoreSettings() {
            return n.settingTab.renderCoreSettings
        },
        get renderLogLevel() {
            return n.settingTab.setLogLevel
        },
        importSettings: e=>{
            if (e.folderNotePref !== void 0) {
                switch (e.folderNotePref) {
                case 0:
                    e.folderNotePref = 0;
                    break;
                case 1:
                    e.folderNotePref = 1;
                    break;
                case 2:
                    e.folderNotePref = 2;
                    break;
                default:
                    break
                }
                let t = Object.fromEntries(Object.entries(e).filter(([r,o])=>o !== void 0));
                n.settings = I(I({}, n.settings), t),
                n.saveSettings()
            }
        }
        ,
        get getNewFolderNote() {
            return n.getNewFolderNote
        },
        get getFolderFromNote() {
            return n.resolver.getFolderFromNote
        },
        get getFolderPath() {
            return n.resolver.getFolderPath
        },
        get getFolderNote() {
            return n.resolver.getFolderNote
        },
        get getFolderNotePath() {
            return n.resolver.getFolderNotePath
        },
        get DeleteLinkedFolder() {
            return n.resolver.DeleteLinkedFolder
        },
        get LinkToParentFolder() {
            return n.resolver.LinkToParentFolder
        },
        get DeleteNoteAndLinkedFolder() {
            return n.resolver.DeleteNoteAndLinkedFolder
        },
        get createFolderForNote() {
            return n.resolver.createFolderForNote
        },
        get DeleteFolderNote() {
            return n.resolver.DeleteFolderNote
        },
        get CreateFolderNote() {
            return n.resolver.CreateFolderNote
        },
        get OpenFolderNote() {
            return n.resolver.OpenFolderNote
        }
    });
    var ge = n=>{
        let {createFolderForNote: e, LinkToParentFolder: t, DeleteLinkedFolder: r, DeleteNoteAndLinkedFolder: o} = n.resolver;
        n.addCommand({
            id: "make-doc-folder-note",
            name: "Make current document folder note",
            checkCallback: l=>{
                var s;
                let i = (s = n.app.workspace.activeLeaf) == null ? void 0 : s.view;
                if (l)
                    return i instanceof x.MarkdownView;
                e(i.file)
            }
            ,
            hotkeys: []
        }),
        n.addCommand({
            id: "link-to-parent-folder",
            name: "Link to Parent Folder",
            checkCallback: l=>{
                var s;
                let i = (s = n.app.workspace.activeLeaf) == null ? void 0 : s.view;
                return t(i.file, l)
            }
            ,
            hotkeys: []
        }),
        n.addCommand({
            id: "delete-linked-folder",
            name: "Delete linked folder",
            checkCallback: l=>{
                var s;
                let i = (s = n.app.workspace.activeLeaf) == null ? void 0 : s.view;
                return i instanceof x.MarkdownView ? r(i.file, l) : !1
            }
            ,
            hotkeys: []
        }),
        n.addCommand({
            id: "delete-with-linked-folder",
            name: "Delete note and linked folder",
            checkCallback: l=>{
                var s;
                let i = (s = n.app.workspace.activeLeaf) == null ? void 0 : s.view;
                return i instanceof x.MarkdownView ? o(i.file, l) : !1
            }
            ,
            hotkeys: []
        }),
        n.registerEvent(n.app.workspace.on("file-menu", (l,i,s)=>w(void 0, null, function*() {
            i instanceof x.TFile && i.extension === "md" && (t(i, !0) && l.addItem(a=>a.setIcon("link").setTitle("Link to Parent Folder").onClick(()=>t(i))),
            (yield e(i, !0)) && l.addItem(a=>a.setIcon("create-new").setTitle("Make Doc Folder Note").onClick(()=>{
                e(i),
                n.app.workspace.openLinkText(i.path, "", !1)
            }
            )),
            s !== "link-context-menu" && o(i, !0) && l.addItem(a=>a.setIcon("trash").setTitle("Delete Note and Linked Folder").onClick(()=>o(i))))
        })))
    }
      , he = n=>{
        let {OpenFolderNote: e, DeleteFolderNote: t, CreateFolderNote: r, DeleteNoteAndLinkedFolder: o} = n.resolver;
        n.registerEvent(n.app.workspace.on("file-menu", (l,i,s)=>{
            i instanceof x.TFolder && (e(i, !0) && l.addItem(a=>a.setIcon("enter").setTitle("Open Folder Note").onClick(()=>e(i))),
            t(i, !0) && l.addItem(a=>a.setIcon("trash").setTitle("Delete Folder Note").onClick(()=>t(i))),
            n.settings.folderNotePref === 2 && n.settings.deleteOutsideNoteWithFolder === !1 && o(i, !0) && l.addItem(a=>a.setIcon("trash").setTitle("Delete Folder and Folder Note").onClick(()=>o(i))),
            r(i, !0) && l.addItem(a=>a.setIcon("create-new").setTitle("Create Folder Note").onClick(()=>r(i))))
        }
        ))
    }
    ;
    var $ = S(Y(), 1)
      , L = require("obsidian")
      , k = S(B(), 1);
    var H = require("obsidian")
      , U = S(B(), 1);
    var C = n=>typeof n == "string" ? n.endsWith(".md") : n.extension === "md"
      , me = (n,e)=>{
        let t = R(n.path);
        return t && (0,
        U.join)(t, e)
    }
      , R = n=>{
        if (n === "/")
            return null;
        let e = (0,
        U.dirname)(n);
        return e === "." ? "/" : e
    }
      , z = (n,e,t)=>{
        if (n instanceof H.TFile)
            e(n);
        else if (n instanceof H.TFolder)
            t(n);
        else
            throw v.error("unexpected TAbstractFile type", n),
            new Error("unexpected TAbstractFile type")
    }
    ;
    var j = class {
        constructor(e) {
            this.getFolderFromNote = (e,t)=>{
                if (!C(e))
                    return null;
                let r = this.getFolderPath(e, !1, t);
                if (!r)
                    return null;
                let o = this.vault.getAbstractFileByPath(r);
                return o && o instanceof L.TFolder ? o : null
            }
            ;
            this.getFolderPath = (e,t=!1,r)=>{
                var s, a;
                if (r === void 0 && (r = this.settings.folderNotePref),
                !C(e))
                    return v.info("getFolderPath(%o): given file not markdown", e),
                    null;
                let o, l;
                if (e instanceof L.TFile ? (l = e.basename,
                o = (s = R(e.path)) != null ? s : "") : (l = (0,
                k.basename)(e).slice(0, -3),
                o = (a = R(e)) != null ? a : ""),
                !o)
                    return v.info("getFolderPath(%o): no folder note for root dir", e),
                    null;
                let i = ()=>o === "/" ? l : (0,
                k.join)(o, l);
                switch (r) {
                case 0:
                    return t ? i() : l === this.settings.indexName ? o : (v.info("getFolderPath(%o): note name invaild", e),
                    null);
                case 1:
                    return t ? i() : l === (0,
                    k.basename)(o) ? o : (v.info("getFolderPath(%o): note name invaild", e),
                    null);
                case 2:
                    {
                        let g = i();
                        return t || l === (0,
                        k.basename)(g) ? g : (v.info("getFolderPath(%o): note name invaild", e),
                        null)
                    }
                default:
                    (0,
                    $.default)(r)
                }
            }
            ;
            this.getFolderNote = (e,t)=>this.findFolderNote(this.getFolderNotePath(e, t));
            this.findFolderNote = e=>{
                if (!e)
                    return null;
                let t = this.vault.getAbstractFileByPath(e.path);
                return t && t instanceof L.TFile ? t : null
            }
            ;
            this.getFolderNotePath = (e,t)=>{
                t === void 0 && (t = this.settings.folderNotePref);
                let r = typeof e == "string" ? e : e.path
                  , o = R(r);
                if (!o)
                    return null;
                let {indexName: l} = this.settings, i, s;
                switch (t) {
                case 0:
                    s = l,
                    i = r;
                    break;
                case 1:
                    s = (0,
                    k.basename)(r),
                    i = r;
                    break;
                case 2:
                    s = (0,
                    k.basename)(r),
                    i = o;
                    break;
                default:
                    (0,
                    $.default)(t)
                }
                return {
                    dir: i,
                    name: s + ".md",
                    path: i === "/" ? s + ".md" : (0,
                    k.join)(i, s + ".md")
                }
            }
            ;
            this.DeleteLinkedFolder = (e,t=!1)=>{
                if (!C(e))
                    return !1;
                let r = this.getFolderFromNote(e);
                return r && !t && this.vault.delete(r, !0),
                !!r
            }
            ;
            this.LinkToParentFolder = (e,t=!1)=>{
                if (!C(e))
                    return !1;
                if (e.parent) {
                    let r = this.getFolderNotePath(e.parent)
                      , o = r && !this.getFolderNote(e.parent);
                    if (o && !t) {
                        let {path: l} = r;
                        this.plugin.app.fileManager.renameFile(e, l)
                    }
                    return !!o
                } else
                    return !1
            }
            ;
            this.DeleteNoteAndLinkedFolder = (e,t=!1)=>{
                let r, o;
                if (e instanceof L.TFile) {
                    if (!C(e))
                        return !1;
                    r = e,
                    o = this.getFolderFromNote(e)
                } else
                    r = this.getFolderNote(e),
                    o = e;
                return r && o && !t && new ve(this.plugin,r,o).open(),
                !!(r && o)
            }
            ;
            this.createFolderForNote = (e,t=!1)=>w(this, null, function*() {
                if (!C(e))
                    return !1;
                let r = this.getFolderPath(e, !1);
                if (r && (yield this.vault.exists(r)))
                    return v.info("createFolderForNote(%o): already folder note", e, e.path),
                    t || new L.Notice("Already folder note"),
                    !1;
                let o = this.getFolderPath(e, !0)
                  , l = o && (yield this.vault.exists(o));
                if (l)
                    return v.info("createFolderForNote(%o): target folder to create already exists", e, e.path),
                    t || new L.Notice("Target folder to create already exists"),
                    !1;
                if (!o)
                    v.info("createFolderForNote(%o): no vaild linked folder path for %s", e, e.path),
                    t || new L.Notice("No vaild linked folder path for: " + e.path);
                else if (!t) {
                    yield this.vault.createFolder(o);
                    let i;
                    switch (this.settings.folderNotePref) {
                    case 0:
                        i = (0,
                        k.join)(o, this.settings.indexName + ".md");
                        break;
                    case 1:
                        i = (0,
                        k.join)(o, e.name);
                        break;
                    case 2:
                        i = null;
                        break;
                    default:
                        (0,
                        $.default)(this.settings.folderNotePref)
                    }
                    i && this.plugin.app.fileManager.renameFile(e, i)
                }
                return !!(!l && o)
            });
            this.OpenFolderNote = (e,t=!1,r)=>{
                let o = this.getFolderNote(e);
                return o && !t && this.plugin.app.workspace.openLinkText(o.path, "", r == null ? void 0 : r.newLeaf, r == null ? void 0 : r.openViewState),
                !!o
            }
            ;
            this.DeleteFolderNote = (e,t=!1)=>{
                let r = this.getFolderNote(e);
                return r && !t && this.vault.delete(r),
                !!r
            }
            ;
            this.CreateFolderNote = (e,t=!1)=>{
                let r, o;
                return (r = !this.getFolderNote(e) && (o = this.getFolderNotePath(e))) && !t && this.vault.create(o.path, this.plugin.getNewFolderNote(e)),
                !!r
            }
            ;
            this.plugin = e
        }
        get settings() {
            return this.plugin.settings
        }
        get vault() {
            return this.plugin.app.vault
        }
    }
      , ve = class extends L.Modal {
        constructor(e, t, r) {
            super(e.app);
            this.plugin = e,
            this.target = t,
            this.targetFolder = r
        }
        get settings() {
            return this.plugin.settings
        }
        deleteFolder() {
            let {contentEl: e} = this;
            e.createEl("p", {
                text: "Warning: the entire folder and its content will be removed",
                cls: "mod-warning"
            });
            let t = this.targetFolder.children.map(o=>o.name);
            e.createEl("p", {
                text: t.length > 5 ? t.slice(0, 5).join(", ") + "..." : t.join(", ")
            }),
            e.createEl("p", {
                text: "Continue?",
                cls: "mod-warning"
            });
            let r = e.createDiv({
                cls: "modal-button-container"
            });
            r.createEl("button", {
                text: "Yes",
                cls: "mod-warning"
            }, o=>o.onClickEvent(()=>{
                this.app.vault.delete(this.targetFolder, !0),
                this.app.vault.delete(this.target),
                this.close()
            }
            )),
            r.createEl("button", {
                text: "No"
            }, o=>o.onClickEvent(()=>{
                this.close()
            }
            ))
        }
        onOpen() {
            this.containerEl.addClass("warn"),
            this.deleteFolder()
        }
        onClose() {
            let {contentEl: e} = this;
            e.empty()
        }
    }
    ;
    var T = require("obsidian")
      , O = S(B(), 1);
    var G = class {
        constructor(e) {
            this.on = (...e)=>this.plugin.app.vault.on(...e);
            this.delete = (...e)=>this.plugin.app.vault.delete(...e);
            this.rename = (...e)=>this.plugin.app.fileManager.renameFile(...e);
            this.registerEvent = ()=>{
                this.plugin.registerEvent(this.on("create", this.onChange)),
                this.plugin.registerEvent(this.on("rename", this.onChange)),
                this.plugin.registerEvent(this.on("delete", this.onDelete))
            }
            ;
            this.onChange = (e,t)=>{
                var a, g, F;
                let {getFolderNote: r, getFolderFromNote: o, getFolderNotePath: l} = this.finder;
                function i(d) {
                    return d instanceof T.TFolder ? t ? r(t) : null : d instanceof T.TFile && t && C(t) ? o(t) : null
                }
                function s(d) {
                    return d instanceof T.TFolder ? r(d) : d instanceof T.TFile ? o(d) : null
                }
                if (t && e instanceof T.TFile && C(t) !== C(e)) {
                    let d = i(e);
                    if (d)
                        this.plugin.trigger("folder-note:delete", e, d);
                    else {
                        let N = o(e);
                        N && this.plugin.trigger("folder-note:create", e, N)
                    }
                } else {
                    let d = !1, N;
                    z(e, u=>{
                        N = s(u),
                        N && (d = !0,
                        this.plugin.trigger("folder-note:create", u, N))
                    }
                    , u=>{
                        N = s(u),
                        N && (d = !0,
                        this.plugin.trigger("folder-note:create", N, u))
                    }
                    );
                    let b = i(e);
                    if (!b)
                        return;
                    let f = e instanceof T.TFolder ? (g = (a = l(e)) == null ? void 0 : a.path) != null ? g : "" : e instanceof T.TFile && (F = me(b, e.basename)) != null ? F : "";
                    if (this.shouldRename(e, t))
                        if (!d && f) {
                            this.rename(b, f),
                            z(e, u=>this.plugin.trigger("folder-note:rename", [u, t], [b, f]), u=>this.plugin.trigger("folder-note:rename", [b, f], [u, t]));
                            return
                        } else {
                            let u = b instanceof T.TFile ? "folder note" : "linked folder"
                              , m = `Failed to sync name of ${u}: `
                              , h = d ? `${u} ${(0,
                            O.basename)(f)} already exists` : "check console for more details";
                            new T.Notice(m + h)
                        }
                    z(e, u=>this.plugin.trigger("folder-note:delete", u, b), u=>this.plugin.trigger("folder-note:delete", b, u))
                }
            }
            ;
            this.onDelete = e=>{
                let {getFolderNote: t, getFolderFromNote: r} = this.finder;
                if (e instanceof T.TFolder) {
                    let o = t(e);
                    if (!(this.settings.folderNotePref === 2 && o))
                        return;
                    this.settings.deleteOutsideNoteWithFolder ? this.delete(o) : this.plugin.trigger("folder-note:delete", o, e)
                } else if (e instanceof T.TFile && C(e)) {
                    let o = r(e);
                    o && this.plugin.trigger("folder-note:delete", e, o)
                }
            }
            ;
            this.plugin = e
        }
        get settings() {
            return this.plugin.settings
        }
        get finder() {
            return this.plugin.resolver
        }
        shouldRename(e, t) {
            if (!this.settings.autoRename || !t)
                return !1;
            let r = this.settings.folderNotePref !== 0 && (0,
            O.dirname)(e.path) === (0,
            O.dirname)(t)
              , o = e instanceof T.TFolder && this.settings.folderNotePref === 2 && (0,
            O.dirname)(e.path) !== (0,
            O.dirname)(t);
            return r || o
        }
    }
    ;
    var p = require("obsidian");
    var Ne = {
        folderNotePref: 1,
        deleteOutsideNoteWithFolder: !1,
        indexName: "_about_",
        autoRename: !0,
        folderNoteTemplate: "# {{FOLDER_NAME}}",
        logLevel: 4
    }
      , q = {
        [0]: "Inside Folder, Index File",
        [1]: "Inside Folder, With Same Name",
        [2]: "Outside Folder, With Same Name"
    }
      , X = class extends p.PluginSettingTab {
        constructor(e) {
            super(e.app, e);
            this.plugin = e;
            this.renderCoreSettings = e=>{
                this.setStrategy(e),
                this.plugin.settings.folderNotePref === 0 ? this.setIndexName(e) : this.plugin.settings.folderNotePref === 2 && this.setDeleteWithFolder(e),
                this.setTemplate(e),
                this.plugin.settings.folderNotePref !== 0 && this.setAutoRename(e)
            }
            ;
            this.setLogLevel = e=>{
                new p.Setting(e).setName("Log Level of folder-note-core").setDesc("Change this options if debug is required").addDropdown(t=>t.then(r=>Object.entries(v.levels).forEach(([o,l])=>r.addOption(l.toString(), o))).setValue(v.getLevel().toString()).onChange(r=>w(this, null, function*() {
                    let o = +r;
                    v.setLevel(o),
                    this.plugin.settings.logLevel = o,
                    yield this.plugin.saveSettings()
                })))
            }
            ;
            this.setDeleteWithFolder = e=>{
                new p.Setting(e).setName("Delete Outside Note with Folder").setDesc(createFragment(t=>{
                    t.appendText("Delete folder note outside when folder is deleted"),
                    t.createDiv({
                        text: "Warning: The note will be deleted when the folder is moved outside of vault",
                        cls: "mod-warning"
                    })
                }
                )).addToggle(t=>t.setValue(this.plugin.settings.deleteOutsideNoteWithFolder).onChange(r=>w(this, null, function*() {
                    this.plugin.settings.deleteOutsideNoteWithFolder = r,
                    yield this.plugin.saveSettings()
                })))
            }
            ;
            this.setStrategy = e=>{
                new p.Setting(e).setName("Note File Storage Strategy").setDesc(createFragment(t=>{
                    t.appendText("Select how you would like the folder note to be stored"),
                    t.createEl("br"),
                    t.createEl("a", {
                        href: "https://github.com/aidenlx/alx-folder-note/wiki/folder-note-pref",
                        text: "Check here"
                    }),
                    t.appendText(" for more detail for pros and cons for different strategies")
                }
                )).addDropdown(t=>{
                    t.addOptions(q).setValue(this.plugin.settings.folderNotePref.toString()).onChange(r=>w(this, null, function*() {
                        this.plugin.settings.folderNotePref = +r,
                        this.plugin.trigger("folder-note:cfg-changed"),
                        yield this.plugin.saveSettings()
                    }))
                }
                ),
                new p.Setting(e).setName("Switch Strategy").setDesc(createFragment(t=>{
                    t.appendText("Batch convert existing folder notes to use new storage strategy"),
                    t.createDiv({
                        text: "Warning: This function is experimental and dangerous, make sure to fully backup the vault before the conversion",
                        cls: "mod-warning"
                    })
                }
                )).addButton(t=>t.setTooltip("Open Dialog").setIcon("popup-open").setCta().onClick(()=>new we(this.plugin).open()))
            }
            ;
            this.setIndexName = e=>{
                new p.Setting(e).setName("Name for Index File").setDesc("Set the note name to be recognized as index file for folders").addText(t=>{
                    let r = o=>w(this, null, function*() {
                        this.plugin.settings.indexName = o,
                        this.plugin.trigger("folder-note:cfg-changed"),
                        yield this.plugin.saveSettings()
                    });
                    t.setValue(this.plugin.settings.indexName).onChange((0,
                    p.debounce)(r, 500, !0))
                }
                )
            }
            ;
            this.setTemplate = e=>{
                new p.Setting(e).setName("Folder Note Template").setDesc(createFragment(t=>{
                    t.appendText("The template used to generate new folder note."),
                    t.appendChild(document.createElement("br")),
                    t.appendText("Supported placeholders:"),
                    t.appendChild(document.createElement("br")),
                    t.appendText("{{FOLDER_NAME}} {{FOLDER_PATH}}")
                }
                )).addTextArea(t=>{
                    let r = o=>w(this, null, function*() {
                        this.plugin.settings.folderNoteTemplate = o,
                        yield this.plugin.saveSettings()
                    });
                    t.setValue(this.plugin.settings.folderNoteTemplate).onChange((0,
                    p.debounce)(r, 500, !0)),
                    t.inputEl.rows = 8,
                    t.inputEl.cols = 30
                }
                )
            }
            ;
            this.setAutoRename = e=>{
                new p.Setting(e).setName("Auto Sync").setDesc("Keep name and location of folder note and folder in sync").addToggle(t=>{
                    t.setValue(this.plugin.settings.autoRename),
                    t.onChange(r=>w(this, null, function*() {
                        this.plugin.settings.autoRename = r,
                        yield this.plugin.saveSettings()
                    }))
                }
                )
            }
        }
        display() {
            let {containerEl: e} = this;
            e.empty(),
            this.renderCoreSettings(e)
        }
    }
      , we = class extends p.Modal {
        constructor(e) {
            super(e.app);
            this.plugin = e;
            this.Convert = (e=!1)=>w(this, null, function*() {
                let {From: t, To: r} = this;
                if (this.clear(),
                t === null || r === null)
                    new p.Notice("Please select the strategies to convert from/to first");
                else if (t === r)
                    new p.Notice("Convert between same strategy, skipping...");
                else {
                    let {getFolderNote: o, getFolderNotePath: l} = this.plugin.resolver
                      , i = this.app.vault.getAllLoadedFiles().filter(a=>a instanceof p.TFolder && !a.isRoot()).map(a=>{
                        let g = o(a, t)
                          , F = g ? l(a, r) : null;
                        return g && F ? [g, F] : null
                    }
                    )
                      , s = !1;
                    for (let a of i) {
                        if (!a)
                            continue;
                        let[g,F] = a;
                        (yield this.app.vault.exists(F.path)) ? (s || (s = !0),
                        this.log(`Unable to move file ${g.path}: file exist in ${F.path}`)) : e || this.app.fileManager.renameFile(g, F.path)
                    }
                    s || (e ? this.log("Check complete, no conflict found") : this.log("Batch convert complete"))
                }
            });
            this.fromOptsEl = new p.DropdownComponent(this.titleEl.createDiv({
                text: "From:  "
            })).addOptions(q),
            this.toOptsEl = new p.DropdownComponent(this.titleEl.createDiv({
                text: "To:  "
            })).addOptions(q),
            this.outputEl = new p.TextAreaComponent(this.contentEl).setValue("Hello world").setDisabled(!0).then(t=>{
                t.inputEl.style.width = "100%",
                t.inputEl.rows = 10
            }
            ),
            this.buttonContainerEl = this.modalEl.createDiv({
                cls: "modal-button-container"
            }),
            this.addButton(t=>t.setButtonText("Check Conflicts").onClick(()=>this.Convert(!0))),
            this.addButton(t=>t.setButtonText("Convert").setWarning().onClick(()=>this.Convert())),
            this.addButton(t=>t.setButtonText("Cancel").onClick(this.close.bind(this)))
        }
        addButton(e) {
            let t = new p.ButtonComponent(this.buttonContainerEl);
            return e(t),
            t
        }
        log(e) {
            this.outputEl.setValue(this.outputEl.getValue() + `
` + e)
        }
        clear() {
            this.outputEl.setValue("")
        }
        get From() {
            let e = this.fromOptsEl.getValue();
            return e && A[+e] ? +e : null
        }
        get To() {
            let e = this.toOptsEl.getValue();
            return e && A[+e] ? +e : null
        }
        onOpen() {
            this.clear();
            let e = this.plugin.settings.folderNotePref.toString();
            this.fromOptsEl.setValue(e),
            this.toOptsEl.setValue(e)
        }
    }
    ;
    var Re = "alx-folder-note"
      , Q = "FolderNoteAPIv0"
      , Z = class extends be.Plugin {
        constructor(e, t) {
            super(e, t);
            this.settings = Ne;
            this.vaultHandler = new G(this);
            this.resolver = new j(this);
            this.settingTab = new X(this);
            this.getNewFolderNote = e=>this.settings.folderNoteTemplate.replace(/{{FOLDER_NAME}}/g, e.name).replace(/{{FOLDER_PATH}}/g, e.path);
            v.setDefaultLevel("ERROR");
            let r = this;
            this.api = ce(r),
            (window[Q] = this.api) && this.register(()=>delete window[Q]),
            this.trigger("folder-note:api-ready", this.api),
            this.register(ae(e.fileManager, {
                getNewFileParent(o) {
                    return function(l) {
                        if (e.vault.getConfig("newFileLocation") === "current") {
                            let i = r.settings.folderNotePref;
                            switch (i) {
                            case 0:
                            case 1:
                                break;
                            case 2:
                                {
                                    let s = r.resolver.getFolderFromNote(l);
                                    if (s)
                                        return s;
                                    break
                                }
                            default:
                                (0,
                                Te.default)(i)
                            }
                        }
                        return o.call(e.fileManager, l)
                    }
                }
            }))
        }
        onload() {
            return w(this, null, function*() {
                v.info("loading folder-note-core"),
                yield this.loadSettings(),
                this.app.plugins.enabledPlugins.has(Re) || this.addSettingTab(this.settingTab),
                ge(this),
                he(this),
                this.vaultHandler.registerEvent()
            })
        }
        trigger(...e) {
            let[t,...r] = e;
            this.app.vault.trigger(t, ...r)
        }
        loadSettings() {
            return w(this, null, function*() {
                this.settings = I(I({}, this.settings), yield this.loadData()),
                v.setLevel(this.settings.logLevel)
            })
        }
        saveSettings() {
            return w(this, null, function*() {
                yield this.saveData(this.settings)
            })
        }
    }
    ;
    module.exports = Ie(Ve);

}
)
aidenlx commented 2 years ago

can you check if the debug setting at the bottom of the setting tab is set to debug?

brimwats commented 2 years ago

that was it! should I set it to error?

aidenlx commented 2 years ago

Yes, the default value should be ERROR, is changing it helpful?

brimwats commented 2 years ago

yes thanks! closing