obsidian-pathfinder2e/.obsidian/plugins/pf2-action-icons/main.js

6 lines
5.4 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
*/
var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var C=(s,n)=>{for(var e in n)u(s,e,{get:n[e],enumerable:!0})},D=(s,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of R(n))!$.call(s,i)&&i!==e&&u(s,i,{get:()=>n[i],enumerable:!(t=v(n,i))||t.enumerable});return s};var N=s=>D(u({},"__esModule",{value:!0}),s);var V={};C(V,{ACTION_STRINGS:()=>r,PF2_CLASS:()=>S,TRIGGER_WORD:()=>y,default:()=>d});module.exports=N(V);var f=require("obsidian");var g=require("@codemirror/view"),w=require("@codemirror/state"),T=require("@codemirror/language"),E=require("obsidian"),m=class extends g.WidgetType{constructor(e){super();this.actionText=e}toDOM(e){let t=document.createElement("span");return t.innerText=this.actionText,t.classList.add(S),t}};function P(s){return g.ViewPlugin.fromClass(class{constructor(n){this.decorations=this.buildDecorations(n)}update(n){this.decorations=this.buildDecorations(n.view)}buildDecorations(n){if(!n.state.field(E.editorLivePreviewField))return g.Decoration.none;let e=new w.RangeSetBuilder,t=s.actionReplacements();for(let{from:i,to:x}of n.visibleRanges)(0,T.syntaxTree)(n.state).iterate({from:i,to:x,enter:({node:a})=>{if(!a.type.name.contains("inline-code")||a.type.name.includes("formatting"))return;for(let l of n.state.selection.ranges)if(l.from<=a.to+1&&l.to>=a.from-1)return;let h=n.state.doc.sliceString(a.from,a.to);for(let l of t)if(h.match(l.regex)){e.add(a.from-1,a.to+1,g.Decoration.replace({widget:new m(l.actionText),inclusive:!1,block:!1}));break}}});return e.finish()}},{decorations:n=>n.decorations})}var c=require("obsidian");var o={oneActionString:"1",twoActionString:"2",threeActionString:"3",freeActionString:"0",reactionActionString:"r"},p=class extends c.PluginSettingTab{constructor(e,t){super(e,t);this.plugin=t}display(){let{containerEl:e}=this;e.empty(),new c.Setting(e).setHeading().setName("Actions").setDesc("The text used to identify each action."),new c.Setting(e).setName(createFragment(t=>{t.createSpan({text:r.one,cls:"pf2-actions"}),t.createSpan({text:" One action"})})).addText(t=>t.setPlaceholder(o.oneActionString).setValue(this.plugin.settings.oneActionString).onChange(async i=>{this.plugin.settings.oneActionString=i||o.oneActionString,await this.plugin.saveSettings()})),new c.Setting(e).setName(createFragment(t=>{t.createSpan({text:r.two,cls:"pf2-actions"}),t.createSpan({text:" Two actions"})})).addText(t=>t.setPlaceholder(o.twoActionString).setValue(this.plugin.settings.twoActionString).onChange(async i=>{this.plugin.settings.twoActionString=i||o.twoActionString,await this.plugin.saveSettings()})),new c.Setting(e).setName(createFragment(t=>{t.createSpan({text:r.three,cls:"pf2-actions"}),t.createSpan({text:" Three actions"})})).addText(t=>t.setPlaceholder(o.threeActionString).setValue(this.plugin.settings.threeActionString).onChange(async i=>{this.plugin.settings.threeActionString=i||o.threeActionString,await this.plugin.saveSettings()})),new c.Setting(e).setName(createFragment(t=>{t.createSpan({text:r.free,cls:"pf2-actions"}),t.createSpan({text:" Free action"})})).addText(t=>t.setPlaceholder(o.freeActionString).setValue(this.plugin.settings.freeActionString).onChange(async i=>{this.plugin.settings.freeActionString=i||o.freeActionString,await this.plugin.saveSettings()})),new c.Setting(e).setName(createFragment(t=>{t.createSpan({text:r.reaction,cls:"pf2-actions"}),t.createSpan({text:" Reaction"})})).addText(t=>t.setPlaceholder(o.reactionActionString).setValue(this.plugin.settings.reactionActionString).onChange(async i=>{this.plugin.settings.reactionActionString=i||o.reactionActionString,await this.plugin.saveSettings()}))}};var S="pf2-actions",y="pf2",r={one:"\u2B3B",two:"\u2B3A",three:"\u2B3D",reaction:"\u2B32",free:"\u2B53"},d=class extends f.Plugin{constructor(){super(...arguments);this.editorExtensions=[]}actionReplacements(){let e=y;return[{regex:new RegExp(`^\\s*${e}:\\s*${this.settings.freeActionString}\\s*$`,"ig"),actionText:r.free},{regex:new RegExp(`^\\s*${e}:\\s*${this.settings.oneActionString}\\s*$`,"ig"),actionText:r.one},{regex:new RegExp(`^\\s*${e}:\\s*${this.settings.twoActionString}\\s*$`,"ig"),actionText:r.two},{regex:new RegExp(`^\\s*${e}:\\s*${this.settings.threeActionString}\\s*$`,"ig"),actionText:r.three},{regex:new RegExp(`^\\s*${e}:\\s*${this.settings.reactionActionString}\\s*$`,"ig"),actionText:r.reaction}]}async onload(){await this.loadSettings(),this.addSettingTab(new p(this.app,this)),this.registerMarkdownPostProcessor(this.markdownPostProcessor.bind(this)),this.registerEditorExtension(this.editorExtensions),this.updateExtensions(),console.log("Pathfinder 2E Actions loaded")}async loadSettings(){this.settings=Object.assign({},o,await this.loadData())}updateExtensions(){this.editorExtensions.length=0,this.editorExtensions.push(P(this)),this.app.workspace.updateOptions()}async saveSettings(){await this.saveData(this.settings),this.updateExtensions()}async markdownPostProcessor(e,t){let i=e.querySelectorAll("code");if(!i.length)return;let x=this.actionReplacements();i.forEach(a=>{for(let h of x)if(a.innerText.match(h.regex)){t.addChild(new A(a,h.actionText));break}})}},A=class extends f.MarkdownRenderChild{constructor(e,t){super(e);this.actionText=t}onload(){let e=this.containerEl.createSpan({text:this.actionText,cls:S});this.containerEl.replaceWith(e)}};