lotus/.obsidian/plugins/OA-file-hider/main.js

239 lines
7.3 KiB
JavaScript
Executable file

/*
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __export = (target, all) => {
__markAsModule(target);
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __reExport = (target, module2, desc) => {
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
for (let key of __getOwnPropNames(module2))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
}
return target;
};
var __toModule = (module2) => {
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
};
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// src/main.ts
__export(exports, {
default: () => FileHider
});
// src/commands/toggleVisibility.ts
var VisibilityToggleCommand = class {
constructor(plugin) {
plugin.addCommand({
id: "oa-fh-toggle-visibility",
name: "Toggle Visibility",
callback: () => {
plugin.toggleVisibility();
}
});
}
};
// src/settings/hiddenToggle.ts
var import_obsidian = __toModule(require("obsidian"));
var VisibilityToggleSetting = class {
static create(plugin, container) {
return new import_obsidian.Setting(container).setName(`Hidden File Visibility`).setDesc(`Toggle whether or not files and folders that are told to be hidden will be hidden or not.`).addToggle((toggle) => {
toggle.setValue(!plugin.settings.hidden).onChange(() => {
plugin.toggleVisibility();
});
});
}
};
// src/main.ts
var import_obsidian4 = __toModule(require("obsidian"));
// src/settings/manageHiddenPaths.ts
var import_obsidian3 = __toModule(require("obsidian"));
// src/modals/HiddenList.ts
var import_obsidian2 = __toModule(require("obsidian"));
var HiddenPathsModal = class extends import_obsidian2.Modal {
constructor(plugin) {
super(plugin.app);
this.plugin = plugin;
}
onOpen() {
const { contentEl: content } = this;
content.createEl(`h1`, { text: `Hidden Files and Folders` });
content.createEl(`hr`);
let body = content.createEl(`div`, { cls: `hidden-list-modal-body` });
this.plugin.settings.hiddenList.forEach((path) => {
let c = body.createEl(`div`);
new import_obsidian2.Setting(c).setName(path).addButton((btn) => {
btn.setIcon(`cross`).setTooltip(`Remove`).onClick((e) => {
this.plugin.unhidePath(path);
c.hide();
});
});
});
}
onClose() {
const { contentEl } = this;
contentEl.empty();
}
};
// src/settings/manageHiddenPaths.ts
var ManageHiddenPaths = class {
static create(plugin, container) {
return new import_obsidian3.Setting(container).setName(`Hidden Files and Folders`).setDesc(`Add or remove files and folders from the list that are being hidden`).addButton((b) => {
b.setButtonText(`Manage`).onClick((event) => {
if (!event.isTrusted) {
return;
}
new HiddenPathsModal(plugin).open();
});
});
}
};
// src/utils.ts
function changePathVisibility(path, hide) {
let n = document.querySelector(`[data-path="${path}"]`);
if (!n) {
return;
}
;
let p = n.parentElement;
if (hide) {
p.style.display = `none`;
} else {
p.style.display = ``;
}
;
}
// src/main.ts
var FileHider = class extends import_obsidian4.Plugin {
constructor() {
super(...arguments);
this.settings = {
hidden: true,
hiddenList: []
};
this.style = null;
}
onload() {
return __async(this, null, function* () {
yield this.loadSettings();
this.registerEvent(this.app.workspace.on(`file-menu`, (menu, file) => {
if (file instanceof import_obsidian4.TFolder) {
menu.addItem((i) => {
if (this.settings.hiddenList.includes(file.path)) {
i.setTitle(`Unhide Folder`).setIcon(`eye`).onClick(() => {
this.unhidePath(file.path);
});
} else {
i.setTitle(`Hide Folder`).setIcon(`eye-off`).onClick(() => {
changePathVisibility(file.path, this.settings.hidden);
this.settings.hiddenList.push(file.path);
this.saveSettings();
});
}
;
});
} else {
menu.addItem((i) => {
if (this.settings.hiddenList.includes(file.path)) {
i.setTitle(`Unhide File`).setIcon(`eye`).onClick((e) => {
this.unhidePath(file.path);
});
} else {
i.setTitle(`Hide File`).setIcon(`eye-off`).onClick((e) => {
changePathVisibility(file.path, this.settings.hidden);
this.settings.hiddenList.push(file.path);
this.saveSettings();
});
}
;
});
}
;
}));
this.app.workspace.onLayoutReady(() => {
setTimeout(() => {
for (const path of this.settings.hiddenList) {
changePathVisibility(path, this.settings.hidden);
}
;
}, 200);
});
new VisibilityToggleCommand(this);
this.addSettingTab(new FileHiderSettingsTab(this.app, this));
});
}
loadSettings() {
return __async(this, null, function* () {
this.settings = Object.assign({}, this.settings, yield this.loadData());
});
}
saveSettings() {
return __async(this, null, function* () {
yield this.saveData(this.settings);
});
}
toggleVisibility() {
this.settings.hidden = !this.settings.hidden;
for (const path of this.settings.hiddenList) {
changePathVisibility(path, this.settings.hidden);
}
;
this.saveSettings();
}
unhidePath(path) {
let i = this.settings.hiddenList.indexOf(path);
this.settings.hiddenList.splice(i, 1);
changePathVisibility(path, false);
this.saveSettings();
}
};
var FileHiderSettingsTab = class extends import_obsidian4.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl: container } = this;
container.empty();
VisibilityToggleSetting.create(this.plugin, container);
ManageHiddenPaths.create(this.plugin, container);
}
};