=I;K-=1){var V=K-1,U=c[u.charAt(V)];if(U&&(X[V]=1),qe[K]=(qe[K+1]<<1|1)&U,he!==0&&(qe[K]|=(te[K+1]|te[K])<<1|1|te[K+1]),qe[K]&fe&&(ce=o(l,{errors:he,currentLocation:V,expectedLocation:C,distance:g}))<=B){if(B=ce,(z=V)<=C)break;I=Math.max(1,2*C-z)}}if(o(l,{errors:he+1,currentLocation:C,expectedLocation:C,distance:g})>B)break;te=qe}return{isMatch:z>=0,score:ce===0?.001:ce,matchedIndices:s(X,N)}}},function(r,i){r.exports=function(a,o){var s=o.errors,u=s===void 0?0:s,l=o.currentLocation,c=l===void 0?0:l,d=o.expectedLocation,f=d===void 0?0:d,h=o.distance,p=h===void 0?100:h,g=u/a.length,w=Math.abs(f-c);return p?g+w/p:w?1:g}},function(r,i){r.exports=function(){for(var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,s=[],u=-1,l=-1,c=0,d=a.length;c0)return"Unexpected "+(P.length>1?"keys":"key")+" "+('"'+P.join('", "')+'" found in '+M+". ")+"Expected to find one of the known reducer keys instead: "+('"'+E.join('", "')+'". Unexpected keys will be ignored.')}function g(L){Object.keys(L).forEach(function(y){var b=L[y],m=b(void 0,{type:l.INIT});if(typeof m=="undefined")throw new Error('Reducer "'+y+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof b(void 0,{type:l.PROBE_UNKNOWN_ACTION()})=="undefined")throw new Error('Reducer "'+y+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function w(L){for(var y=Object.keys(L),b={},m=0;m
{(function(t,n){typeof Ds=="object"&&typeof rv!="undefined"?n(Ds):typeof define=="function"&&define.amd?define(["exports"],n):(t=typeof globalThis!="undefined"?globalThis:t||self,n(t.immutableJSONPatch={}))})(Ds,function(t){"use strict";function n(K){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?n=function(U){return typeof U}:n=function(U){return U&&typeof Symbol=="function"&&U.constructor===Symbol&&U!==Symbol.prototype?"symbol":typeof U},n(K)}function e(K,V){return JSON.stringify(K)===JSON.stringify(V)}function r(K,V){return K===V}function i(K){return K.slice(0,K.length-1)}function a(K){return K[K.length-1]}function o(K,V){var U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r;if(K.length {let{isMatch:S,score:T,indices:k}=aS(n,p,g,{location:i+w,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:u,includeMatches:r,ignoreLocation:l});S&&(f=!0),d+=T,S&&k&&(c=[...c,...k])});let h={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(h.indices=c),h}},er=class{constructor(n){this.pattern=n}static isMultiMatch(n){return Mp(n,this.multiRegex)}static isSingleMatch(n){return Mp(n,this.singleRegex)}search(){}};function Mp(t,n){let e=t.match(n);return e?e[1]:null}var Cp=class extends er{constructor(n){super(n)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(n){let e=n===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},Dp=class extends er{constructor(n){super(n)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(n){let r=n.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,n.length-1]}}},Ap=class extends er{constructor(n){super(n)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(n){let e=n.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},Ip=class extends er{constructor(n){super(n)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(n){let e=!n.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,n.length-1]}}},Lp=class extends er{constructor(n){super(n)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(n){let e=n.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[n.length-this.pattern.length,n.length-1]}}},Pp=class extends er{constructor(n){super(n)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(n){let e=!n.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,n.length-1]}}},ic=class extends er{constructor(n,{location:e=Me.location,threshold:r=Me.threshold,distance:i=Me.distance,includeMatches:a=Me.includeMatches,findAllMatches:o=Me.findAllMatches,minMatchCharLength:s=Me.minMatchCharLength,isCaseSensitive:u=Me.isCaseSensitive,ignoreLocation:l=Me.ignoreLocation}={}){super(n);this._bitapSearch=new rc(n,{location:e,threshold:r,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(n){return this._bitapSearch.searchIn(n)}},ac=class extends er{constructor(n){super(n)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(n){let e=0,r,i=[],a=this.pattern.length;for(;(r=n.indexOf(this.pattern,e))>-1;)e=r+a,i.push([r,e-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},oc=[Cp,ac,Ap,Ip,Pp,Lp,Dp,ic],Op=oc.length,sS=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/,lS="|";function cS(t,n={}){return t.split(lS).map(e=>{let r=e.trim().split(sS).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=r.length;a
/g,`
+`),blockId:void 0,title:"",titleSearch:"",metadata:{dateStr:void 0,date:void 0,time:void 0,timeStr:void 0,tags:[],fileAccessor:void 0,file:void 0,fileMetadata:void 0,fileMetadataOrder:void 0},dom:void 0,isComplete:!!e.checked};return dv(e,l=>l.type!=="paragraph",l=>{let c=l;if(c.type==="blockid")return u.blockId=c.value,!0;if(c.type==="hashtag")return u.metadata.tags||(u.metadata.tags=[]),u.metadata.tags.push("#"+c.value),r&&(s=Is(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="date"||c.type==="dateLink")return u.metadata.dateStr=c.date,i&&(s=Is(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="time")return u.metadata.timeStr=c.time,s=Is(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start}),!0;if(c.type==="embedWikilink")return u.metadata.fileAccessor=c.fileAccessor,!0;if(c.type==="wikilink"||c.type==="link"&&c.fileAccessor)return u.metadata.fileAccessor=c.fileAccessor,u.metadata.fileMetadata=c.fileMetadata,u.metadata.fileMetadataOrder=c.fileMetadataOrder,!0;if(c.type==="embedLink")return u.metadata.fileAccessor=c.fileAccessor,!0}),u.title=vv(s).replace(/
/g,`
+`),u}function a_(t,n,e){if(t.type!=="heading"||_a(t,{includeImageAlt:!1})!==F("Archive"))return!1;let r=fv(n,e);return r&&r.type==="thematicBreak"}function dy(t,n,e,r,i){let a=[],o=[];return r.children.forEach((s,u)=>{if(s.type==="heading"){let l=a_(s,r.children,u),c=iu(s),d=au(i,c),f=!1,h=hv(r.children,u,"list",p=>{if(p.type==="heading")return!1;if(p.type==="paragraph"){let g=_a(p);if(g.startsWith("%% kanban:settings"))return!1;if(g===F("Complete"))return f=!0,!0}return!0});if(l&&h){o.push(...h.children.map(p=>({...Uo,id:Ke(),data:Ws(t,i,p)})));return}h?a.push({...mr,children:h.children.map(p=>({...Uo,id:Ke(),data:Ws(t,i,p)})),id:Ke(),data:{title:d,shouldMarkItemsComplete:f}}):a.push({...mr,children:[],id:Ke(),data:{title:d,shouldMarkItemsComplete:f}})}}),{...zo,id:t.file.path,children:a,data:{settings:n,frontmatter:e,archive:o,isSearching:!1,errors:[]}}}async function Du(t,n,e){let r=`- [${n.data.isComplete?"x":" "}] ${e.replace(/(\r\n|\n)/g,"
").trim()}${n.data.blockId?` ^${n.data.blockId}`:""}`,i=Cu(t,r),a=Ws(t,r,i.children[0].children[0]),o=(0,js.default)(n,{data:{$set:a}});try{await Ta(t,o)}catch(s){console.error(s)}return o}async function fy(t,n,e,r){let i=`- [${e?"x":" "}] ${n.trim().replace(/(\r\n|\n)/g,"
")}`,a=Cu(t,i),o=Ws(t,i,a.children[0].children[0]);o.forceEditMode=!!r;let s={...Uo,id:Ke(),data:o};try{await Ta(t,s)}catch(u){console.error(u)}return s}async function hy(t,n){try{return(0,js.default)(n,{children:{$set:await Promise.all(n.children.map(async e=>{try{return(0,js.default)(e,{children:{$set:await Promise.all(e.children.map(r=>Du(t,r,r.data.titleRaw)))}})}catch(r){throw t.setError(r),r}}))}})}catch(e){throw t.setError(e),e}}function py(t){return`- [${t.data.isComplete?"x":" "}] ${t.data.titleRaw.replace(/(\r\n|\n)/g,"
").trim()}${t.data.blockId?` ^${t.data.blockId}`:""}`}function o_(t){let n=[];return n.push(`## ${t.data.title}`),n.push(""),t.data.shouldMarkItemsComplete&&n.push(Ng),t.children.forEach(e=>{n.push(py(e))}),n.push(""),n.push(""),n.push(""),n.join(`
+`)}function s_(t){if(t.length){let n=[Fg,"",`## ${F("Archive")}`,""];return t.forEach(e=>{n.push(py(e))}),n.join(`
+`)}return""}function my(t){let n=t.children.reduce((r,i)=>r+o_(i),"");return["---","",(0,uy.stringifyYaml)(t.data.frontmatter),"---","",""].join(`
+`)+n+s_(t.data.archive)+Rg(t.data.settings)}var Au=class{constructor(n){this.stateManager=n}newItem(n,e,r){return fy(this.stateManager,n,e,r)}updateItemContent(n,e){return Du(this.stateManager,n,e)}boardToMd(n){return my(n)}mdToBoard(n){let{ast:e,settings:r,frontmatter:i}=cy(this.stateManager,n),a=dy(this.stateManager,r,i,e,n);if(this.stateManager.state){let s=eu(this.stateManager.state,a).filter(l=>["/id","/dom","/date","/time","/titleSearch","/file"].every(c=>!l.path.endsWith(c))),u=(0,gy.immutableJSONPatch)(this.stateManager.state,s);return gv(this.stateManager,u,s)}return mv(this.stateManager,a)}reparseBoard(){return hy(this.stateManager,this.stateManager.state)}};var Iu=class{constructor(n,e,r,i,a){this.stateReceivers=[];this.settingsNotifiers=new Map;this.viewSet=new Set;this.compiledSettings={};this.newBoardPromise=null;this.getSetting=(n,e)=>e&&e[n]!==void 0?e[n]:this.compiledSettings&&this.compiledSettings[n]!==void 0?this.compiledSettings[n]:this.getSettingRaw(n);this.getSettingRaw=(n,e)=>{var r,i;return e&&e[n]!==void 0?e[n]:((i=(r=this.state)==null?void 0:r.data)==null?void 0:i.settings)&&this.state.data.settings[n]!==void 0?this.state.data.settings[n]:this.getGlobalSetting(n)};this.getGlobalSetting=n=>{let e=this.getGlobalSettings();return e&&e[n]!==void 0?e[n]:null};this.app=n,this.file=e.file,this.onEmpty=i,this.getGlobalSettings=a,this.parser=new Au(this),this.registerView(e,r,!0)}getAView(){return this.viewSet.values().next().value}registerView(n,e,r){this.viewSet.has(n)||(this.viewSet.add(n),n.initHeaderButtons()),r&&(this.newBoardPromise!==null?this.newBoardPromise.then(()=>this.newBoard(e)):this.newBoardPromise=this.newBoard(e).then(()=>{this.newBoardPromise=null}).catch(i=>{console.error(i),this.setError(i)}))}unregisterView(n){this.viewSet.has(n)&&(this.viewSet.delete(n),this.viewSet.size===0&&this.onEmpty())}buildSettingRetrievers(){return{getGlobalSettings:this.getGlobalSettings,getGlobalSetting:this.getGlobalSetting,getSetting:this.getSetting}}async newBoard(n){try{await this.setState(await this.getParsedBoard(n),!1)}catch(e){this.setError(e)}}saveToDisk(){if(this.state.data.errors.length>0)return;let n=this.getAView(),e=this.parser.boardToMd(this.state);n.requestSaveToDisk(e),this.viewSet.forEach(r=>{r.data=e})}softRefresh(){this.stateReceivers.forEach(n=>n({...this.state}))}async forceRefresh(){if(this.state)try{this.compileSettings(),this.state=await this.parser.reparseBoard(),this.stateReceivers.forEach(n=>n(this.state)),this.viewSet.forEach(n=>n.initHeaderButtons())}catch(n){console.error(n),this.setError(n)}}async setState(n,e=!0){var r;try{let i=(r=this.state)==null?void 0:r.data.settings,a=typeof n=="function"?await n(this.state):n,o=a==null?void 0:a.data.settings;i&&o&&Bg(i,o)?(this.state=(0,Ii.default)(this.state,{data:{settings:{$set:o}}}),this.compileSettings(),this.state=await this.parser.reparseBoard()):(this.state=a,this.compileSettings()),this.viewSet.forEach(s=>s.initHeaderButtons()),e&&this.saveToDisk(),this.stateReceivers.forEach(s=>s(this.state)),i!==o&&o&&this.settingsNotifiers.forEach((s,u)=>{(!i&&o||i[u]!==o[u])&&s.forEach(l=>l())})}catch(i){console.error(i),this.setError(i)}}useState(){let[n,e]=v.useState(this.state);return v.useEffect(()=>(this.stateReceivers.push(r=>{e(r)}),e(this.state),()=>{this.stateReceivers.remove(e)}),[]),n}useSetting(n){let[e,r]=v.useState(this.getSetting(n));return v.useEffect(()=>{let i=()=>{r(this.getSetting(n))};return this.settingsNotifiers.has(n)?this.settingsNotifiers.get(n).push(i):this.settingsNotifiers.set(n,[i]),()=>{this.settingsNotifiers.get(n).remove(i)}},[]),e}compileSettings(n){var s,u,l,c,d;let e=this.getGlobalSetting("metadata-keys")||[],r=this.getSettingRaw("metadata-keys",n)||[],i=this.getSettingRaw("date-format",n)||Xr(this.app),a=this.getSettingRaw("time-format",n)||Vi(this.app),o=this.getSettingRaw("prepend-archive-format",n)||`${i} ${a}`;this.compiledSettings={"date-format":i,"date-display-format":this.getSettingRaw("date-display-format",n)||i,"date-trigger":this.getSettingRaw("date-trigger",n)||ys,"time-format":a,"time-trigger":this.getSettingRaw("time-trigger",n)||bs,"link-date-to-daily-note":this.getSettingRaw("link-date-to-daily-note",n),"hide-date-in-title":this.getSettingRaw("hide-date-in-title",n),"hide-tags-in-title":this.getSettingRaw("hide-tags-in-title",n),"metadata-keys":[...e,...r],"prepend-archive-separator":this.getSettingRaw("prepend-archive-separator")||"","prepend-archive-format":o,"show-add-list":(s=this.getSettingRaw("show-add-list",n))!=null?s:!0,"show-archive-all":(u=this.getSettingRaw("show-archive-all",n))!=null?u:!0,"show-view-as-markdown":(l=this.getSettingRaw("show-view-as-markdown",n))!=null?l:!0,"show-board-settings":(c=this.getSettingRaw("show-board-settings",n))!=null?c:!0,"show-search":(d=this.getSettingRaw("show-search",n))!=null?d:!0}}async getParsedBoard(n){let e=n.trim(),r={...zo,id:this.file.path,children:[],data:{archive:[],settings:{"kanban-plugin":"basic"},frontmatter:{},isSearching:!1,errors:[]}};try{e&&(r=await this.parser.mdToBoard(e))}catch(i){console.error(i),r=(0,Ii.default)(r,{data:{errors:{$push:[{description:i.toString(),stack:i.stack}]}}})}return r}setError(n){this.setState((0,Ii.default)(this.state,{data:{errors:{$push:[{description:n.toString(),stack:n.stack}]}}}),!1)}onFileMetadataChange(){this.reparseBoardFromMd()}async reparseBoardFromMd(){try{this.setState(await this.getParsedBoard(this.getAView().data),!1)}catch(n){console.error(n),this.setError(n)}}async archiveCompletedCards(){let n=this.state,e=[],r=!!this.getSetting("prepend-archive-date"),i=this.getSetting("prepend-archive-separator"),a=this.getSetting("prepend-archive-format"),o=u=>{let l=[(0,vy.moment)().format(a)];i&&l.push(i),l.push(u.data.titleRaw);let c=l.join(" ");return this.parser.updateItemContent(u,c)},s=n.children.map(u=>(0,Ii.default)(u,{children:{$set:u.children.filter(l=>((u.data.shouldMarkItemsComplete||l.data.isComplete)&&e.push(l),!l.data.isComplete&&!u.data.shouldMarkItemsComplete))}}));this.app.workspace.trigger("kanban:board-cards-archived",this.file,e);try{this.setState((0,Ii.default)(n,{children:{$set:s},data:{archive:{$push:r?await Promise.all(e.map(u=>o(u))):e}}}))}catch(u){this.setError(u)}}getNewItem(n,e,r){return this.parser.newItem(n,e,r)}updateItemContent(n,e){return this.parser.updateItemContent(n,e)}};var Lu=class extends vn.Plugin{constructor(){super(...arguments);this.settings={};this.kanbanFileModes={};this.stateManagers=new Map;this.viewMap=new Map;this._loaded=!1;this.isShiftPressed=!1;this.handleShift=n=>{this.isShiftPressed=n.shiftKey};this.viewStateReceivers=[]}async loadSettings(){this.settings=Object.assign({},await this.loadData())}async saveSettings(){await this.saveData(this.settings)}onunload(){this.stateManagers.clear(),this.viewStateReceivers.forEach(e=>e(this.getKanbanViews())),this.app.workspace.getLeavesOfType(_n).forEach(e=>{this.setMarkdownView(e)}),this.app.workspace.unregisterHoverLinkSource(dn),this.appEl&&(v.unmountComponentAtNode(this.appEl),this.appEl.detach()),window.removeEventListener("keydown",this.handleShift),window.removeEventListener("keyup",this.handleShift)}async onload(){await this.loadSettings(),this.settingsTab=new Yc(this,{onSettingsChange:async n=>{this.settings=n,await this.saveSettings(),this.stateManagers.forEach(e=>{e.forceRefresh()})}}),this.addSettingTab(this.settingsTab),this.registerView(_n,n=>new Nr(n,this)),this.registerMonkeyPatches(),this.registerCommands(),this.registerEvents(),this.mount(),window.addEventListener("keydown",this.handleShift),window.addEventListener("keyup",this.handleShift)}getKanbanViews(){return Array.from(this.viewMap.values())}getKanbanView(n){return this.viewMap.get(n)}getStateManager(n){return this.stateManagers.get(n)}getStateManagerFromViewID(n){return this.stateManagers.get(this.getKanbanView(n).file)}useViewState(){let[n,e]=v.useState(this.getKanbanViews());return v.useEffect(()=>(this.viewStateReceivers.push(e),()=>{this.viewStateReceivers.remove(e)}),[]),n}addView(n,e,r){this.viewMap.has(n.id)||this.viewMap.set(n.id,n);let i=n.file;this.stateManagers.has(i)?this.stateManagers.get(i).registerView(n,e,r):this.stateManagers.set(i,new Iu(this.app,n,e,()=>this.stateManagers.delete(i),()=>this.settings)),this.viewStateReceivers.forEach(a=>a(this.getKanbanViews()))}removeView(n){let e=n.file;this.viewMap.has(n.id)&&this.viewMap.delete(n.id),this.stateManagers.has(e)&&(this.stateManagers.get(e).unregisterView(n),this.viewStateReceivers.forEach(r=>r(this.getKanbanViews())))}handleViewFileRename(n,e){let r=`${n.leaf.id}:::${e}`;this.viewMap.has(r)&&this.viewMap.delete(r),this.viewMap.has(n.id)||this.viewMap.set(n.id,n),n.isPrimary&&this.getStateManager(n.file).softRefresh()}mount(){var n;v.render(Pg(this),(n=this.appEl)!=null?n:this.appEl=document.body.createDiv())}async setMarkdownView(n,e=!0){await n.setViewState({type:"markdown",state:n.view.getState(),popstate:!0},{focus:e})}async setKanbanView(n){await n.setViewState({type:_n,state:n.view.getState(),popstate:!0})}async newKanban(n){var r;let e=n||this.app.fileManager.getNewFileParent(((r=this.app.workspace.getActiveFile())==null?void 0:r.path)||"");try{let i=await this.app.fileManager.createNewMarkdownFile(e,F("Untitled Kanban"));await this.app.vault.modify(i,zc),await this.app.workspace.activeLeaf.setViewState({type:_n,state:{file:i.path}})}catch(i){console.error("Error creating kanban board:",i)}}registerEvents(){this.registerEvent(this.app.workspace.on("file-menu",(e,r)=>{r instanceof vn.TFolder&&e.addItem(i=>{i.setTitle(F("New kanban board")).setIcon(Es).onClick(()=>this.newKanban(r))})})),this.registerEvent(this.app.vault.on("rename",(e,r)=>{this.app.workspace.getLeavesOfType(_n).forEach(a=>{a.view.handleRename(e.path,r)})}));let n=(0,vn.debounce)(e=>{this.stateManagers.forEach(r=>{r.file!==e&&r.onFileMetadataChange()})},2e3,!0);this.registerEvent(this.app.vault.on("modify",e=>{e instanceof vn.TFile&&n(e)})),this.registerEvent(this.app.metadataCache.on("changed",e=>{n(e)})),this.registerEvent(this.app.metadataCache.on("dataview:metadata-change",(e,r)=>{n(r)})),this.registerEvent(this.app.metadataCache.on("dataview:api-ready",()=>{this.stateManagers.forEach(e=>{e.forceRefresh()})})),this.app.workspace.registerHoverLinkSource(dn,{display:"Kanban",defaultMod:!0})}registerCommands(){this.addCommand({id:"create-new-kanban-board",name:F("Create new board"),callback:()=>this.newKanban()}),this.addCommand({id:"archive-completed-cards",name:F("Archive completed cards in active board"),checkCallback:n=>{let e=this.app.workspace.getActiveViewOfType(Nr);if(!e)return!1;if(n)return!0;this.stateManagers.get(e.file).archiveCompletedCards()}}),this.addCommand({id:"toggle-kanban-view",name:F("Toggle between Kanban and markdown mode"),checkCallback:n=>{let e=this.app.workspace.getActiveFile();if(!e)return!1;let r=this.app.metadataCache.getFileCache(e),i=!!(r==null?void 0:r.frontmatter)&&!!r.frontmatter[dn];if(n)return i;let a=this.app.workspace.activeLeaf;(a==null?void 0:a.view)&&a.view instanceof Nr?(this.kanbanFileModes[a.id||e.path]="markdown",this.setMarkdownView(a)):i&&(this.kanbanFileModes[a.id||e.path]=_n,this.setKanbanView(a))}}),this.addCommand({id:"convert-to-kanban",name:F("Convert empty note to Kanban"),checkCallback:n=>{let e=this.app.workspace.getActiveFile(),r=this.app.workspace.activeLeaf;if(!e||!r)return!1;let i=e.stat.size===0;if(n)return i;i&&this.app.vault.modify(e,zc).then(()=>{this.setKanbanView(r)}).catch(a=>console.error(a))}}),this.addCommand({id:"add-kanban-lane",name:F("Add a list"),checkCallback:n=>{let e=this.app.workspace.activeLeaf;if(n)return e.view instanceof Nr;e.view.emitter.emit("showLaneForm",void 0)}})}registerMonkeyPatches(){let n=this;this.app.workspace.onLayoutReady(()=>{this.register(Fa(this.app.commands,{executeCommandById(e){return function(r){let i=n.app.workspace.getActiveViewOfType(Nr);return i&&i.emitter.emit("hotkey",r),e.call(this,r)}}}))}),this.register(Fa(vn.WorkspaceLeaf.prototype,{detach(e){return function(){var i;let r=(i=this.view)==null?void 0:i.getState();return(r==null?void 0:r.file)&&n.kanbanFileModes[this.id||r.file]&&delete n.kanbanFileModes[this.id||r.file],e.apply(this)}},setViewState(e){return function(r,...i){var a;if(n._loaded&&r.type==="markdown"&&((a=r.state)==null?void 0:a.file)&&n.kanbanFileModes[this.id||r.state.file]!=="markdown"){let o=n.app.metadataCache.getCache(r.state.file);if((o==null?void 0:o.frontmatter)&&o.frontmatter[dn]){let s={...r,type:_n};return n.kanbanFileModes[r.state.file]=_n,e.apply(this,[s,...i])}}return e.apply(this,[r,...i])}}})),this.register(Fa(vn.MarkdownView.prototype,{onMoreOptionsMenu(e){return function(r){let i=this.file,a=i?n.app.metadataCache.getFileCache(i):null;if(!i||!(a==null?void 0:a.frontmatter)||!a.frontmatter[dn])return e.call(this,r);r.addItem(o=>{o.setTitle(F("Open as kanban board")).setIcon(Es).onClick(()=>{n.kanbanFileModes[this.leaf.id||i.path]=_n,n.setKanbanView(this.leaf)})}).addSeparator(),e.call(this,r)}}}))}};0&&(module.exports={});
+/*!
+ * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io)
+ *
+ * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)
+ * All Rights Reserved. Apache Software License 2.0
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ */
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
@{2022-06-23}
+
+
+***
+
+## 归档
+
+- [ ] 1
+- [ ] [[2]] ^qzixjb
+
+%% kanban:settings
+```
+{"kanban-plugin":"basic"}
+```
+%%
\ No newline at end of file