124 lines
12 KiB
JavaScript
124 lines
12 KiB
JavaScript
|
|
/*
|
||
|
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||
|
|
if you want to view the source, please visit the github repository of this plugin
|
||
|
|
*/
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
var __defProp = Object.defineProperty;
|
||
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||
|
|
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||
|
|
|
||
|
|
// src/main.ts
|
||
|
|
var main_exports = {};
|
||
|
|
__export(main_exports, {
|
||
|
|
default: () => DisableTabsPlugin
|
||
|
|
});
|
||
|
|
module.exports = __toCommonJS(main_exports);
|
||
|
|
var import_obsidian2 = require("obsidian");
|
||
|
|
|
||
|
|
// src/settings.ts
|
||
|
|
var DEFAULT_SETTINGS = {
|
||
|
|
enabled: true,
|
||
|
|
hideMobileNewTabIcon: false
|
||
|
|
};
|
||
|
|
|
||
|
|
// src/utils/tab-enforcer.ts
|
||
|
|
var TabEnforcer = class {
|
||
|
|
constructor(app) {
|
||
|
|
this.app = app;
|
||
|
|
}
|
||
|
|
enforceSingleTab() {
|
||
|
|
const leaves = [];
|
||
|
|
this.app.workspace.iterateRootLeaves((leaf) => {
|
||
|
|
leaves.push(leaf);
|
||
|
|
});
|
||
|
|
if (leaves.length > 1) {
|
||
|
|
let active = leaves[leaves.length - 1];
|
||
|
|
for (const leaf of leaves) {
|
||
|
|
const view = leaf.view;
|
||
|
|
if (view && "containerEl" in view) {
|
||
|
|
const containerEl = view.containerEl;
|
||
|
|
if (containerEl && containerEl.hasClass("is-active")) {
|
||
|
|
active = leaf;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
leaves.forEach((leaf) => {
|
||
|
|
if (leaf !== active) {
|
||
|
|
leaf.detach();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
// src/ui/settings-tab.ts
|
||
|
|
var import_obsidian = require("obsidian");
|
||
|
|
var DisableTabsSettingTab = class extends import_obsidian.PluginSettingTab {
|
||
|
|
constructor(app, plugin) {
|
||
|
|
super(app, plugin);
|
||
|
|
this.plugin = plugin;
|
||
|
|
this.settings = plugin.settings;
|
||
|
|
}
|
||
|
|
display() {
|
||
|
|
const { containerEl } = this;
|
||
|
|
containerEl.empty();
|
||
|
|
const generalGroup = new import_obsidian.SettingGroup(containerEl);
|
||
|
|
generalGroup.addSetting((setting) => {
|
||
|
|
setting.setName("Hide mobile tabs icon").setDesc("Hide the tabs icon on mobile devices").addToggle(
|
||
|
|
(toggle) => toggle.setValue(this.settings.hideMobileNewTabIcon).onChange(async (value) => {
|
||
|
|
this.settings.hideMobileNewTabIcon = value;
|
||
|
|
await this.plugin.saveSettings();
|
||
|
|
this.plugin.updateMobileTabIconCSS();
|
||
|
|
})
|
||
|
|
);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
// src/main.ts
|
||
|
|
var DisableTabsPlugin = class extends import_obsidian2.Plugin {
|
||
|
|
async onload() {
|
||
|
|
const loadedData = await this.loadData();
|
||
|
|
this.settings = Object.assign({}, DEFAULT_SETTINGS, loadedData);
|
||
|
|
this.tabEnforcer = new TabEnforcer(this.app);
|
||
|
|
this.updateMobileTabIconCSS();
|
||
|
|
this.registerEvent(this.app.workspace.on("layout-change", () => {
|
||
|
|
this.tabEnforcer.enforceSingleTab();
|
||
|
|
}));
|
||
|
|
this.app.workspace.onLayoutReady(() => {
|
||
|
|
this.tabEnforcer.enforceSingleTab();
|
||
|
|
});
|
||
|
|
this.addSettingTab(new DisableTabsSettingTab(this.app, this));
|
||
|
|
}
|
||
|
|
updateMobileTabIconCSS() {
|
||
|
|
if (this.settings.hideMobileNewTabIcon) {
|
||
|
|
document.body.classList.add("disable-tabs-hide-mobile-icon");
|
||
|
|
} else {
|
||
|
|
document.body.classList.remove("disable-tabs-hide-mobile-icon");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async saveSettings() {
|
||
|
|
await this.saveData(this.settings);
|
||
|
|
}
|
||
|
|
onunload() {
|
||
|
|
document.body.classList.remove("disable-tabs-hide-mobile-icon");
|
||
|
|
}
|
||
|
|
};
|
||
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL21haW4udHMiLCAic3JjL3NldHRpbmdzLnRzIiwgInNyYy91dGlscy90YWItZW5mb3JjZXIudHMiLCAic3JjL3VpL3NldHRpbmdzLXRhYi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBEaXNhYmxlVGFic1NldHRpbmdzLCBERUZBVUxUX1NFVFRJTkdTIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcbmltcG9ydCB7IFRhYkVuZm9yY2VyIH0gZnJvbSBcIi4vdXRpbHMvdGFiLWVuZm9yY2VyXCI7XG5pbXBvcnQgeyBEaXNhYmxlVGFic1NldHRpbmdUYWIgfSBmcm9tIFwiLi91aS9zZXR0aW5ncy10YWJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlzYWJsZVRhYnNQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBzZXR0aW5ncyE6IERpc2FibGVUYWJzU2V0dGluZ3M7XG4gIHByaXZhdGUgdGFiRW5mb3JjZXIhOiBUYWJFbmZvcmNlcjtcblxuICBhc3luYyBvbmxvYWQoKSB7XG4gICAgLy8gTG9hZCBzZXR0aW5nc1xuICAgIGNvbnN0IGxvYWRlZERhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgUGFydGlhbDxEaXNhYmxlVGFic1NldHRpbmdzPiB8IG51bGw7XG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIGxvYWRlZERhdGEpO1xuICAgIFxuICAgIC8vIEluaXRpYWxpemUgdGFiIGVuZm9yY2VyXG4gICAgdGhpcy50YWJFbmZvcmNlciA9IG5ldyBUYWJFbmZvcmNlcih0aGlzLmFwcCk7XG5cbiAgICAvLyBBcHBseSBtb2JpbGUgdGFiIGljb24gQ1NTIGlmIGVuYWJsZWRcbiAgICB0aGlzLnVwZGF0ZU1vYmlsZVRhYkljb25DU1MoKTtcblxuICAgIC8vIEhvb2sgaW50byB0aGUgd29ya3NwYWNlIHRvIGVuZm9yY2Ugc2luZ2xlIHRhYiBvbiBsYXlvdXQgY2hhbmdlc1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJsYXlvdXQtY2hhbmdlXCIsICgpID0+IHtcbiAgICAgIHRoaXMudGFiRW5mb3JjZXIuZW5mb3JjZVNpbmdsZVRhYigpO1xuICAgIH0pKTtcblxuICAgIC8vIEFsc28gZW5mb3JjZSBvbiBpbml0aWFsIGxheW91dCByZWFkeVxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcbiAgICAgIHRoaXMudGFiRW5mb3JjZXIuZW5mb3JjZVNpbmdsZVRhYigpO1xuICAgIH0pO1xuXG4gICAgLy8gUmVnaXN0ZXIgc2V0dGluZ3MgdGFiXG4gICAgdGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBEaXNhYmxlVGFic1NldHRpbmdUYWIodGhpcy5hcHAsIHRoaXMpKTtcbiAgfVxuXG4gIHVwZGF0ZU1vYmlsZVRhYkljb25DU1MoKTogdm9pZCB7XG4gICAgLy8gVG9nZ2xlIENTUyBjbGFzcyBvbiBib2R5IGVsZW1lbnQgYmFzZWQgb24gc2V0dGluZ1xuICAgIGlmICh0aGlzLnNldHRpbmdzLmhpZGVNb2JpbGVOZXdUYWJJY29uKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJkaXNhYmxlLXRhYnMtaGlkZS1tb2JpbGUtaWNvblwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiZGlzYWJsZS10YWJzLWhpZGUtbW9iaWxlLWljb25cIik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZVNldHRpbmdzKCkge1xuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG4gIH1cblxuICBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICAvLyBDbGVhbiB1cCBDU1MgY2xhc3NcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJkaXNhYmxlLXRhYnMtaGlkZS1tb2JpbGUtaWNvblwiKTtcbiAgfVxufVxuIiwgImV4cG9ydCBpbnRlcmZhY2UgRGlzYWJsZVRhYnNTZXR0aW5ncyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGhpZGVNb2JpbGVOZXdUYWJJY29uOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogRGlzYWJsZVRhYnNTZXR0aW5ncyA9IHtcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgaGlkZU1vYmlsZU5ld1RhYkljb246IGZhbHNlLFxufTtcbiIsICJpbXBvcnQgeyBBcHAsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuZXhwb3J0IGNsYXNzIFRhYkVuZm9yY2VyIHtcbiAgcHJpdmF0ZSBhcHA6IEFwcDtcblxuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCkge1xuICAgIHRoaXMuYXBwID0gYXBwO1xuICB9XG5cbiAgZW5mb3JjZVNpbmdsZVRhYigpOiB2b2lkIHtcbiAgICBjb25zdCBsZWF2ZXM6IFdvcmtzcGFjZUxlYWZbXSA9IFtdO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5pdGVyYXRlUm9vdExlYXZlcyhsZWFmID0+IHtcbiAgICAgIGxlYXZlcy5wdXNoKGxlYWYpO1xuICAgIH0pO1xuXG4gICAgaWYgKGxlYXZlcy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBGaW5kIHRoZSBhY3RpdmUgbGVhZiAodGhlIG9uZSB0aGF0IGp1c3Qgb3BlbmVkIG9yIGlzIGN1cnJlbnRseSBhY3RpdmUpXG4gICAgICAvLyBQcmVmZXIgdGhlIGxhc3QgbGVhZiBhcyBpdCdzIG1vc3QgbGlrZWx5IHRoZSBuZXdseSBvcGVuZWQgb25lXG4gICAgICBsZXQgYWN0aXZlOiBXb3Jrc3BhY2VMZWFmIHwgbnVsbCA9IGxlYXZlc1tsZWF2ZXMubGVuZ3RoIC0gMV07XG4gICAgICBcbiAgICAgIC8vIFZlcmlmeSBpdCdzIGFjdHVhbGx5IGFjdGl2ZSBieSBjaGVja2luZyBmb3IgdGhlIGlzLWFjdGl2ZSBjbGFzc1xuICAgICAgZm9yIChjb25zdCBsZWFmIG9mIGxlYXZlcykge1xuICAgICAgICBjb25zdCB2aWV3ID0gbGVhZi52aWV3O1xuICAgICAgICBpZiAodmlldyAmJiAnY29udGFpbmVyRWwnIGluIHZpZXcpIHtcbiAgICAgICAgICBjb25zdCBjb250YWluZXJFbCA9ICh2aWV3IGFzIHsgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50IH0pLmNvbnRhaW5lckVsO1xuICAgICAgICAgIGlmIChjb250YWluZXJFbCAmJiBjb250YWluZXJFbC5oYXNDbGFzcygnaXMtYWN0aXZlJykpIHtcbiAgICAgICAgICAgIGFjdGl2ZSA9IGxlYWY7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgI
|