/* 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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