74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
/*
|
|
THIS IS A GENERATED/BUNDLED FILE BY ROLLUP
|
|
if you want to view the source, please visit the github repository of this plugin
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var obsidian = require('obsidian');
|
|
|
|
class CycleInSidebarPlugin extends obsidian.Plugin {
|
|
getLeavesOfSidebar(split) {
|
|
const oneSideSplitRoot = split.getRoot();
|
|
const leaves = [];
|
|
this.app.workspace.iterateAllLeaves(l => { leaves.push(l); });
|
|
const leavesInOneSide = leaves
|
|
.filter(l => l.getRoot() === oneSideSplitRoot)
|
|
.filter(l => l.view.getViewType() !== 'empty');
|
|
if (leavesInOneSide.length == 0)
|
|
return leaves;
|
|
// filter only first container (if top/ bottom views)
|
|
const parent = leavesInOneSide[0].parent;
|
|
return leavesInOneSide.filter(l => l.parent == parent);
|
|
}
|
|
isSidebarOpen(split) {
|
|
return this.getLeavesOfSidebar(split).some(l => l.view.containerEl.clientHeight > 0);
|
|
}
|
|
cycleInSideBar(split, offset) {
|
|
const leaves = this.getLeavesOfSidebar(split);
|
|
var currentIndex = 0;
|
|
for (currentIndex = 0; currentIndex < leaves.length; currentIndex++) {
|
|
if (leaves[currentIndex].view.containerEl.clientHeight > 0)
|
|
break;
|
|
}
|
|
if (currentIndex == leaves.length)
|
|
return;
|
|
const nextIndex = ((currentIndex + offset) < 0 ? (leaves.length - 1) : (currentIndex + offset)) % leaves.length;
|
|
this.app.workspace.revealLeaf(leaves[nextIndex]);
|
|
}
|
|
async cycleRightSideBar(offset) {
|
|
this.cycleInSideBar(this.app.workspace.rightSplit, offset);
|
|
}
|
|
async cycleLeftSideBar(offset) {
|
|
this.cycleInSideBar(this.app.workspace.leftSplit, offset);
|
|
}
|
|
async onload() {
|
|
this.addCommand({
|
|
id: 'cycle-right-sidebar',
|
|
name: 'Cycle tabs of right sidebar',
|
|
callback: () => { this.cycleRightSideBar(1); }
|
|
});
|
|
this.addCommand({
|
|
id: 'cycle-right-sidebar-reverse',
|
|
name: 'Cycle tabs of right sidebar in reverse',
|
|
callback: () => { this.cycleRightSideBar(-1); }
|
|
});
|
|
this.addCommand({
|
|
id: 'cycle-left-sidebar',
|
|
name: 'Cycle tabs of left sidebar',
|
|
callback: () => { this.cycleLeftSideBar(1); }
|
|
});
|
|
this.addCommand({
|
|
id: 'cycle-left-sidebar-reverse',
|
|
name: 'Cycle tabs of left sidebar in reverse',
|
|
callback: () => { this.cycleLeftSideBar(-1); }
|
|
});
|
|
}
|
|
onunload() {
|
|
}
|
|
}
|
|
|
|
module.exports = CycleInSidebarPlugin;
|
|
|
|
|
|
/* nosourcemap */ |