181 lines
15 KiB
JavaScript
181 lines
15 KiB
JavaScript
/*
|
|
THIS IS A GENERATED/BUNDLED FILE BY ROLLUP
|
|
if you want to view the source visit the plugins github repository
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var obsidian = require('obsidian');
|
|
|
|
/******************************************************************************
|
|
Copyright (c) Microsoft Corporation.
|
|
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
purpose with or without fee is hereby granted.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
PERFORMANCE OF THIS SOFTWARE.
|
|
***************************************************************************** */
|
|
|
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
}
|
|
|
|
class FocusMode extends obsidian.Plugin {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.focusModeActive = false;
|
|
this.maximisedClass = "maximised";
|
|
this.focusModeClass = "focus-mode";
|
|
this.superFocusModeClass = "super-focus-mode";
|
|
}
|
|
storeSplitsValues() {
|
|
// @ts-ignore
|
|
this.leftSplitCollapsed = this.app.workspace.leftSplit.collapsed;
|
|
// @ts-ignore
|
|
this.rightSplitCollapsed = this.app.workspace.rightSplit.collapsed;
|
|
}
|
|
collapseSplits() {
|
|
// @ts-ignore
|
|
this.app.workspace.leftSplit.collapse();
|
|
// @ts-ignore
|
|
this.app.workspace.rightSplit.collapse();
|
|
}
|
|
restoreSplits() {
|
|
if (!this.leftSplitCollapsed) {
|
|
// @ts-ignore
|
|
this.app.workspace.leftSplit.expand();
|
|
}
|
|
if (!this.rightSplitCollapsed) {
|
|
// @ts-ignore
|
|
this.app.workspace.rightSplit.expand();
|
|
}
|
|
}
|
|
removeExtraneousClasses() {
|
|
if (
|
|
// @ts-ignore
|
|
this.app.workspace.rootSplit.containerEl.hasClass(this.maximisedClass)) {
|
|
// @ts-ignore
|
|
this.app.workspace.rootSplit.containerEl.removeClass(this.maximisedClass);
|
|
// @ts-ignore
|
|
this.app.workspace.onLayoutChange();
|
|
}
|
|
if (document.body.classList.contains(this.superFocusModeClass)) {
|
|
document.body.classList.remove(this.superFocusModeClass);
|
|
}
|
|
}
|
|
sharedFocusModeCommands() {
|
|
this.focusModeActive = true;
|
|
// @ts-ignore
|
|
this.app.on("active-leaf-change", () => {
|
|
try {
|
|
// @ts-ignore
|
|
this.app.workspace.activeLeaf.view.editor.blur();
|
|
// @ts-ignore
|
|
this.app.workspace.activeLeaf.view.editor.focus();
|
|
// @ts-ignore
|
|
this.app.workspace.activeLeaf.view.editor.refresh();
|
|
}
|
|
catch (ignore) { }
|
|
});
|
|
if (!document.body.classList.contains(this.focusModeClass)) {
|
|
this.storeSplitsValues();
|
|
}
|
|
this.collapseSplits();
|
|
}
|
|
enableSuperFocusMode() {
|
|
this.sharedFocusModeCommands();
|
|
// @ts-ignore
|
|
this.app.workspace.rootSplit.containerEl.toggleClass(this.maximisedClass,
|
|
// @ts-ignore
|
|
!this.app.workspace.rootSplit.containerEl.hasClass(this.maximisedClass));
|
|
document.body.classList.toggle(this.superFocusModeClass, !document.body.classList.contains(this.superFocusModeClass));
|
|
if (!document.body.classList.contains(this.focusModeClass)) {
|
|
document.body.classList.add(this.focusModeClass);
|
|
}
|
|
if (document.body.classList.contains(this.superFocusModeClass)) {
|
|
Array.from(document.querySelectorAll(`.${this.superFocusModeClass} .workspace-split`)).forEach((node) => {
|
|
const theNode = node;
|
|
const hasActiveKids = theNode.querySelector(".mod-active");
|
|
if (hasActiveKids) {
|
|
theNode.style.display = "flex";
|
|
}
|
|
else {
|
|
theNode.style.display = "none";
|
|
}
|
|
});
|
|
}
|
|
// @ts-ignore
|
|
this.app.workspace.onLayoutChange();
|
|
}
|
|
enableFocusMode() {
|
|
this.sharedFocusModeCommands();
|
|
this.removeExtraneousClasses();
|
|
document.body.classList.toggle(this.focusModeClass, !document.body.classList.contains(this.focusModeClass));
|
|
}
|
|
disableFocusMode() {
|
|
this.removeExtraneousClasses();
|
|
if (document.body.classList.contains(this.focusModeClass)) {
|
|
document.body.classList.remove(this.focusModeClass);
|
|
}
|
|
this.restoreSplits();
|
|
Array.from(document.querySelectorAll(".workspace-split")).forEach((node) => {
|
|
const theNode = node;
|
|
theNode.style.display = "flex";
|
|
});
|
|
this.focusModeActive = false;
|
|
}
|
|
toggleFocusMode(superFocus = false) {
|
|
if (superFocus) {
|
|
this.enableSuperFocusMode();
|
|
}
|
|
else if (this.focusModeActive) {
|
|
this.disableFocusMode();
|
|
}
|
|
else {
|
|
this.enableFocusMode();
|
|
}
|
|
}
|
|
onload() {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
console.log("Loading Focus Mode plugin ...");
|
|
this.addRibbonIcon("enter", "Toggle Focus Mode (Shift + Click to show active pane only)", (event) => {
|
|
this.toggleFocusMode(event.shiftKey);
|
|
});
|
|
this.addCommand({
|
|
id: "toggle-focus-mode",
|
|
name: "Toggle Focus Mode",
|
|
callback: () => {
|
|
this.toggleFocusMode();
|
|
},
|
|
hotkeys: [{ modifiers: ["Alt", "Mod"], key: "Z" }],
|
|
});
|
|
this.addCommand({
|
|
id: "toggle-super-focus-mode",
|
|
name: "Toggle Super Focus Mode (Active pane only)",
|
|
callback: () => {
|
|
this.toggleFocusMode(true);
|
|
},
|
|
hotkeys: [{ modifiers: ["Alt", "Mod", "Shift"], key: "Z" }],
|
|
});
|
|
});
|
|
}
|
|
onunload() {
|
|
console.log("Unloading Focus Mode plugin ...");
|
|
}
|
|
}
|
|
|
|
module.exports = FocusMode;
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxN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
|