-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.js
More file actions
15 lines (14 loc) · 16.7 KB
/
Copy pathmain.js
File metadata and controls
15 lines (14 loc) · 16.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
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 b=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var Y=(a,t)=>{for(var e in t)b(a,e,{get:t[e],enumerable:!0})},G=(a,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Q(t))!U.call(a,i)&&i!==e&&b(a,i,{get:()=>t[i],enumerable:!(r=q(t,i))||r.enumerable});return a};var W=a=>G(b({},"__esModule",{value:!0}),a);var _={};Y(_,{default:()=>T});module.exports=W(_);var $=require("obsidian");var d=require("obsidian");var E={name:"AnuPpuccin Theme",statuses:[{character:" ",title:"Unchecked"},{character:"x",title:"Checked"},{character:">",title:"Rescheduled"},{character:"<",title:"Scheduled"},{character:"!",title:"Important"},{character:"-",title:"Cancelled"},{character:"/",title:"In Progress"},{character:"?",title:"Question"},{character:"*",title:"Star"},{character:"n",title:"Note"},{character:"l",title:"Location"},{character:"i",title:"Information"},{character:"I",title:"Idea"},{character:"S",title:"Amount"},{character:"p",title:"Pro"},{character:"c",title:"Con"},{character:"b",title:"Bookmark"},{character:'"',title:"Quote"},{character:"0",title:"Speech bubble 0"},{character:"1",title:"Speech bubble 1"},{character:"2",title:"Speech bubble 2"},{character:"3",title:"Speech bubble 3"},{character:"4",title:"Speech bubble 4"},{character:"5",title:"Speech bubble 5"},{character:"6",title:"Speech bubble 6"},{character:"7",title:"Speech bubble 7"},{character:"8",title:"Speech bubble 8"},{character:"9",title:"Speech bubble 9"}]};var L={name:"Aura Theme",statuses:[{character:" ",title:"incomplete"},{character:"x",title:"complete / done"},{character:"-",title:"cancelled"},{character:">",title:"deferred"},{character:"/",title:"in progress, or half-done"},{character:"!",title:"Important"},{character:"?",title:"question"},{character:"R",title:"review"},{character:"+",title:"Inbox / task that should be processed later"},{character:"b",title:"bookmark"},{character:"B",title:"brainstorm"},{character:"D",title:"deferred or scheduled"},{character:"I",title:"Info"},{character:"i",title:"idea"},{character:"N",title:"note"},{character:"Q",title:"quote"},{character:"W",title:"win / success / reward"},{character:"P",title:"pro"},{character:"C",title:"con"}]};var v={name:"Ebullientworks Theme",statuses:[{character:" ",title:"Unchecked"},{character:"x",title:"Checked"},{character:"-",title:"Cancelled"},{character:"/",title:"In Progress"},{character:">",title:"Deferred"},{character:"!",title:"Important"},{character:"?",title:"Question"},{character:"r",title:"Review"}]};var M={name:"ITS Theme with SlRvb Checkboxes",statuses:[{character:" ",title:"Unchecked"},{character:"x",title:"Regular"},{character:"X",title:"Checked"},{character:"-",title:"Dropped"},{character:">",title:"Forward"},{character:"D",title:"Date"},{character:"?",title:"Question"},{character:"/",title:"Half Done"},{character:"+",title:"Add"},{character:"R",title:"Research"},{character:"!",title:"Important"},{character:"i",title:"Idea"},{character:"B",title:"Brainstorm"},{character:"P",title:"Pro"},{character:"C",title:"Con"},{character:"Q",title:"Quote"},{character:"N",title:"Note"},{character:"b",title:"Bookmark"},{character:"I",title:"Information"},{character:"p",title:"Paraphrase"},{character:"L",title:"Location"},{character:"E",title:"Example"},{character:"A",title:"Answer"},{character:"r",title:"Reward"},{character:"c",title:"Choice"},{character:"d",title:"Doing"},{character:"T",title:"Time"},{character:"@",title:"Character / Person"},{character:"t",title:"Talk"},{character:"O",title:"Outline / Plot"},{character:"~",title:"Conflict"},{character:"W",title:"World"},{character:"f",title:"Clue / Find"},{character:"F",title:"Foreshadow"},{character:"H",title:"Favorite / Health"},{character:"&",title:"Symbolism"},{character:"s",title:"Secret"}]};var P={name:"LYT Mode Theme",statuses:[{character:" ",title:"Unchecked"},{character:"x",title:"Checked"},{character:">",title:"Rescheduled"},{character:"<",title:"Scheduled"},{character:"!",title:"Important"},{character:"-",title:"Cancelled"},{character:"/",title:"In Progress"},{character:"?",title:"Question"},{character:"*",title:"Star"},{character:"n",title:"Note"},{character:"l",title:"Location"},{character:"i",title:"Information"},{character:"I",title:"Idea"},{character:"S",title:"Amount"},{character:"p",title:"Pro"},{character:"c",title:"Con"},{character:"b",title:"Bookmark"},{character:"f",title:"Fire"},{character:"k",title:"Key"},{character:"w",title:"Win"},{character:"u",title:"Up"},{character:"d",title:"Down"}]};var C={name:"Minimal Theme",statuses:[{character:" ",title:"to-do"},{character:"/",title:"incomplete"},{character:"x",title:"done"},{character:"-",title:"canceled"},{character:">",title:"forwarded"},{character:"<",title:"scheduling"},{character:"?",title:"question"},{character:"!",title:"important"},{character:"*",title:"star"},{character:'"',title:"quote"},{character:"l",title:"location"},{character:"b",title:"bookmark"},{character:"i",title:"information"},{character:"S",title:"savings"},{character:"I",title:"idea"},{character:"p",title:"pros"},{character:"c",title:"cons"},{character:"f",title:"fire"},{character:"k",title:"key"},{character:"w",title:"win"},{character:"u",title:"up"},{character:"d",title:"down"}]};var y={name:"Things Theme",statuses:[{character:" ",title:"to-do"},{character:"/",title:"incomplete"},{character:"x",title:"done"},{character:"-",title:"canceled"},{character:">",title:"forwarded"},{character:"<",title:"scheduling"},{character:"?",title:"question"},{character:"!",title:"important"},{character:"*",title:"star"},{character:'"',title:"quote"},{character:"l",title:"location"},{character:"b",title:"bookmark"},{character:"i",title:"information"},{character:"S",title:"savings"},{character:"I",title:"idea"},{character:"p",title:"pros"},{character:"c",title:"cons"},{character:"f",title:"fire"},{character:"k",title:"key"},{character:"w",title:"win"},{character:"u",title:"up"},{character:"d",title:"down"}]};var R={name:"Border Theme",statuses:[{character:" ",title:"To Do"},{character:"/",title:"In Progress"},{character:"x",title:"Done"},{character:"-",title:"Canceled"},{character:">",title:"Rescheduled"},{character:"<",title:"Scheduled"},{character:"!",title:"Important"},{character:"?",title:"Question"},{character:"i",title:"Information"},{character:"S",title:"Amount"},{character:"*",title:"Star"},{character:"b",title:"Bookmark"},{character:'"',title:"Quote"},{character:"n",title:"Note"},{character:"l",title:"Location"},{character:"I",title:"Idea"},{character:"p",title:"Pro"},{character:"c",title:"Con"},{character:"u",title:"up"},{character:"d",title:"down"}]};var D=[E,L,v,M,P,C,y,R];var X={checkboxOptions:[{title:"to-do",character:" "},{title:"incomplete",character:"/"},{title:"done",character:"x"},{title:"canceled",character:"-"},{title:"forwarded",character:">"},{title:"scheduling",character:"<"},{title:"question",character:"?"},{title:"important",character:"!"},{title:"star",character:"*"},{title:"quote",character:'"'},{title:"location",character:"l"},{title:"bookmark",character:"b"},{title:"information",character:"i"},{title:"savings",character:"S"},{title:"idea",character:"I"},{title:"pros",character:"p"},{title:"cons",character:"c"},{title:"fire",character:"f"},{title:"key",character:"k"},{title:"win",character:"w"},{title:"up",character:"u"},{title:"down",character:"d"},{title:"draft pull request",character:"D"},{title:"open pull request",character:"P"},{title:"merged pull request",character:"M"}],enableReadingModeLongPress:!0,longPressDurationMs:500},g=X;function O(a,t,e){if(t<0||t>=a.length||e<0||e>=a.length)return;let r=a[t];a[t]=a[e],a[e]=r}function j(a,t){if(t<0||t>=a.length)return;let e=a.splice(t,1)[0];e!==void 0&&a.unshift(e)}var m=class extends d.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}display(){let{containerEl:t}=this;t.empty(),this.displayReadingModeOptions(),this.displayTaskStatuses(),this.displayListActions(),this.displayImportOptions()}displayReadingModeOptions(){new d.Setting(this.containerEl).setName("Long-press checkbox to pick status").setDesc("Long-press (or right-click) a task checkbox in reading mode or live preview to open the status picker. Native click still toggles done/not-done.").addToggle(t=>{t.setValue(this.plugin.settings.enableReadingModeLongPress).onChange(async e=>{this.plugin.settings.enableReadingModeLongPress=e,await this.plugin.saveSettings()})}),new d.Setting(this.containerEl).setName("Long-press duration (ms)").setDesc("Time to hold the checkbox before the status picker opens.").addText(t=>{t.setValue(String(this.plugin.settings.longPressDurationMs)).onChange(async e=>{let r=Number.parseInt(e,10);Number.isFinite(r)&&r>=100&&r<=5e3&&(this.plugin.settings.longPressDurationMs=r,await this.plugin.saveSettings())})})}displayTaskStatuses(){this.plugin.settings.checkboxOptions.forEach((t,e)=>{new d.Setting(this.containerEl).setName(`${(e+1).toString().padStart(2,"0")}.`).addText(async r=>{r.setPlaceholder("name").setValue(t.title).onChange(async i=>{this.plugin.settings.checkboxOptions[e].title=i,this.plugin.saveSettings()})}).addText(async r=>{r.setPlaceholder("character").setValue(t.character).onChange(async i=>{this.plugin.settings.checkboxOptions[e].character=i,this.plugin.saveSettings()})}).addExtraButton(r=>{r.setIcon("double-up-arrow-glyph").setTooltip("Move to top").onClick(()=>{j(this.plugin.settings.checkboxOptions,e),this.plugin.saveSettings(),this.display()})}).addExtraButton(r=>{r.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{O(this.plugin.settings.checkboxOptions,e,e-1),this.plugin.saveSettings(),this.display()})}).addExtraButton(r=>{r.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{O(this.plugin.settings.checkboxOptions,e,e+1),this.plugin.saveSettings(),this.display()})}).addExtraButton(r=>{r.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.checkboxOptions.splice(e,1),this.plugin.saveSettings(),this.display()})})})}displayListActions(){new d.Setting(this.containerEl).setName("Status List Actions").addButton(t=>{t.setButtonText("Clear list").setWarning().onClick(()=>{this.plugin.settings.checkboxOptions=[],this.plugin.saveSettings(),this.display()})}).addButton(t=>{t.setButtonText("Reset to default").onClick(()=>{this.plugin.settings=structuredClone(g),this.plugin.saveSettings(),this.display()})}).addButton(t=>{t.setButtonText("Add new status").setCta().onClick(()=>{this.plugin.settings.checkboxOptions.push({title:"undefined",character:"x"}),this.plugin.saveSettings(),this.display()})})}displayImportOptions(){D.forEach(({name:t,statuses:e})=>{new d.Setting(this.containerEl).setName(t).setDesc(`Add any missing custom checkbox statuses supported by the ${t}.`).addButton(r=>{r.setButtonText(t).onClick(async()=>{e.forEach(i=>{this.plugin.settings.checkboxOptions.some(o=>o.character==i.character)||this.plugin.settings.checkboxOptions.push({...i})}),this.plugin.saveSettings(),this.display()})})})}};var k=require("obsidian");var A=require("obsidian");var c=class c{constructor(t){this.DEBUG=!0;this.editor=t}swap(t){this.editor.listSelections().forEach(r=>{this.transformSelectionOrLine(r,t)})}transformSelectionOrLine(t,e){this.log(`selection:
${t}`),t.anchor.line===t.head.line&&t.anchor.ch===t.head.ch?this.transformLine(t.anchor,e):this.transformSelection(t,e)}transformLine(t,e){let r=t.line,i=this.editor.getLine(r),s=c.replaceLine(i,e);this.editor.setLine(r,s);let o=i.length===s.length?t.ch:t.ch+s.length-i.length;this.editor.setSelection({line:r,ch:o})}static replaceLine(t,e){return c.taskRegex.lastIndex=0,c.taskRegex.test(t)?c.transformTasks(t,e):(c.nonTaskRegex.lastIndex=0,c.nonTaskRegex.test(t)?c.transformNonTasks(t,e):(c.blankLineRegex.lastIndex=0,c.blankLineRegex.test(t)?c.transformBlankLines(t,e):t))}static transformTasks(t,e){return c.taskRegex.lastIndex=0,t.replace(c.taskRegex,`$1[${e}]$2`)}static transformNonTasks(t,e){c.nonTaskRegex.lastIndex=0;let r=c.nonTaskRegex.exec(t);if(r===null)return t;let i=r[3]||"-";return t.replace(c.nonTaskRegex,`$2${i} [${e}] $4`)}static transformBlankLines(t,e){return c.blankLineRegex.lastIndex=0,t.replace(c.blankLineRegex,`$1- [${e}] `)}transformSelection(t,e){this.log("start transformSelection"),this.log("selection",t);let{anchor:r,head:i}=t,s=r.ch<=i.ch&&r.line<=i.line,o=s?r:i,h=s?i:r;o.ch=0,h.ch=0,h.line+=1;let l=this.editor.getRange(o,h);c.taskRegex.lastIndex=0,c.taskRegex.test(l)&&(l=c.transformTasks(l,e)),c.nonTaskRegex.lastIndex=0,c.nonTaskRegex.test(l)&&(l=c.transformNonTasks(l,e)),this.log("replacement",l),this.editor.replaceRange(l,o,h)}log(...t){this.DEBUG&&console.log(...t)}};c.taskRegex=/^([\s>]*[-*+]\s)\[[^\]]\](?!\()(.*)$/gm,c.nonTaskRegex=/(?!^#+)(?!^\s*$)(?!^\s{0,3}([-_*])\s*(?:\1 *){2,}$)(?!^[\s>]* \[![\w-]+\])^(?!(?:\s*>?)*\s*[-*+]\s+\[[^\]]\](?!\())([>\s]*)?(?:(?:([-*+])|[0-9]+\.)\s)?(.*)/gm,c.blankLineRegex=/^(\s*)$/gm;var S=c,f=S;function w(a,t,e){let r=a.split(`
`);if(t<0||t>=r.length)return a;let i=r[t];if(i===void 0)return a;let s=f.replaceLine(i,e);return s===i?a:(r[t]=s,r.join(`
`))}var u=class extends A.SuggestModal{constructor(t,e,r){super(t),this.plugin=e,this.target=r}getSuggestions(t){return this.plugin.settings.checkboxOptions.filter(e=>e.title.toLowerCase().includes(t.toLowerCase()))}renderSuggestion(t,e){e.setCssStyles({display:"flex",flexDirection:"row",alignItems:"center",textAlign:"center"}),e.setAttribute("data-task",t.character),e.classList.add("task-list-item"),t.character!==" "&&e.classList.add("is-checked");let r=e.createEl("input",{attr:{type:"checkbox","data-task":t.character}});r.classList.add("task-list-item"),r.checked=t.character!==" ",t.character!==" "&&r.classList.add("is-checked"),e.createEl("span",{text:t.title}).classList.add("cm-list-1")}onChooseSuggestion(t,e){if(this.target.kind==="editor")new f(this.target.editor).swap(t.character);else{let{file:r,line:i}=this.target;this.app.vault.process(r,s=>w(s,i,t.character))}}};var B=a=>{(0,k.addIcon)("search-check",`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<g transform="translate(3, 3)" stroke="currentcolor" stroke-width="6">
<polyline points="26.1111111 41.7777778 36.5555556 52.2222222 57.4444444 31.3333333"></polyline>
<circle cx="41.7777778" cy="41.7777778" r="41.7777778"></circle>
<line x1="94" y1="94" x2="71.5444444" y2="71.5444444"></line>
</g>
</g>`),a.addRibbonIcon("search-check","Change Checkbox Status",t=>{let e=a.app.workspace.getActiveViewOfType(k.MarkdownView);if(!e)return;let r=e.editor;new u(a.app,a,{kind:"editor",editor:r}).open()})};var H=require("obsidian");var N=10;function x(a){let t=a.app.workspace.containerEl,e=null,r=0,i=0,s=null,o=!1,h=()=>{e!==null&&(window.clearTimeout(e),e=null),s=null},l=n=>n instanceof HTMLInputElement&&n.classList.contains("task-list-item-checkbox");a.registerDomEvent(t,"pointerdown",n=>{l(n.target)&&a.settings.enableReadingModeLongPress&&(h(),s=n.target,r=n.clientX,i=n.clientY,e=window.setTimeout(()=>{let p=s;e=null,s=null,p&&(o=!0,F(a,p))},a.settings.longPressDurationMs))},!0),a.registerDomEvent(t,"pointermove",n=>{if(e===null)return;let p=n.clientX-r,I=n.clientY-i;p*p+I*I>N*N&&h()},!0),a.registerDomEvent(t,"pointerup",h,!0),a.registerDomEvent(t,"pointercancel",h,!0),a.registerDomEvent(t,"pointerleave",h,!0),a.registerDomEvent(t,"click",n=>{l(n.target)&&o&&(o=!1,n.preventDefault(),n.stopPropagation())},!0),a.registerDomEvent(t,"contextmenu",n=>{l(n.target)&&a.settings.enableReadingModeLongPress&&(n.preventDefault(),h(),F(a,n.target))},!0)}async function F(a,t){let e=K(a,t);!e||!e.file||(e.getMode()==="preview"?z(a,e,t):J(a,e,t))}function K(a,t){let e=null;return a.app.workspace.iterateAllLeaves(r=>{if(e)return;let i=r.view;i instanceof H.MarkdownView&&i.containerEl.contains(t)&&(e=i)}),e}function z(a,t,e){let r=t.file,s=t.previewMode.containerEl.querySelectorAll("input.task-list-item-checkbox"),o=Array.from(s).indexOf(e);if(o<0)return;let l=(a.app.metadataCache.getFileCache(r)?.listItems??[]).filter(n=>n.task!==void 0).map(n=>n.position.start.line)[o];l!==void 0&&new u(a.app,a,{kind:"file",file:r,line:l}).open()}function J(a,t,e){let r=t.editor,i=r.cm;if(!i||typeof i.posAtDOM!="function")return;let s=i.posAtDOM(e),o=r.offsetToPos(s);r.setSelection({line:o.line,ch:0},{line:o.line,ch:0}),new u(a.app,a,{kind:"editor",editor:r}).open()}var Z=a=>({id:"change-task-status",name:"change task status",editorCallback:(t,e)=>{new u(a.app,a,{kind:"editor",editor:t}).open()}}),V=Z;var T=class extends $.Plugin{async onload(){await this.loadSettings(),B(this),x(this),this.addCommand(V(this)),this.addSettingTab(new m(this.app,this))}onunload(){console.log("unloading Obsidian Task Status")}async loadSettings(){this.settings=Object.assign({},g,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}};