summaryrefslogtreecommitdiff
path: root/.obsidian/plugins/dataview-serializer/main.js
diff options
context:
space:
mode:
authorDominik Kaiser2026-04-15 20:58:17 +0200
committerDominik Kaiser2026-04-15 20:58:17 +0200
commit18c10d04d210c3289046b3e88b33dcec2326c7c0 (patch)
tree42eafbacf19ce7844637d1040a45d8c8e333bddb /.obsidian/plugins/dataview-serializer/main.js
parent42014100b67765f628f32f0ad6682fcfe0793a0c (diff)
downloadMNEME-18c10d04d210c3289046b3e88b33dcec2326c7c0.tar.gz
MNEME-18c10d04d210c3289046b3e88b33dcec2326c7c0.zip
vault backup: 2026-04-15 20:58:17
Diffstat (limited to '.obsidian/plugins/dataview-serializer/main.js')
-rw-r--r--.obsidian/plugins/dataview-serializer/main.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/.obsidian/plugins/dataview-serializer/main.js b/.obsidian/plugins/dataview-serializer/main.js
new file mode 100644
index 0000000..74ba863
--- /dev/null
+++ b/.obsidian/plugins/dataview-serializer/main.js
@@ -0,0 +1,73 @@
+/*
+THIS IS A GENERATED/BUNDLED FILE BY BUN.
+If you want to view the source, please visit the github repository of this plugin.
+*/
+var{defineProperty:w1,getOwnPropertyNames:Z$,getOwnPropertyDescriptor:B$}=Object,J$=Object.prototype.hasOwnProperty;function W$($){return this[$]}var Y$=($)=>{var H=(s1??=new WeakMap).get($),X;if(H)return H;if(H=w1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var K of Z$($))if(!J$.call(H,K))w1(H,K,{get:W$.bind($,K),enumerable:!(X=B$($,K))||X.enumerable})}return s1.set($,H),H},s1;var G$=($)=>$;function q$($,H){this[$]=G$.bind(null,H)}var j$=($,H)=>{for(var X in H)w1($,X,{get:H[X],enumerable:!0,configurable:!0,set:q$.bind(H,X)})};var K6={};j$(K6,{default:()=>Z6});module.exports=Y$(K6);var D=require("obsidian");var F0={foldersToScan:[],ignoredFolders:[],disableAutomaticUpdates:!1,showRefreshButton:!0,foldersToForceUpdate:[],showErrorNotifications:!0,debugLogging:!1,addTrailingNewline:!1,linkFormat:"shortest",enableDataviewJS:!0};var x=require("obsidian");var H5=Symbol.for("immer-nothing"),l1=Symbol.for("immer-draftable"),_=Symbol.for("immer-state"),U$=[function($){return`The plugin for '${$}' has not been loaded into Immer. To enable the plugin, import and call \`enable${$}()\` when initializing your application.`},function($){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${$}'`},"This object has been frozen and should not be mutated",function($){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+$},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function($){return`'current' expects a draft, got: ${$}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function($){return`'original' expects a draft, got: ${$}`}];function E($,...H){{let X=U$[$],K=e(X)?X.apply(null,H):X;throw Error(`[Immer] ${K}`)}throw Error(`[Immer] minified error nr: ${$}. Full error at: https://bit.ly/3cXEKWf`)}var v=Object,P0=v.getPrototypeOf,H1="constructor",B1="prototype",D1="configurable",X1="enumerable",e0="writable",I0="value",i=($)=>!!$&&!!$[_];function o($){if(!$)return!1;return X5($)||J1($)||!!$[l1]||!!$[H1]?.[l1]||W1($)||Y1($)}var V$=v[B1][H1].toString(),r1=new WeakMap;function X5($){if(!$||!h1($))return!1;let H=P0($);if(H===null||H===v[B1])return!0;let X=v.hasOwnProperty.call(H,H1)&&H[H1];if(X===Object)return!0;if(!e(X))return!1;let K=r1.get(X);if(K===void 0)K=Function.toString.call(X),r1.set(X,K);return K===V$}function m0($,H,X=!0){if(T0($)===0)(X?Reflect.ownKeys($):v.keys($)).forEach((B)=>{H(B,$[B],$)});else $.forEach((K,B)=>H(B,K,$))}function T0($){let H=$[_];return H?H.type_:J1($)?1:W1($)?2:Y1($)?3:0}var i1=($,H,X=T0($))=>X===2?$.has(H):v[B1].hasOwnProperty.call($,H),O1=($,H,X=T0($))=>X===2?$.get(H):$[H],K1=($,H,X,K=T0($))=>{if(K===2)$.set(H,X);else if(K===3)$.add(X);else $[H]=X};function z$($,H){if($===H)return $!==0||1/$===1/H;else return $!==$&&H!==H}var J1=Array.isArray,W1=($)=>$ instanceof Map,Y1=($)=>$ instanceof Set,h1=($)=>typeof $==="object",e=($)=>typeof $==="function",N1=($)=>typeof $==="boolean";var u=($)=>$.copy_||$.base_;var L1=($)=>$.modified_?$.copy_:$.base_;function k1($,H){if(W1($))return new Map($);if(Y1($))return new Set($);if(J1($))return Array[B1].slice.call($);let X=X5($);if(H===!0||H==="class_only"&&!X){let K=v.getOwnPropertyDescriptors($);delete K[_];let B=Reflect.ownKeys(K);for(let Z=0;Z<B.length;Z++){let J=B[Z],W=K[J];if(W[e0]===!1)W[e0]=!0,W[D1]=!0;if(W.get||W.set)K[J]={[D1]:!0,[e0]:!0,[X1]:W[X1],[I0]:$[J]}}return v.create(P0($),K)}else{let K=P0($);if(K!==null&&X)return{...$};let B=v.create(K);return v.assign(B,$)}}function m1($,H=!1){if(G1($)||i($)||!o($))return $;if(T0($)>1)v.defineProperties($,{set:t0,add:t0,clear:t0,delete:t0});if(v.freeze($),H)m0($,(X,K)=>{m1(K,!0)},!1);return $}function P$(){E(2)}var t0={[I0]:P$};function G1($){if($===null||!h1($))return!0;return v.isFrozen($)}var Z1="MapSet",C1="Patches",K5={};function M0($){let H=K5[$];if(!H)E(0,$);return H}var M$=($)=>!!K5[$];var h0,Z5=()=>h0,w$=($,H)=>({drafts_:[],parent_:$,immer_:H,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:M$(Z1)?M0(Z1):void 0});function a1($,H){if(H)$.patchPlugin_=M0(C1),$.patches_=[],$.inversePatches_=[],$.patchListener_=H}function R1($){b1($),$.drafts_.forEach(N$),$.drafts_=null}function b1($){if($===h0)h0=$.parent_}var t1=($)=>h0=w$(h0,$);function N$($){let H=$[_];if(H.type_===0||H.type_===1)H.revoke_();else H.revoked_=!0}function e1($,H){H.unfinalizedDrafts_=H.drafts_.length;let X=H.drafts_[0];if($!==void 0&&$!==X){if(X[_].modified_)R1(H),E(4);if(o($))$=$5(H,$);let{patchPlugin_:B}=H;if(B)B.generateReplacementPatches_(X[_].base_,$,H)}else $=$5(H,X);if(Q$(H,$,!0),R1(H),H.patches_)H.patchListener_(H.patches_,H.inversePatches_);return $!==H5?$:void 0}function $5($,H){if(G1(H))return H;let X=H[_];if(!X)return T1(H,$.handledSet_,$);if(!q1(X,$))return H;if(!X.modified_)return X.base_;if(!X.finalized_){let{callbacks_:K}=X;if(K)while(K.length>0)K.pop()($);W5(X,$)}return X.copy_}function Q$($,H,X=!1){if(!$.parent_&&$.immer_.autoFreeze_&&$.canAutoFreeze_)m1(H,X)}function B5($){$.finalized_=!0,$.scope_.unfinalizedDrafts_--}var q1=($,H)=>$.scope_===H,D$=[];function J5($,H,X,K){let B=u($),Z=$.type_;if(K!==void 0){if(O1(B,K,Z)===H){K1(B,K,X,Z);return}}if(!$.draftLocations_){let W=$.draftLocations_=new Map;m0(B,(Y,G)=>{if(i(G)){let j=W.get(G)||[];j.push(Y),W.set(G,j)}})}let J=$.draftLocations_.get(H)??D$;for(let W of J)K1(B,W,X,Z)}function O$($,H,X){$.callbacks_.push(function(B){let Z=H;if(!Z||!q1(Z,B))return;B.mapSetPlugin_?.fixSetContents(Z);let J=L1(Z);J5($,Z.draft_??Z,J,X),W5(Z,B)})}function W5($,H){if($.modified_&&!$.finalized_&&($.type_===3||($.assigned_?.size??0)>0)){let{patchPlugin_:K}=H;if(K){let B=K.getPath($);if(B)K.generatePatches_($,B,H)}B5($)}}function k$($,H,X){let{scope_:K}=$;if(i(X)){let B=X[_];if(q1(B,K))B.callbacks_.push(function(){$1($);let J=L1(B);J5($,X,J,H)})}else if(o(X))$.callbacks_.push(function(){let Z=u($);if(O1(Z,H,$.type_)===X){if(K.drafts_.length>1&&($.assigned_.get(H)??!1)===!0&&$.copy_)T1(O1($.copy_,H,$.type_),K.handledSet_,K)}})}function T1($,H,X){if(!X.immer_.autoFreeze_&&X.unfinalizedDrafts_<1)return $;if(i($)||H.has($)||!o($)||G1($))return $;return H.add($),m0($,(K,B)=>{if(i(B)){let Z=B[_];if(q1(Z,X)){let J=L1(Z);K1($,K,J,$.type_),B5(Z)}}else if(o(B))T1(B,H,X)}),$}function C$($,H){let X=J1($),K={type_:X?1:0,scope_:H?H.scope_:Z5(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:H,base_:$,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},B=K,Z=_1;if(X)B=[K],Z=L0;let{revoke:J,proxy:W}=Proxy.revocable(B,Z);return K.draft_=W,K.revoke_=J,[W,K]}var _1={get($,H){if(H===_)return $;let X=u($);if(!i1(X,H,$.type_))return R$($,X,H);let K=X[H];if($.finalized_||!o(K))return K;if(K===Q1($.base_,H)){$1($);let B=$.type_===1?+H:H,Z=I1($.scope_,K,$,B);return $.copy_[B]=Z}return K},has($,H){return H in u($)},ownKeys($){return Reflect.ownKeys(u($))},set($,H,X){let K=Y5(u($),H);if(K?.set)return K.set.call($.draft_,X),!0;if(!$.modified_){let B=Q1(u($),H),Z=B?.[_];if(Z&&Z.base_===X)return $.copy_[H]=X,$.assigned_.set(H,!1),!0;if(z$(X,B)&&(X!==void 0||i1($.base_,H,$.type_)))return!0;$1($),F1($)}if($.copy_[H]===X&&(X!==void 0||(H in $.copy_))||Number.isNaN(X)&&Number.isNaN($.copy_[H]))return!0;return $.copy_[H]=X,$.assigned_.set(H,!0),k$($,H,X),!0},deleteProperty($,H){if($1($),Q1($.base_,H)!==void 0||H in $.base_)$.assigned_.set(H,!1),F1($);else $.assigned_.delete(H);if($.copy_)delete $.copy_[H];return!0},getOwnPropertyDescriptor($,H){let X=u($),K=Reflect.getOwnPropertyDescriptor(X,H);if(!K)return K;return{[e0]:!0,[D1]:$.type_!==1||H!=="length",[X1]:K[X1],[I0]:X[H]}},defineProperty(){E(11)},getPrototypeOf($){return P0($.base_)},setPrototypeOf(){E(12)}},L0={};m0(_1,($,H)=>{L0[$]=function(){let X=arguments;return X[0]=X[0][0],H.apply(this,X)}});L0.deleteProperty=function($,H){if(isNaN(parseInt(H)))E(13);return L0.set.call(this,$,H,void 0)};L0.set=function($,H,X){if(H!=="length"&&isNaN(parseInt(H)))E(14);return _1.set.call(this,$[0],H,X,$[0])};function Q1($,H){let X=$[_];return(X?u(X):$)[H]}function R$($,H,X){let K=Y5(H,X);return K?I0 in K?K[I0]:K.get?.call($.draft_):void 0}function Y5($,H){if(!(H in $))return;let X=P0($);while(X){let K=Object.getOwnPropertyDescriptor(X,H);if(K)return K;X=P0(X)}return}function F1($){if(!$.modified_){if($.modified_=!0,$.parent_)F1($.parent_)}}function $1($){if(!$.copy_)$.assigned_=new Map,$.copy_=k1($.base_,$.scope_.immer_.useStrictShallowCopy_)}var b$=class{constructor($){if(this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(H,X,K)=>{if(e(H)&&!e(X)){let Z=X;X=H;let J=this;return function(Y=Z,...G){return J.produce(Y,(j)=>X.call(this,j,...G))}}if(!e(X))E(6);if(K!==void 0&&!e(K))E(7);let B;if(o(H)){let Z=t1(this),J=I1(Z,H,void 0),W=!0;try{B=X(J),W=!1}finally{if(W)R1(Z);else b1(Z)}return a1(Z,K),e1(B,Z)}else if(!H||!h1(H)){if(B=X(H),B===void 0)B=H;if(B===H5)B=void 0;if(this.autoFreeze_)m1(B,!0);if(K){let Z=[],J=[];M0(C1).generateReplacementPatches_(H,B,{patches_:Z,inversePatches_:J}),K(Z,J)}return B}else E(1,H)},this.produceWithPatches=(H,X)=>{if(e(H))return(J,...W)=>this.produceWithPatches(J,(Y)=>H(Y,...W));let K,B;return[this.produce(H,X,(J,W)=>{K=J,B=W}),K,B]},N1($?.autoFreeze))this.setAutoFreeze($.autoFreeze);if(N1($?.useStrictShallowCopy))this.setUseStrictShallowCopy($.useStrictShallowCopy);if(N1($?.useStrictIteration))this.setUseStrictIteration($.useStrictIteration)}createDraft($){if(!o($))E(8);if(i($))$=F$($);let H=t1(this),X=I1(H,$,void 0);return X[_].isManual_=!0,b1(H),X}finishDraft($,H){let X=$&&$[_];if(!X||!X.isManual_)E(9);let{scope_:K}=X;return a1(K,H),e1(void 0,K)}setAutoFreeze($){this.autoFreeze_=$}setUseStrictShallowCopy($){this.useStrictShallowCopy_=$}setUseStrictIteration($){this.useStrictIteration_=$}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches($,H){let X;for(X=H.length-1;X>=0;X--){let B=H[X];if(B.path.length===0&&B.op==="replace"){$=B.value;break}}if(X>-1)H=H.slice(X+1);let K=M0(C1).applyPatches_;if(i($))return K($,H);return this.produce($,(B)=>K(B,H))}};function I1($,H,X,K){let[B,Z]=W1(H)?M0(Z1).proxyMap_(H,X):Y1(H)?M0(Z1).proxySet_(H,X):C$(H,X);if((X?.scope_??Z5()).drafts_.push(B),Z.callbacks_=X?.callbacks_??[],Z.key_=K,X&&K!==void 0)O$(X,Z,K);else Z.callbacks_.push(function(Y){Y.mapSetPlugin_?.fixSetContents(Z);let{patchPlugin_:G}=Y;if(Z.modified_&&G)G.generatePatches_(Z,[],Y)});return B}function F$($){if(!i($))E(10,$);return G5($)}function G5($){if(!o($)||G1($))return $;let H=$[_],X,K=!0;if(H){if(!H.modified_)return H.base_;H.finalized_=!0,X=k1($,H.scope_.immer_.useStrictShallowCopy_),K=H.scope_.immer_.shouldUseStrictIteration()}else X=k1($,!0);if(m0(X,(B,Z)=>{K1(X,B,G5(Z))},K),H)H.finalized_=!1;return X}var I$=new b$,y=I$.produce;var q5=($,H,X)=>{return X.indexOf($)===H};var j1=require("obsidian");class y1 extends j1.AbstractInputSuggest{inputEl;constructor($,H){super(H,$);this.inputEl=$}getSuggestions($){let H=this.app.vault.getAllLoadedFiles(),X=[],K=$.toLowerCase();return H.forEach((B)=>{if(B instanceof j1.TFolder&&B.path.toLowerCase().contains(K))X.push(B)}),X}renderSuggestion($,H){H.setText($.path)}selectSuggestion($){this.inputEl.value=$.path,this.close()}}var j5="Dataview Serializer";var m$=`${j5}:`,U5=!1,U1=($)=>{U5=$};var V=($,H,...X)=>{if(!U5&&(H==="debug"||H==="info"||H===void 0))return;let K=`${m$} ${$}`;switch(H){case"debug":console.debug(K,X);break;case"info":console.info(K,X);break;case"warn":console.warn(K,X);break;case"error":console.error(K,X);break;default:console.log(K,X)}};class x1 extends x.PluginSettingTab{plugin;constructor($,H){super($,H);this.plugin=H}display(){let{containerEl:$}=this;$.empty(),this.renderAutomaticUpdatesToggle(),this.renderRefreshButtonToggle(),this.renderDataviewJSToggle(),this.renderErrorNotificationsToggle(),this.renderTrailingNewlineToggle(),this.renderLinkFormatDropdown(),this.renderDebugLoggingToggle(),this.renderFoldersToScan(),this.renderFoldersToIgnore(),this.renderFoldersToForceUpdate(),this.renderSupportSection($)}renderAutomaticUpdatesToggle(){new x.Setting(this.containerEl).setName("Disable automatic updates").setDesc("When enabled, the plugin will not automatically serialize queries when files are created, modified, or renamed. You can still manually serialize queries using the command palette.").addToggle(($)=>{$.setValue(this.plugin.settings.disableAutomaticUpdates).onChange(async(H)=>{if(this.plugin.settings=y(this.plugin.settings,(X)=>{X.disableAutomaticUpdates=H}),await this.plugin.saveSettings(),H)this.plugin.unregisterEventHandlers();else this.plugin.setupEventHandlers()})})}renderRefreshButtonToggle(){new x.Setting(this.containerEl).setName("Show refresh button").setDesc("When enabled, a refresh button will be displayed next to each serialized Dataview query.").addToggle(($)=>{$.setValue(this.plugin.settings.showRefreshButton).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.showRefreshButton=H}),await this.plugin.saveSettings()})})}renderDataviewJSToggle(){new x.Setting(this.containerEl).setName("Enable DataviewJS serialization").setDesc('When enabled, JavaScript-based Dataview queries can be serialized to static markdown. Note: JavaScript code cannot contain "--" due to HTML comment limitations.').addToggle(($)=>{$.setValue(this.plugin.settings.enableDataviewJS).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.enableDataviewJS=H}),await this.plugin.saveSettings()})})}renderErrorNotificationsToggle(){new x.Setting(this.containerEl).setName("Show error notifications").setDesc("When enabled, a notification popup will be displayed when a query fails to serialize.").addToggle(($)=>{$.setValue(this.plugin.settings.showErrorNotifications).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.showErrorNotifications=H}),await this.plugin.saveSettings()})})}renderTrailingNewlineToggle(){new x.Setting(this.containerEl).setName("Add trailing newline").setDesc("When enabled, an empty line will be added between the serialized content and the END marker. Useful for static site generators like Jekyll that require blank lines after tables or lists.").addToggle(($)=>{$.setValue(this.plugin.settings.addTrailingNewline).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.addTrailingNewline=H}),await this.plugin.saveSettings()})})}renderLinkFormatDropdown(){new x.Setting(this.containerEl).setName("Link format").setDesc(`Format for internal links in serialized output. "Use Obsidian setting" respects your vault's "New link format" and "Use [[Wikilinks]]" preferences. "Shortest path" simplifies links when the filename is unique. "Absolute path" always uses the full path, which ensures consistency when syncing vaults across devices.`).addDropdown(($)=>{$.addOption("obsidian","Use Obsidian setting").addOption("shortest","Shortest path when possible").addOption("absolute","Absolute path").setValue(this.plugin.settings.linkFormat).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.linkFormat=H}),await this.plugin.saveSettings()})})}renderDebugLoggingToggle(){new x.Setting(this.containerEl).setName("Debug logging").setDesc("When enabled, verbose debug messages will be logged to the console. Useful for troubleshooting.").addToggle(($)=>{$.setValue(this.plugin.settings.debugLogging).onChange(async(H)=>{this.plugin.settings=y(this.plugin.settings,(X)=>{X.debugLogging=H}),U1(H),await this.plugin.saveSettings()})})}renderSupportSection($){new x.Setting($).setName("Support").setHeading(),new x.Setting($).setName("Follow me on X").setDesc("Sébastien Dubois (@dSebastien)").addButton((X)=>{X.setCta(),X.setButtonText("Follow me on X").onClick(()=>{window.open("https://x.com/dSebastien")})});let H=new DocumentFragment;H.createDiv({text:"Buy me a coffee to support the development of this plugin"}),new x.Setting($).setDesc(H),this.renderBuyMeACoffeeBadge($)}renderFoldersToScan(){this.doSearchAndRemoveList({currentList:this.plugin.settings.foldersToScan,setValue:async($)=>{this.plugin.settings=y(this.plugin.settings,(H)=>{H.foldersToScan=$})},name:"Folders to scan",description:"Folders to scan when looking for queries to serialize."})}renderFoldersToIgnore(){this.doSearchAndRemoveList({currentList:this.plugin.settings.ignoredFolders,setValue:async($)=>{this.plugin.settings=y(this.plugin.settings,(H)=>{H.ignoredFolders=$})},name:"Folders to ignore",description:"Folders to ignore when processing added/modified files."})}renderFoldersToForceUpdate(){this.doSearchAndRemoveList({currentList:this.plugin.settings.foldersToForceUpdate,setValue:async($)=>{this.plugin.settings=y(this.plugin.settings,(H)=>{H.foldersToForceUpdate=$})},name:"Folders to force update",description:"Folders containing files that should be updated when ANY file in the vault changes. Useful for index files with queries that aggregate data from elsewhere."})}doSearchAndRemoveList({currentList:$,setValue:H,description:X,name:K}){let B;new x.Setting(this.containerEl).setName(K).setDesc(X).addSearch((Z)=>{B=Z,new y1(Z.inputEl,this.app),Z.setPlaceholder("Example: folder1/folder2")}).addButton((Z)=>{Z.setIcon("plus"),Z.setTooltip("Add folder"),Z.onClick(async()=>{if(!B)return;let J=B.getValue();await H([...$,J].filter(q5)),await this.plugin.saveSettings(),B.setValue(""),this.display()})}),$.forEach((Z)=>new x.Setting(this.containerEl).setName(Z).addButton((J)=>J.setButtonText("Remove").onClick(async()=>{await H($.filter((W)=>W!==Z)),await this.plugin.saveSettings(),this.display()})))}renderBuyMeACoffeeBadge($,H=175){let K=$.createEl("a",{href:"https://www.buymeacoffee.com/dsebastien"}).createEl("img");K.src="https://github.com/dsebastien/obsidian-plugin-template/blob/main/src/assets/buy-me-a-coffee.png?raw=true",K.alt="Buy me a coffee",K.width=H}}var V5=($)=>{let H=typeof ExcalidrawAutomate>"u"?void 0:ExcalidrawAutomate;return H?H.isExcalidrawFile($):!1};var n=5000,z5="Canvas.md",w0="md",c="<!-- QueryToSerialize: ",$0="<!-- QueryToSerializeManual: ",H0="<!-- QueryToSerializeOnce: ",X0="<!-- QueryToSerializeOnceAndEject: ",U=" -->",K0="<!-- dataview-serializer-query: ",Z0="<!-- dataview-serializer-query-manual: ",B0="<!-- dataview-serializer-query-once: ",J0="<!-- dataview-serializer-query-once-and-eject: ",W0="<!-- SerializedQuery: ",N0="<!-- SerializedQuery END -->",Y0="<!-- dataview-serializer-result: ",Q0="<!-- dataview-serializer-result-end -->",k6=new RegExp("<!-- SerializedQuery: [^\\n]* -->(?:\\n|$)([\\s\\S]*?)<!-- SerializedQuery END -->(?:\\n|$)","g"),C6=new RegExp("<!-- dataview-serializer-result: [^\\n]* -->(?:\\n|$)([\\s\\S]*?)<!-- dataview-serializer-result-end -->(?:\\n|$)","g"),P5=5,S1=500,_0="<!-- IQ: ",y0="<!-- IQManual: ",x0="<!-- IQOnce: ",S0="<!-- IQOnceAndEject: ",f0=" -->",p="<!-- /IQ -->",A0="<!-- dataview-serializer-iq: ",E0="<!-- dataview-serializer-iq-manual: ",v0="<!-- dataview-serializer-iq-once: ",g0="<!-- dataview-serializer-iq-once-and-eject: ",d="<!-- /dataview-serializer-iq -->";var M5="table",w5="task",N5=["list","table","task"],c0="<!-- DataviewJSToSerialize:",p0="<!-- DataviewJSToSerializeManual:",d0="<!-- DataviewJSToSerializeOnce:",u0="<!-- DataviewJSToSerializeOnceAndEject:",o0="<!-- dataview-serializer-js:",n0="<!-- dataview-serializer-js-manual:",s0="<!-- dataview-serializer-js-once:",l0="<!-- dataview-serializer-js-once-and-eject:",a="<!-- SerializedDataviewJS",G0="<!-- SerializedDataviewJS END -->",t="<!-- dataview-serializer-js-result",q0="<!-- dataview-serializer-js-result-end -->",Q5=5000;function s($){let H=Object.prototype.toString.call($);if($ instanceof Date||typeof $==="object"&&H==="[object Date]")return new $.constructor(+$);else if(typeof $==="number"||H==="[object Number]"||typeof $==="string"||H==="[object String]")return new Date($);else return new Date(NaN)}function j0($,H){if($ instanceof Date)return new $.constructor(H);else return new Date(H)}function D5($,H){let X=s($);if(isNaN(H))return j0($,NaN);if(!H)return X;return X.setDate(X.getDate()+H),X}function O5($,H){let X=s($);if(isNaN(H))return j0($,NaN);if(!H)return X;let K=X.getDate(),B=j0($,X.getTime());B.setMonth(X.getMonth()+H+1,0);let Z=B.getDate();if(K>=Z)return B;else return X.setFullYear(B.getFullYear(),B.getMonth(),K),X}function k5($,H){let{years:X=0,months:K=0,weeks:B=0,days:Z=0,hours:J=0,minutes:W=0,seconds:Y=0}=H,G=s($),j=K||X?O5(G,K+X*12):G,P=Z||B?D5(j,Z+B*7):j,q=W+J*60,C=(Y+q*60)*1000;return j0($,P.getTime()+C)}function C5($,H){let X=s($),K=s(H);return+X<+K}var h5=require("obsidian");var R5=($)=>{return $.toLowerCase().trim().startsWith(w5)};var b5=/\[\[(.+?)\\?\|(.+?)\]\]/g,F5=/\[\[(.+?)\|(.+?)\]\]/g;function I5($){return $.split("/").pop()??$}function V1($){let H=$.lastIndexOf(".");if(H<=0)return $;return $.substring(0,H)}function T$($){if(!$)return $;return $.replace(/^(\s*-\s*)\[.\]\s*/gm,"$1")}var L5=async($)=>{let H=$.app.vault.getFiles(),X="shortest",K=!1,B=$.linkFormat??"shortest";if(B==="obsidian"){let G=$.app.vault.config,j=G?.newLinkFormat;if(j==="relative"||j==="absolute")X="absolute";else X="shortest";K=G?.useMarkdownLinks===!0}else X=B;function Z(G){if(X==="absolute")return!1;return H.filter((P)=>P.name==G).length<=1}function J(G,j){return V1(G)!==j}function W(G,j,P){if(K)return`[${j??V1(G)}](${G})`;if(j)return`[[${G}${P?"\\|":"|"}${j}]]`;return`[[${G}]]`}let Y="";try{if(Y=await $.dataviewApi.tryQueryMarkdown($.query,$.originFile),R5($.query))Y=T$(Y);if($.query.toLocaleLowerCase().contains("table")){Y=Y.replaceAll("\\\\","\\").replaceAll(`
+<`,"<"),b5.lastIndex=0;let G=[...Y.matchAll(b5)];for(let j of G){let P=j[1],q=I5(P),Q=j[2];if(Z(q))if(!J(q,Q)){let C=K?q:Q;Y=Y.replace(j[0],W(C,void 0,!0))}else{let C=K?q:q.endsWith(".md")?V1(q):q;Y=Y.replace(j[0],W(C,Q,!0))}else Y=Y.replace(j[0],W(P,Q,!0))}}else{F5.lastIndex=0;let G=[...Y.matchAll(F5)];for(let j of G){let P=j[1],q=I5(P),Q=j[2];if(K)if(Z(q))if(!J(q,Q))Y=Y.replace(j[0],W(q,void 0,!1));else Y=Y.replace(j[0],W(q,Q,!1));else Y=Y.replace(j[0],W(P,Q,!1));else if(Z(q))if(!J(q,Q))Y=Y.replace(P+"|","");else if(q.endsWith(".md"))Y=Y.replace(P+"|",V1(q)+"|");else Y=Y.replace(P+"|",q+"|")}}}catch(G){let j=G instanceof Error?G.message:String(G);return V(`Failed to serialize query in file: ${$.originFile}`,"warn",G),new h5.Notice(`Dataview Serializer: Invalid query found in ${$.originFile}`),{success:!1,serializedContent:"",error:{message:j,query:$.query}}}if($.indentation&&Y)Y=Y.split(`
+`).map((P)=>{return $.indentation+P}).join(`
+`);return{success:!0,serializedContent:Y}};var U0=($)=>{let H=!1,X=$.toLowerCase();for(let K of N5)if(X.startsWith(K))H=!0;return H};function _$($,H){let X=(K)=>{return H.includes(K)?K:K.trim()};if($.includes(J0.trim())||$.includes(J0))return{flagOpen:X(J0),updateMode:"once-and-eject",syntaxVariant:"alternative"};if($.includes(Z0.trim())||$.includes(Z0))return{flagOpen:X(Z0),updateMode:"manual",syntaxVariant:"alternative"};if($.includes(B0.trim())||$.includes(B0))return{flagOpen:X(B0),updateMode:"once",syntaxVariant:"alternative"};if($.includes(K0.trim())||$.includes(K0))return{flagOpen:X(K0),updateMode:"auto",syntaxVariant:"alternative"};if($.includes(X0.trim())||$.includes(X0))return{flagOpen:X(X0),updateMode:"once-and-eject",syntaxVariant:"legacy"};if($.includes($0.trim())||$.includes($0))return{flagOpen:X($0),updateMode:"manual",syntaxVariant:"legacy"};if($.includes(H0.trim())||$.includes(H0))return{flagOpen:X(H0),updateMode:"once",syntaxVariant:"legacy"};if($.includes(c.trim())||$.includes(c))return{flagOpen:X(c),updateMode:"auto",syntaxVariant:"legacy"};return null}function m5(){return{isCapturing:!1,startLineIndex:-1,flagOpen:"",updateMode:"auto",syntaxVariant:"legacy",indentation:"",accumulatedLines:[]}}function y$($,H){let X=$.join(`
+`),K=X.indexOf(H),B=H.length;if(K===-1)K=X.indexOf(H.trim()),B=H.trim().length;if(K===-1)return"";let Z=X.indexOf(U);if(Z===-1)Z=X.indexOf(U.trim());if(Z===-1)return"";return X.substring(K+B,Z).split(`
+`).map((W)=>W.trim()).join(" ").replace(/\s+/g," ").trim()}var T5=($)=>{let H=[],X=$.split(`
+`),K=m5();for(let B=0;B<X.length;B++){let Z=X[B],J=Z.trim();if(K.isCapturing){if(K.accumulatedLines.push(Z),Z.includes(U)||Z.includes(U.trim())){let W=y$(K.accumulatedLines,K.flagOpen),Y=Z.includes(U)?U:U.trim();if(W&&!H.some((G)=>G.query===W)&&U0(W))H.push({query:W,indentation:K.indentation,updateMode:K.updateMode,flagOpen:K.flagOpen,flagClose:Y,originalQueryDefinition:K.accumulatedLines.join(`
+`),syntaxVariant:K.syntaxVariant});K=m5()}}else{let W=_$(J,Z);if(W){let{flagOpen:Y,updateMode:G,syntaxVariant:j}=W;if(J.includes(U)||J.includes(U.trim())){let q=Z.substring(0,Z.indexOf(Y.trim())),Q=J.indexOf(Y),C=Y.length;if(Q===-1)Q=J.indexOf(Y.trim()),C=Y.trim().length;let w=J.indexOf(U),z=U;if(w===-1)w=J.indexOf(U.trim()),z=Z.includes(U)?U:U.trim();let M=J.substring(Q+C,w).trim();if(!H.some((O)=>O.query===M)&&U0(M))H.push({query:M,indentation:q,updateMode:G,flagOpen:Y,flagClose:z,syntaxVariant:j})}else K={isCapturing:!0,startLineIndex:B,flagOpen:Y,updateMode:G,syntaxVariant:j,indentation:Z.substring(0,Z.indexOf(Y.trim())),accumulatedLines:[Z]}}}}return H};function k($){return $.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}var f1=($)=>{let H=!1;if($.toLowerCase().startsWith(M5))H=!0;return H};function z1($){let{updateMode:H,isManualTrigger:X,isAlreadySerialized:K}=$;if(X)return!1;if(H==="manual")return!0;if(H==="once"&&K)return!0;return!1}var S=require("@codemirror/view"),x5=require("@codemirror/state"),T=require("obsidian");function x$($){let H=$.indexOf(J0);if(H!==-1)return{flagOpen:J0,openIdx:H,queryType:"eject"};let X=$.indexOf(Z0);if(X!==-1)return{flagOpen:Z0,openIdx:X,queryType:"manual"};let K=$.indexOf(B0);if(K!==-1)return{flagOpen:B0,openIdx:K,queryType:"once"};let B=$.indexOf(K0);if(B!==-1)return{flagOpen:K0,openIdx:B,queryType:"auto"};let Z=$.indexOf(X0);if(Z!==-1)return{flagOpen:X0,openIdx:Z,queryType:"eject"};let J=$.indexOf($0);if(J!==-1)return{flagOpen:$0,openIdx:J,queryType:"manual"};let W=$.indexOf(H0);if(W!==-1)return{flagOpen:H0,openIdx:W,queryType:"once"};let Y=$.indexOf(c);if(Y!==-1)return{flagOpen:c,openIdx:Y,queryType:"auto"};return null}function S$($){let H=[],X=[{flag:g0,queryType:"eject",endMarker:d},{flag:E0,queryType:"manual",endMarker:d},{flag:v0,queryType:"once",endMarker:d},{flag:A0,queryType:"auto",endMarker:d},{flag:S0,queryType:"eject",endMarker:p},{flag:y0,queryType:"manual",endMarker:p},{flag:x0,queryType:"once",endMarker:p},{flag:_0,queryType:"auto",endMarker:p}];for(let{flag:B,queryType:Z,endMarker:J}of X){let W=0;while(!0){let Y=$.indexOf(B,W);if(Y===-1)break;let G=$.indexOf(f0,Y+B.length);if(G===-1){W=Y+1;continue}let j=$.indexOf(J,G);if(j===-1){W=Y+1;continue}let P=$.substring(Y+B.length,G).trim();if(!H.some((Q)=>Q.openIdx===Y&&Q.flagOpen!==B)&&P)H.push({flagOpen:B,openIdx:Y,queryType:Z,expression:P,endIdx:j+J.length});W=j+J.length}}H.sort((B,Z)=>B.openIdx-Z.openIdx);let K=new Set;return H.filter((B)=>{if(K.has(B.openIdx))return!1;return K.add(B.openIdx),!0})}function f$($){let H=$.indexOf(l0);if(H!==-1)return{flagOpen:l0,openIdx:H,queryType:"eject"};let X=$.indexOf(n0);if(X!==-1)return{flagOpen:n0,openIdx:X,queryType:"manual"};let K=$.indexOf(s0);if(K!==-1)return{flagOpen:s0,openIdx:K,queryType:"once"};let B=$.indexOf(o0);if(B!==-1)return{flagOpen:o0,openIdx:B,queryType:"auto"};let Z=$.indexOf(u0);if(Z!==-1)return{flagOpen:u0,openIdx:Z,queryType:"eject"};let J=$.indexOf(p0);if(J!==-1)return{flagOpen:p0,openIdx:J,queryType:"manual"};let W=$.indexOf(d0);if(W!==-1)return{flagOpen:d0,openIdx:W,queryType:"once"};let Y=$.indexOf(c0);if(Y!==-1)return{flagOpen:c0,openIdx:Y,queryType:"auto"};return null}function S5($){switch($){case"auto":return{label:"auto",icon:"refresh-cw"};case"manual":return{label:"manual",icon:"hand"};case"once":return{label:"once",icon:"circle-1"};case"eject":return{label:"eject",icon:"log-out"}}}function A$($){let H=document.createElement("span");H.className=`dvs-query-badge dvs-query-badge-${$}`;let X=S5($),K=document.createElement("span");K.className="dvs-badge-icon",T.setIcon(K,X.icon);let B=document.createElement("span");return B.textContent=X.label,H.appendChild(K),H.appendChild(B),H}function E$($){let H=document.createElement("button");return H.className="dvs-refresh-button",H.setAttribute("aria-label","Refresh Dataview Query"),T.setIcon(H,"refresh-cw"),H.addEventListener("click",(X)=>{X.preventDefault(),X.stopPropagation(),$()}),H}var r0=S.Decoration.line({class:"dvs-query-line"}),_5=S.Decoration.line({class:"dvs-results-start-line"}),y5=S.Decoration.line({class:"dvs-results-end-line"}),v$=S.Decoration.mark({class:"dvs-inline-query"}),f5=($,H,X)=>S.ViewPlugin.fromClass(class{decorations;constructor(K){this.decorations=this.buildDecorations(K)}update(K){if(K.docChanged||K.viewportChanged)this.decorations=this.buildDecorations(K.view)}buildDecorations(K){let B=H(),Z=[];class J extends S.WidgetType{query;queryType;constructor(P,q){super();this.query=P;this.queryType=q}toDOM(P){let q=document.createElement("span");q.className="dvs-query-widgets";let Q=A$(this.queryType);if(q.appendChild(Q),B.showRefreshButton){let C=E$(async()=>{try{let w=$.workspace.getLeavesOfType("markdown").find((N)=>N.view instanceof T.MarkdownView&&N.view.contentEl.contains(P.dom));if(!(w?.view instanceof T.MarkdownView))return;let z=w.view.file;if(!z)return;let O=(await X(z,!0,this.query,!0)).errors[0];if(O){let N=O.query.length>50?O.query.substring(0,50)+"...":O.query;new T.Notice(`Query failed:
+"${N}"
+${O.message}`,n*2)}else new T.Notice("Dataview query serialized")}catch(w){console.error("Failed to refresh dataview query",w),new T.Notice("Failed to refresh dataview query")}});q.appendChild(C)}return q}}class W extends S.WidgetType{expression;queryType;constructor(P,q){super();this.expression=P;this.queryType=q}toDOM(P){let q=document.createElement("span");q.className="dvs-inline-query-widgets";let Q=document.createElement("span");Q.className=`dvs-inline-badge dvs-inline-badge-${this.queryType}`;let C=S5(this.queryType),w=document.createElement("span");if(w.className="dvs-inline-badge-icon",T.setIcon(w,C.icon),Q.appendChild(w),q.appendChild(Q),B.showRefreshButton){let z=document.createElement("button");z.className="dvs-inline-refresh-button",z.setAttribute("aria-label","Refresh Inline Query"),T.setIcon(z,"refresh-cw"),z.addEventListener("click",async(M)=>{M.preventDefault(),M.stopPropagation();try{let O=$.workspace.getLeavesOfType("markdown").find((I)=>I.view instanceof T.MarkdownView&&I.view.contentEl.contains(P.dom));if(!(O?.view instanceof T.MarkdownView))return;let N=O.view.file;if(!N)return;let R=(await X(N,!0,this.expression,!0)).errors[0];if(R){let I=R.query.length>50?R.query.substring(0,50)+"...":R.query;new T.Notice(`Inline query failed:
+"${I}"
+${R.message}`,n*2)}else new T.Notice("Inline query serialized")}catch(O){console.error("Failed to refresh inline query",O),new T.Notice("Failed to refresh inline query")}}),q.appendChild(z)}return q}}let Y={isCapturing:!1,startLineNumber:-1,flagOpen:"",queryType:"auto",queryLines:[],lineNumbers:[],isDataviewJS:!1},G={isCapturing:!1,startLineNumber:-1,flagOpen:"",queryType:"auto",queryLines:[],lineNumbers:[],isDataviewJS:!0};for(let{from:P,to:q}of K.visibleRanges){let Q=K.state.doc.lineAt(P),C=K.state.doc.lineAt(q);for(let w=Q.number;w<=C.number;w++){let z=K.state.doc.line(w),M=z.text;if(Y.isCapturing){Y.queryLines.push(M),Y.lineNumbers.push(w),Z.push({from:z.from,to:z.from,decoration:r0});let N=M.indexOf(U),L=M.indexOf(U.trim()),R=N!==-1?N:L,I=N!==-1?U:U.trim();if(R!==-1){let b=Y.queryLines.join(`
+`),{flagOpen:m}=Y,F=b.indexOf(m),g=m.length;if(F===-1)F=b.indexOf(m.trim()),g=m.trim().length;let h=b.indexOf(U);if(h===-1)h=b.indexOf(U.trim());if(F!==-1&&h!==-1){let A=b.substring(F+g,h).split(`
+`).map((O0)=>O0.trim()).join(" ").replace(/\s+/g," ").trim(),i0=z.from+R+I.length;Z.push({from:i0,to:i0,decoration:S.Decoration.widget({widget:new J(A,Y.queryType),side:1})})}Y={isCapturing:!1,startLineNumber:-1,flagOpen:"",queryType:"auto",queryLines:[],lineNumbers:[]}}}else{let N=x$(M);if(N){let{flagOpen:L,openIdx:R,queryType:I}=N,b=M.indexOf(U,R),m=M.indexOf(U.trim(),R),F=b!==-1?b:m,g=b!==-1?U:U.trim();if(F!==-1){Z.push({from:z.from,to:z.from,decoration:r0});let h=M.substring(R+L.length,F).trim(),f=z.from+F+g.length;Z.push({from:f,to:f,decoration:S.Decoration.widget({widget:new J(h,I),side:1})})}else Y={isCapturing:!0,startLineNumber:w,flagOpen:L,queryType:I,queryLines:[M],lineNumbers:[w]},Z.push({from:z.from,to:z.from,decoration:r0})}}if(G.isCapturing){G.queryLines.push(M),G.lineNumbers.push(w),Z.push({from:z.from,to:z.from,decoration:r0});let N=M.indexOf(U),L=M.indexOf(U.trim()),R=N!==-1?N:L,I=N!==-1?U:U.trim();if(R!==-1){let b=G.queryLines.join(`
+`),{flagOpen:m}=G,F=b.indexOf(m),g=m.length;if(F===-1)F=b.indexOf(m.trim()),g=m.trim().length;let h=b.indexOf(U);if(h===-1)h=b.indexOf(U.trim());if(F!==-1&&h!==-1){let f=b.substring(F+g,h).trim(),A=z.from+R+I.length;Z.push({from:A,to:A,decoration:S.Decoration.widget({widget:new J(f,G.queryType),side:1})})}G={isCapturing:!1,startLineNumber:-1,flagOpen:"",queryType:"auto",queryLines:[],lineNumbers:[],isDataviewJS:!0}}}else if(!Y.isCapturing&&B.enableDataviewJS){let N=f$(M);if(N){let{flagOpen:L,openIdx:R,queryType:I}=N,b=M.indexOf(U,R),m=M.indexOf(U.trim(),R),F=b!==-1?b:m,g=b!==-1?U:U.trim();if(Z.push({from:z.from,to:z.from,decoration:r0}),F!==-1){let h=M.substring(R+L.length,F).trim(),f=z.from+F+g.length;Z.push({from:f,to:f,decoration:S.Decoration.widget({widget:new J(h,I),side:1})})}else G={isCapturing:!0,startLineNumber:w,flagOpen:L,queryType:I,queryLines:[M],lineNumbers:[w],isDataviewJS:!0}}}if(!Y.isCapturing&&!G.isCapturing&&(M.includes(W0)||M.includes(Y0)))Z.push({from:z.from,to:z.from,decoration:_5});if(!Y.isCapturing&&!G.isCapturing&&(M.includes(N0)||M.includes(Q0)))Z.push({from:z.from,to:z.from,decoration:y5});if(!Y.isCapturing&&!G.isCapturing&&(M.includes(a)||M.includes(t)))Z.push({from:z.from,to:z.from,decoration:_5});if(!Y.isCapturing&&!G.isCapturing&&(M.includes(G0)||M.includes(q0)))Z.push({from:z.from,to:z.from,decoration:y5});let O=S$(M);for(let N of O)Z.push({from:z.from+N.openIdx,to:z.from+N.endIdx,decoration:v$}),Z.push({from:z.from+N.endIdx,to:z.from+N.endIdx,decoration:S.Decoration.widget({widget:new W(N.expression,N.queryType),side:1})})}}Z.sort((P,q)=>P.from-q.from||P.to-q.to);let j=new x5.RangeSetBuilder;for(let{from:P,to:q,decoration:Q}of Z)j.add(P,q,Q);return j.finish()}},{decorations:(K)=>K.decorations});var g$=[{flag:g0,updateMode:"once-and-eject",syntaxVariant:"alternative",endMarker:d},{flag:E0,updateMode:"manual",syntaxVariant:"alternative",endMarker:d},{flag:v0,updateMode:"once",syntaxVariant:"alternative",endMarker:d},{flag:A0,updateMode:"auto",syntaxVariant:"alternative",endMarker:d},{flag:S0,updateMode:"once-and-eject",syntaxVariant:"legacy",endMarker:p},{flag:y0,updateMode:"manual",syntaxVariant:"legacy",endMarker:p},{flag:x0,updateMode:"once",syntaxVariant:"legacy",endMarker:p},{flag:_0,updateMode:"auto",syntaxVariant:"legacy",endMarker:p}];function A1($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var c$=g$.map(({flag:$,updateMode:H,syntaxVariant:X,endMarker:K})=>{let B=A1($),Z=A1(f0),J=A1(K);return{regex:new RegExp(`${B}(=[^-]*(?:-(?!->)[^-]*)*)${Z}([\\s\\S]*?)${J}`,"g"),updateMode:H,flag:$,syntaxVariant:X}});function E1($){let H=[];for(let{regex:K,flag:B,updateMode:Z,syntaxVariant:J}of c$){K.lastIndex=0;let W;while((W=K.exec($))!==null){let Y=W[1]?.trim()??"",G=W[2]??"";if(!Y)continue;let j=W.index;if(H.some((q)=>q.startOffset===j&&q.flagOpen!==B))continue;H.push({expression:Y,startOffset:j,endOffset:W.index+W[0].length,updateMode:Z,flagOpen:B,currentResult:G,fullMatch:W[0],syntaxVariant:J})}}H.sort((K,B)=>K.startOffset-B.startOffset);let X=new Set;return H.filter((K)=>{if(X.has(K.startOffset))return!1;return X.add(K.startOffset),!0})}function v1($,H,X="auto",K="legacy"){let B,Z;if(K==="alternative"){switch(X){case"manual":B=E0;break;case"once":B=v0;break;case"once-and-eject":B=g0;break;default:B=A0}Z=d}else{switch(X){case"manual":B=y0;break;case"once":B=x0;break;case"once-and-eject":B=S0;break;default:B=_0}Z=p}return`${B}${$}${f0}${H}${Z}`}function P1($,H="auto"){return v1($,"",H)}var A5=/^([ \t]*)```dataview\r?\n([\s\S]*?)\r?\n\1```/gm,E5=/`=\s*([^`]+)`/g;function p$($){let H=[];A5.lastIndex=0;let X;while((X=A5.exec($))!==null){let K=X[1]??"",B=X[2]?.trim()??"";if(B)H.push({query:B,startOffset:X.index,endOffset:X.index+X[0].length,indentation:K,type:"codeblock"})}return H}function d$($){let H=[];E5.lastIndex=0;let X;while((X=E5.exec($))!==null){let K=X[1]?.trim()??"";if(K){let B=X.index;while(B>0&&$[B-1]!==`
+`)B--;let W=$.substring(B,X.index).match(/^([ \t]*)/)?.[1]??"";H.push({query:K,startOffset:X.index,endOffset:X.index+X[0].length,indentation:W,type:"inline"})}}return H}function g1($){let H=p$($),X=d$($);return[...H,...X].sort((K,B)=>K.startOffset-B.startOffset)}function c1($,H){let X=$.split(`
+`).map((K)=>K.trim()).join(" ").replace(/\s+/g," ").trim();return`${H}${c}${X}${U}`}function u$($,H){let X=g1($);for(let K of X)if(H>=K.startOffset&&H<=K.endOffset)return K;return null}function v5($,H){let X=u$($,H);if(!X)return{converted:!1,newText:$,count:0,skipped:[]};if(X.type==="codeblock"&&!U0(X.query))return{converted:!1,newText:$,count:0,skipped:[X.query]};let K=X.type==="inline"?P1("="+X.query):c1(X.query,X.indentation);return{converted:!0,newText:$.substring(0,X.startOffset)+K+$.substring(X.endOffset),count:1,skipped:[]}}function g5($){let H=g1($);if(H.length===0)return{converted:!1,newText:$,count:0,skipped:[]};let X=$,K=0,B=[];for(let Z=H.length-1;Z>=0;Z--){let J=H[Z];if(J.type==="codeblock"&&!U0(J.query)){B.push(J.query);continue}let W=J.type==="inline"?P1("="+J.query):c1(J.query,J.indentation);X=X.substring(0,J.startOffset)+W+X.substring(J.endOffset),K++}return{converted:K>0,newText:X,count:K,skipped:B}}function c5($){let H=g1($);if(H.length===0)return{converted:!1,newText:$,count:0,skipped:[]};let X=$,K=0,B=[];for(let Z=H.length-1;Z>=0;Z--){let J=H[Z];if(J.type==="codeblock"&&!U0(J.query)){B.push(J.query);continue}let W=J.type==="inline"?P1("="+J.query):c1(J.query,J.indentation);X=X.substring(0,J.startOffset)+W+X.substring(J.endOffset),K++}return{converted:K>0,newText:X,count:K,skipped:B}}function p5($){return $!==null&&typeof $==="object"&&"path"in $&&"embed"in $&&typeof $.path==="string"&&typeof $.embed==="boolean"}function d5($){return $!==null&&typeof $==="object"&&"toISO"in $&&"toFormat"in $&&typeof $.toISO==="function"}function u5($){return $!==null&&typeof $==="object"&&"toISO"in $&&"toHuman"in $&&typeof $.toHuman==="function"&&!(("toFormat"in $)&&typeof $.toFormat==="function")}function o5($){return $!==null&&typeof $==="object"&&"$widget"in $&&"markdown"in $&&typeof $.markdown==="function"}function n5($){return $!==null&&typeof $==="object"&&"tagName"in $&&"innerHTML"in $}function o$($){return $!==null&&typeof $==="object"&&!Array.isArray($)&&!p5($)&&!d5($)&&!u5($)&&!o5($)&&!n5($)}function D0($,H){if($===null||$===void 0)return"-";if(typeof $==="string")return $;if(typeof $==="number")return String($);if(typeof $==="boolean")return $?"true":"false";if(typeof $==="function")return"<function>";if(p5($))return n$($);if(d5($)){let X=$.toISO();if(X){if($.hour===0&&$.minute===0&&$.second===0)return $.toISODate()??X;return X}return"-"}if(u5($)){let X=$.toHuman();if(X)return X;return $.toISO()??"-"}if(o5($))return $.markdown();if(n5($))return $.textContent??"";if(Array.isArray($)){if($.length===0)return"-";return $.map((K)=>D0(K,H)).join(", ")}if(o$($)){let X=Object.entries($);if(X.length===0)return"-";return`{ ${X.map(([B,Z])=>`${B}: ${D0(Z,H)}`).join(", ")} }`}return String($)}function n$($){if(typeof $.toString==="function"){let K=$.toString();if(K&&K!=="[object Object]")return K}let H=$.embed?"!":"",X=$.path;if($.subpath){if($.type==="header")X+="#"+$.subpath;else if($.type==="block")X+="#^"+$.subpath}if($.display&&$.display!==$.path)return`${H}[[${X}|${$.display}]]`;return`${H}[[${X}]]`}function s5($){return $.replace(/\|/g,"\\|")}async function l5($){let{expression:H,originFile:X,dataviewApi:K,isTableCell:B=!1}=$,Z=H.startsWith("=")?H.slice(1).trim():H.trim();if(!Z)return{success:!1,serializedContent:"",error:{message:"Empty expression",expression:H}};try{let J=K.page(X,X);if(!J)J=K.page(X);if(!J&&X.endsWith(".md")){let P=X.slice(0,-3);if(J=K.page(P,X),!J)J=K.page(P)}if(!J)return V(`Could not get page metadata for ${X}`,"warn"),{success:!1,serializedContent:"",error:{message:`Could not get page metadata for file: ${X}`,expression:H}};let W={this:J},Y=K.evaluate(Z,W,X);if(!Y.successful)return{success:!1,serializedContent:"",error:{message:Y.error??"Unknown evaluation error",expression:H}};let G=Y.value,j=D0(G,K);if(j==="")j="-";if(B)j=s5(j);return{success:!0,serializedContent:j}}catch(J){let W=J instanceof Error?J.message:String(J);return V(`Failed to evaluate inline expression: ${H}`,"warn",J),{success:!1,serializedContent:"",error:{message:W,expression:H}}}}function r5($,H){let X=H;while(X>0&&$[X-1]!==`
+`)X--;let K=H;while(K<$.length&&$[K]!==`
+`)K++;let Z=$.substring(X,K).trim();if(Z.startsWith("|")||Z.endsWith("|"))return!0;return(Z.match(/(?<!\\)\|/g)??[]).length>=2}async function M1($,H,X=5){let K=[];for(let B=0;B<$.length;B+=X){let Z=$.slice(B,B+X),J=await Promise.all(Z.map(H));K.push(...J)}return K}function i5($){let H=$,X=0;return H=H.replace(/[ \t]*<!-- SerializedQuery: [^\n]* -->(?:\n|$)[\s\S]*?<!-- SerializedQuery END -->(?:\n|$)/g,""),H=H.replace(/[ \t]*<!-- dataview-serializer-result: [^\n]* -->(?:\n|$)[\s\S]*?<!-- dataview-serializer-result-end -->(?:\n|$)/g,""),H=H.replace(/^[ \t]*<!-- QueryToSerialize(?:Manual|Once(?:AndEject)?)?:[\s\S]*?-->(?:\n|$)/gm,()=>{return X++,""}),H=H.replace(/^[ \t]*<!-- dataview-serializer-query(?:-manual|-once(?:-and-eject)?)?:[\s\S]*?-->(?:\n|$)/gm,()=>{return X++,""}),H=H.replace(/<!-- IQ(?:Manual|Once(?:AndEject)?)?: =[^-]*(?:-(?!->)[^-]*)* -->[\s\S]*?<!-- \/IQ -->/g,()=>{return X++,""}),H=H.replace(/<!-- dataview-serializer-iq(?:-manual|-once(?:-and-eject)?)?: =[^-]*(?:-(?!->)[^-]*)* -->[\s\S]*?<!-- \/dataview-serializer-iq -->/g,()=>{return X++,""}),H=H.replace(/[ \t]*<!-- SerializedDataviewJS -->(?:\n|$)[\s\S]*?<!-- SerializedDataviewJS END -->(?:\n|$)/g,""),H=H.replace(/[ \t]*<!-- dataview-serializer-js-result -->(?:\n|$)[\s\S]*?<!-- dataview-serializer-js-result-end -->(?:\n|$)/g,""),H=H.replace(/^[ \t]*<!-- DataviewJSToSerialize(?:Manual|Once(?:AndEject)?)?:[\s\S]*?-->(?:\n|$)/gm,()=>{return X++,""}),H=H.replace(/^[ \t]*<!-- dataview-serializer-js(?:-manual|-once(?:-and-eject)?)?:[\s\S]*?-->(?:\n|$)/gm,()=>{return X++,""}),H=H.replace(/\n{3,}/g,`
+
+`),{newText:H,removedCount:X}}var s$=[{flag:l0,updateMode:"once-and-eject",syntaxVariant:"alternative"},{flag:n0,updateMode:"manual",syntaxVariant:"alternative"},{flag:s0,updateMode:"once",syntaxVariant:"alternative"},{flag:o0,updateMode:"auto",syntaxVariant:"alternative"},{flag:u0,updateMode:"once-and-eject",syntaxVariant:"legacy"},{flag:p0,updateMode:"manual",syntaxVariant:"legacy"},{flag:d0,updateMode:"once",syntaxVariant:"legacy"},{flag:c0,updateMode:"auto",syntaxVariant:"legacy"}];function l$($,H){let X=(K)=>{return H.includes(K)?K:K.trim()};for(let{flag:K,updateMode:B,syntaxVariant:Z}of s$)if($.includes(K.trim())||$.includes(K))return{flagOpen:X(K),updateMode:B,syntaxVariant:Z};return null}function a5(){return{isCapturing:!1,startLineIndex:-1,flagOpen:"",updateMode:"auto",syntaxVariant:"legacy",indentation:"",accumulatedLines:[]}}function r$($,H){let X=$.join(`
+`),K=X.indexOf(H),B=H.length;if(K===-1)K=X.indexOf(H.trim()),B=H.trim().length;if(K===-1)return"";let Z=X.indexOf(U);if(Z===-1)Z=X.indexOf(U.trim());if(Z===-1)return"";return X.substring(K+B,Z).trim()}function t5($){let H=[],X=$.split(`
+`),K=a5();for(let B=0;B<X.length;B++){let Z=X[B],J=Z.trim();if(K.isCapturing){if(K.accumulatedLines.push(Z),Z.includes(U)||Z.includes(U.trim())){let W=r$(K.accumulatedLines,K.flagOpen),Y=Z.includes(U)?U:U.trim();if(W){if(!H.some((j)=>j.jsCode===W))H.push({jsCode:W,indentation:K.indentation,updateMode:K.updateMode,flagOpen:K.flagOpen,flagClose:Y,syntaxVariant:K.syntaxVariant,originalQueryDefinition:K.accumulatedLines.join(`
+`)})}K=a5()}}else{let W=l$(J,Z);if(W){let{flagOpen:Y,updateMode:G,syntaxVariant:j}=W,P=J.includes(U)||J.includes(U.trim()),q=Z.indexOf(Y.trim()),Q=q>=0?Z.substring(0,q):"";if(P){let C=J.indexOf(Y),w=Y.length;if(C===-1)C=J.indexOf(Y.trim()),w=Y.trim().length;let z=J.indexOf(U),M=U;if(z===-1)z=J.indexOf(U.trim()),M=Z.includes(U)?U:U.trim();if(C!==-1&&z!==-1){let O=J.substring(C+w,z).trim();if(O&&!H.some((N)=>N.jsCode===O))H.push({jsCode:O,indentation:Q,updateMode:G,flagOpen:Y,flagClose:M,syntaxVariant:j,originalQueryDefinition:Z})}}else K={isCapturing:!0,startLineIndex:B,flagOpen:Y,updateMode:G,syntaxVariant:j,indentation:Q,accumulatedLines:[Z]}}}}return H}function i$($){return $!==null&&typeof $==="object"&&"path"in $&&"embed"in $&&typeof $.path==="string"&&typeof $.embed==="boolean"}function V0($,H){return D0($,H)}function a$($,H){if(!$||$.length===0)return"";return $.map((K)=>{return`- ${V0(K,H)}`}).join(`
+`)}function t$($,H,X){if(!$||$.length===0)return"";let K=`| ${$.join(" | ")} |`,B=`| ${$.map(()=>"---").join(" | ")} |`,Z=H.map((J)=>{return`| ${J.map((Y)=>{return V0(Y,X).replace(/\|/g,"\\|")}).join(" | ")} |`});return[K,B,...Z].join(`
+`)}function e$($,H,X,K){let B=$.toLowerCase(),Z=H!==null&&H!==void 0?V0(H,K):"";switch(B){case"p":case"div":return Z;case"span":return Z;case"h1":return`# ${Z}`;case"h2":return`## ${Z}`;case"h3":return`### ${Z}`;case"h4":return`#### ${Z}`;case"h5":return`##### ${Z}`;case"h6":return`###### ${Z}`;case"b":case"strong":return`**${Z}**`;case"i":case"em":return`*${Z}*`;case"code":return`\`${Z}\``;case"s":case"strike":case"del":return`~~${Z}~~`;case"u":return Z;case"mark":return`==${Z}==`;case"sup":return`^${Z}^`;case"sub":return`~${Z}~`;case"a":if(X?.href)return`[${Z}](${X.href})`;return Z;case"img":if(X?.src)return`![${X?.alt??Z??""}](${X.src})`;return"";case"br":return`
+`;case"hr":return"---";case"blockquote":return Z.split(`
+`).map((J)=>`> ${J}`).join(`
+`);case"pre":return`\`\`\`
+${Z}
+\`\`\``;case"li":return`- ${Z}`;case"ul":case"ol":return Z;case"table":case"thead":case"tbody":case"tr":case"th":case"td":return Z;default:return Z}}function $6($,H,X){if(!$||$.length===0)return"";let K=[];function B(Z,J){let W=Z.text??"";if(Z.link&&i$(Z.link)){let Y=V0(Z.link,X);W=W?`${Y}: ${W}`:Y}if(K.push(`${J}- ${W}`),Z.children&&Array.isArray(Z.children))for(let Y of Z.children)B(Y,J+" ")}for(let Z of $)B(Z,"");return K.join(`
+`)}function e5($,H){let X=[],K={load:(J,W)=>$.io.load(J,W),csv:(J,W)=>$.io.csv(J,W),normalize:(J,W)=>$.io.normalize(J,W)};return{proxy:{list:(J)=>{let W=Array.isArray(J)?J:J.values??[],Y=a$(W,$);if(Y)X.push({type:"list",content:Y})},table:(J,W)=>{let Y=Array.isArray(W)?W:W.values??[],G=t$(J,Y,$);if(G)X.push({type:"table",content:G})},taskList:(J,W=!1)=>{let Y=Array.isArray(J)?J:J.values??[],G=$6(Y,W,$);if(G)X.push({type:"taskList",content:G})},paragraph:(J)=>{let W=V0(J,$);if(W)X.push({type:"paragraph",content:W})},header:(J,W)=>{let Y=V0(W,$);if(Y){let G="#".repeat(Math.min(Math.max(J,1),6));X.push({type:"header",content:`${G} ${Y}`})}},span:(J)=>{let W=V0(J,$);if(W)X.push({type:"span",content:W})},el:(J,W,Y)=>{let G=e$(J,W,Y,$);if(G){let j=J.toLowerCase(),q=["p","div","h1","h2","h3","h4","h5","h6","blockquote","pre","hr","ul","ol","li"].includes(j)?"paragraph":"span";X.push({type:q,content:G})}},view:()=>{return Promise.reject(Error("dv.view() is not supported in serialized DataviewJS queries."))},executeJs:()=>{return Promise.reject(Error("dv.executeJs() is not supported in serialized DataviewJS queries."))},pages:(J)=>$.pages(J,H),pagePaths:(J)=>$.pagePaths(J,H),page:(J,W)=>$.page(J,W),current:()=>$.page(H),array:(J)=>$.array(J),isArray:(J)=>$.isArray(J),date:(J)=>$.date(J),duration:(J)=>$.duration(J),fileLink:(J,W,Y)=>$.fileLink(J,W,Y),sectionLink:(J,W,Y,G)=>$.sectionLink(J,W,Y,G),blockLink:(J,W,Y,G)=>$.blockLink(J,W,Y,G),compare:(J,W)=>$.compare(J,W),equal:(J,W)=>$.equal(J,W),clone:(J)=>$.clone(J),parse:(J)=>$.parse(J),luxon:$.luxon,io:K,func:$.func,value:$.value,widget:$.widget,evaluate:(J,W)=>$.evaluate(J,W,H),tryEvaluate:(J,W)=>$.tryEvaluate(J,W,H),query:(J,W)=>$.query(J,W??H),queryMarkdown:(J,W)=>$.queryMarkdown(J,W??H),tryQuery:(J,W)=>$.tryQuery(J,W??H),tryQueryMarkdown:(J,W)=>$.tryQueryMarkdown(J,W??H),markdownTable:(J,W)=>$.markdownTable(J,W),markdownList:(J)=>$.markdownList(J),markdownTaskList:(J)=>$.markdownTaskList(J),execute:async(J,W)=>{let Y=await $.queryMarkdown(J,W??H);if(Y)X.push({type:"paragraph",content:Y})}},getMarkdown:()=>{if(X.length===0)return"";return X.map((J)=>J.content).join(`
+
+`)}}}async function H6($,H){return new Promise((X,K)=>{let B=setTimeout(()=>{K(Error(`DataviewJS execution timed out after ${H}ms`))},H);$().then((Z)=>{clearTimeout(B),X(Z)}).catch((Z)=>{clearTimeout(B),K(Z)})})}async function $$($){let{jsCode:H,originFile:X,dataviewApi:K,indentation:B}=$;if(!H||!H.trim())return{success:!1,serializedContent:"",error:{message:"Empty JavaScript code",jsCode:H}};try{let{proxy:Z,getMarkdown:J}=e5(K,X),Y=new(Object.getPrototypeOf(async function(){})).constructor("dv",H);await H6(async()=>{await Y(Z)},Q5);let G=J();if(B&&G)G=G.split(`
+`).map((q)=>{return B+q}).join(`
+`);return{success:!0,serializedContent:G}}catch(Z){let J=Z instanceof Error?Z.message:String(Z);return V(`Failed to execute DataviewJS in file: ${X}`,"warn",Z),{success:!1,serializedContent:"",error:{message:J,jsCode:H}}}}function X6($){return $.plugins?.plugins?.dataview?.api}var l=3;class p1 extends D.Plugin{settings=y(F0,()=>F0);dataviewApi;nextPossibleUpdates=new Map;recentlyUpdatedFiles=new Set;createEventRef=null;modifyEventRef=null;renameEventRef=null;filesToIgnoreFileEvents=new Set;scheduleUpdate=D.debounce(this.processRecentlyUpdatedFiles.bind(this),S1,!0);scheduleForcedUpdate=D.debounce(this.processForceUpdateFiles.bind(this),S1*20,!0);createQueryErrorNotice($,H){let X=H.split("/").pop()||H,K=$.query.length>50?$.query.substring(0,50)+"...":$.query,B=`Dataview Serializer: Query error in ${X}:
+"${K}"
+${$.message}`;new D.Notice(B,n*2)}async processRecentlyUpdatedFiles(){let $=[],H=[...this.recentlyUpdatedFiles];this.recentlyUpdatedFiles.clear();let X=await M1(H,(K)=>this.processFile(K),5);for(let K of X)for(let B of K.errors)$.push({filePath:K.filePath,error:B});if(this.settings.showErrorNotifications&&$.length>0){let K=$.slice(0,l);for(let{filePath:B,error:Z}of K)this.createQueryErrorNotice(Z,B);if($.length>l)new D.Notice(`${$.length-l} more query error(s) occurred. Check console for details.`,n)}}async processForceUpdateFiles(){if(!this.settings.foldersToForceUpdate||this.settings.foldersToForceUpdate.length===0)return;let $=this.app.vault.getMarkdownFiles().filter((K)=>{return this.settings.foldersToForceUpdate.some((B)=>K.path.startsWith(B))}),H=[],X=await M1($,(K)=>this.processFile(K),5);for(let K of X)for(let B of K.errors)H.push({filePath:K.filePath,error:B});if(this.settings.showErrorNotifications&&H.length>0){let K=H.slice(0,l);for(let{filePath:B,error:Z}of K)this.createQueryErrorNotice(Z,B);if(H.length>l)new D.Notice(`${H.length-l} more query error(s) occurred. Check console for details.`,n)}}async onload(){V("Initializing","debug"),this.app.workspace.onLayoutReady(()=>this.initializePlugin())}async initializePlugin(){if(this.dataviewApi=X6(this.app),!this.dataviewApi){V("The Dataview plugin is not installed or enabled. Please make sure it is installed and enabled, then restart Obsidian","error"),new D.Notice("The Dataview plugin is not installed or enabled. Please make sure it is installed and enabled, then restart Obsidian",n);return}if(await this.loadSettings(),!this.settings.disableAutomaticUpdates)this.setupEventHandlers();this.addSettingTab(new x1(this.app,this)),this.addCommand({id:"serialize-all-dataview-queries",name:"Scan and serialize all Dataview queries",callback:async()=>{V("Scanning and serializing all Dataview queries","debug");let $=this.app.vault.getMarkdownFiles(),H=[],X=await M1($,(K)=>this.processFile(K,!1,void 0,!0),5);for(let K of X)for(let B of K.errors)H.push({filePath:K.filePath,error:B});if(this.settings.showErrorNotifications&&H.length>0){let K=H.slice(0,l);for(let{filePath:B,error:Z}of K)this.createQueryErrorNotice(Z,B);if(H.length>l)new D.Notice(`${H.length-l} more query error(s) occurred. Check console for details.`,n)}}}),this.addCommand({id:"serialize-current-file-dataview-queries",name:"Scan and serialize Dataview queries in current file",callback:async()=>{let $=this.app.workspace.getActiveFile();if(!$){new D.Notice("No active file");return}if($.extension!==w0){new D.Notice("The active file is not a Markdown file");return}V(`Scanning and serializing Dataview queries in: ${$.path}`,"debug");let H=await this.processFile($,!0,void 0,!0);if(this.settings.showErrorNotifications&&H.errors.length>0)for(let X of H.errors)this.createQueryErrorNotice(X,H.filePath);else new D.Notice(`Dataview queries serialized in: ${$.name}`)}}),this.addCommand({id:"insert-dataview-serializer-block",name:"Insert Dataview serializer block",editorCallback:($)=>{let H=$.getCursor(),B=`${$.getLine(H.line).match(/^(\s*)/)?.[1]||""}${c}LIST FROM #foo ${U}`;$.replaceRange(B,H);let Z=B.indexOf("LIST FROM #foo"),J={line:H.line,ch:H.ch+Z},W={line:H.line,ch:H.ch+Z+14};$.setSelection(J,W),new D.Notice('Dataview serializer block inserted. Replace "LIST FROM #foo" with your query.')}}),this.addCommand({id:"convert-dataview-query-at-cursor",name:"Convert Dataview query at cursor to serialized format",editorCallback:async($)=>{let H=this.app.workspace.getActiveFile();if(!H){new D.Notice("No active file");return}if(H.extension!==w0){new D.Notice("The active file is not a Markdown file");return}let X=$.getValue(),K=$.getSelection();if(K&&K.length>0){let B=c5(K);if(!B.converted){if(B.skipped.length>0)new D.Notice(`No supported Dataview queries found in selection. Skipped unsupported queries: ${B.skipped.join(", ")}`);else new D.Notice("No Dataview queries found in selection");return}if($.replaceSelection(B.newText),B.skipped.length>0)new D.Notice(`Converted ${B.count} query(ies). Skipped unsupported: ${B.skipped.join(", ")}`);else new D.Notice(`Converted ${B.count} Dataview query(ies) to serialized format`)}else{let B=$.getCursor(),Z=0;for(let W=0;W<B.line;W++)Z+=$.getLine(W).length+1;Z+=B.ch;let J=v5(X,Z);if(!J.converted){if(J.skipped.length>0)new D.Notice(`No supported Dataview query at cursor. Skipped unsupported query: ${J.skipped[0]}`);else new D.Notice("No Dataview query found at cursor. Place cursor inside a ```dataview block or inline query.");return}$.setValue(J.newText),new D.Notice("Converted Dataview query to serialized format")}}}),this.addCommand({id:"convert-all-dataview-queries-in-file",name:"Convert all Dataview queries in current file to serialized format",editorCallback:async($)=>{let H=this.app.workspace.getActiveFile();if(!H){new D.Notice("No active file");return}if(H.extension!==w0){new D.Notice("The active file is not a Markdown file");return}let X=$.getValue(),K=g5(X);if(!K.converted){if(K.skipped.length>0)new D.Notice(`No supported Dataview queries found. Skipped unsupported queries: ${K.skipped.join(", ")}`);else new D.Notice("No Dataview queries found in the current file");return}if($.setValue(K.newText),K.skipped.length>0)new D.Notice(`Converted ${K.count} query(ies). Skipped unsupported: ${K.skipped.join(", ")}`);else new D.Notice(`Converted ${K.count} Dataview query(ies) to serialized format`)}}),this.addCommand({id:"remove-all-queries-in-current-file",name:"Remove all Dataview serializer queries from current file",editorCallback:($)=>{let H=this.app.workspace.getActiveFile();if(!H){new D.Notice("No active file");return}if(H.extension!==w0){new D.Notice("The active file is not a Markdown file");return}let X=$.getValue(),K=i5(X);if(K.removedCount===0){new D.Notice("No Dataview serializer queries found in the current file");return}$.setValue(K.newText),new D.Notice(`Removed ${K.removedCount} Dataview serializer query(ies) from: ${H.name}`)}}),this.registerEditorExtension(f5(this.app,()=>this.settings,this.processFile.bind(this)))}onunload(){}async loadSettings(){V("Loading settings","debug");let $=await this.loadData();if(!$)V("Using default settings","debug"),$=y(F0,()=>F0);let H=!1;if(this.settings=y(this.settings,(X)=>{if($.foldersToScan!==void 0&&$.foldersToScan!==null&&Array.isArray($.foldersToScan))X.foldersToScan=$.foldersToScan;else V("The loaded settings miss the [foldersToScan] property","debug"),H=!0;if($.ignoredFolders!==void 0&&$.ignoredFolders!==null&&Array.isArray($.ignoredFolders))X.ignoredFolders=$.ignoredFolders;else V("The loaded settings miss the [ignoredFolders] property","debug"),H=!0;if($.disableAutomaticUpdates!==void 0&&$.disableAutomaticUpdates!==null&&typeof $.disableAutomaticUpdates==="boolean")X.disableAutomaticUpdates=$.disableAutomaticUpdates;else V("The loaded settings miss the [disableAutomaticUpdates] property","debug"),H=!0;if($.showRefreshButton!==void 0&&$.showRefreshButton!==null&&typeof $.showRefreshButton==="boolean")X.showRefreshButton=$.showRefreshButton;else V("The loaded settings miss the [showRefreshButton] property","debug"),H=!0;if($.foldersToForceUpdate!==void 0&&$.foldersToForceUpdate!==null&&Array.isArray($.foldersToForceUpdate))X.foldersToForceUpdate=$.foldersToForceUpdate;else V("The loaded settings miss the [foldersToForceUpdate] property","debug"),H=!0;if($.showErrorNotifications!==void 0&&$.showErrorNotifications!==null&&typeof $.showErrorNotifications==="boolean")X.showErrorNotifications=$.showErrorNotifications;else V("The loaded settings miss the [showErrorNotifications] property","debug"),H=!0;if($.debugLogging!==void 0&&$.debugLogging!==null&&typeof $.debugLogging==="boolean")X.debugLogging=$.debugLogging;else V("The loaded settings miss the [debugLogging] property","debug"),H=!0;if($.addTrailingNewline!==void 0&&$.addTrailingNewline!==null&&typeof $.addTrailingNewline==="boolean")X.addTrailingNewline=$.addTrailingNewline;else V("The loaded settings miss the [addTrailingNewline] property","debug"),H=!0;if($.linkFormat!==void 0&&$.linkFormat!==null&&($.linkFormat==="obsidian"||$.linkFormat==="shortest"||$.linkFormat==="absolute"))X.linkFormat=$.linkFormat;else V("The loaded settings miss the [linkFormat] property","debug"),H=!0;if($.enableDataviewJS!==void 0&&$.enableDataviewJS!==null&&typeof $.enableDataviewJS==="boolean")X.enableDataviewJS=$.enableDataviewJS;else V("The loaded settings miss the [enableDataviewJS] property","debug"),H=!0}),U1(this.settings.debugLogging),V("Settings loaded","debug",$),H)this.saveSettings()}async saveSettings(){V("Saving settings","debug"),await this.saveData(this.settings),V("Settings saved","debug",this.settings)}setupEventHandlers(){if(this.createEventRef||this.modifyEventRef||this.renameEventRef){V("Event handlers already registered, skipping setup","debug");return}this.app.workspace.onLayoutReady(async()=>{this.createEventRef=this.app.vault.on("create",($)=>{this.recentlyUpdatedFiles.add($),this.scheduleUpdate(),this.scheduleForcedUpdate()}),this.registerEvent(this.createEventRef),this.renameEventRef=this.app.vault.on("rename",($)=>{this.recentlyUpdatedFiles.add($),this.scheduleUpdate(),this.scheduleForcedUpdate()}),this.registerEvent(this.renameEventRef),this.modifyEventRef=this.app.vault.on("modify",($)=>{if($ instanceof D.TFile&&this.filesToIgnoreFileEvents.has($.path)){V(`Ignoring modify event for ${$.path} as it was triggered by the plugin itself`,"debug"),this.filesToIgnoreFileEvents.delete($.path);return}this.recentlyUpdatedFiles.add($),this.scheduleUpdate(),this.scheduleForcedUpdate()}),this.registerEvent(this.modifyEventRef),V("Event handlers registered for automatic updates","debug")})}unregisterEventHandlers(){if(this.createEventRef)this.app.vault.offref(this.createEventRef),this.createEventRef=null;if(this.modifyEventRef)this.app.vault.offref(this.modifyEventRef),this.modifyEventRef=null;if(this.renameEventRef)this.app.vault.offref(this.renameEventRef),this.renameEventRef=null;V("Event handlers unregistered for automatic updates","debug")}async processFile($,H=!1,X,K=!1){let B={filePath:"",errors:[]};if(!($ instanceof D.TFile))return B;let Z=$,J={filePath:Z.path,errors:[]};if(await this.shouldFileBeIgnored(Z,H))return J;try{let Y=await this.app.vault.cachedRead(Z),G=T5(Y),j=E1(Y),P=this.settings.enableDataviewJS?t5(Y):[];if(G.length===0&&j.length===0&&P.length===0)return J;let q=`${Y}`;V(`[DEBUG] Processing ${G.length} queries in file [${Z.path}]`,"debug");for(let C of G){let{query:w,updateMode:z,flagOpen:M,flagClose:O,syntaxVariant:N}=C,L=N==="alternative"?Y0:W0,R=N==="alternative"?Q0:N0;if(V(`[DEBUG] Query: "${w}", mode: ${z}, flagOpen: "${M}", flagClose: "${O}", syntaxVariant: ${N}`,"debug"),X&&w!==X)continue;let I=k(M),b=k(w),m=k(O),F=new RegExp(`${I}${b}\\s*${m}(?:\\n|$)(?:${k(W0)}|${k(Y0)})[^\\n]*${k(U)}`,"m"),g=!!Y.match(F);if(V(`[DEBUG] isAlreadySerialized: ${g}`,"debug"),z1({updateMode:z,isManualTrigger:K,isAlreadySerialized:g})){V("[DEBUG] Skipping query due to shouldSkipQuery","debug");continue}let h=C.indentation;V(`Processing query: [${w}] in file [${Z.path}]`,"debug");let f=await L5({query:w,originFile:Z.path,dataviewApi:this.dataviewApi,app:this.app,indentation:h,linkFormat:this.settings.linkFormat});if(!f.success&&f.error){V(`[DEBUG] Serialization error: ${f.error.message}`,"debug"),J.errors.push(f.error);continue}let A=f.serializedContent;V(`[DEBUG] Serialized content length: ${A.length}, content: "${A.substring(0,100)}..."`,"debug");let i0=new RegExp(`${I}${b}\\s*${m}(?:\\n|$)(?:${k(W0)}|${k(Y0)})[^\\n]*${k(U)}(?:\\n|$)([\\s\\S]*?)(?:${k(N0)}|${k(Q0)})`,"m"),O0=Y.match(i0);if(V(`[DEBUG] Idempotency check - existingMatch found: ${!!O0}`,"debug"),O0){let k0=O0[1]?.trim()??"",C0=A.trim();if(V(`[DEBUG] Idempotency - existing length: ${k0.length}, new length: ${C0.length}, match: ${k0===C0}`,"debug"),k0===C0){V(`Skipping query in [${Z.path}] - content unchanged: "${w}"`,"debug");continue}}if(A!==""){let k0=k(w),C0=k(h),H$=k(M),d1=`(?:${k(W0)}|${k(Y0)})`,u1=`(?:${k(N0)}|${k(Q0)})`,X$=k(O),o1=k(U),R0,z0=C.originalQueryDefinition;if(V(`[DEBUG] Is multi-line query: ${!!z0}, indentation: "${h}"`,"debug"),z0){let K$=k(z0);R0=new RegExp(`(${K$}(?:\\n|$))(?:${d1}[^\\n]*${o1}(?:\\n|$)[\\s\\S]*?${u1}(?:\\n|$))?`,"gm")}else R0=new RegExp(`^(${C0}${H$}${k0}\\s*${X$}(?:\\n|$))(?:${d1}[^\\n]*${o1}(?:\\n|$)[\\s\\S]*?${u1}(?:\\n|$))?`,"gm");V(`[DEBUG] Replacement regex: ${R0.source}`,"debug");let b0=q.match(R0);if(V(`[DEBUG] Regex test - matches: ${b0?b0.length:0}, matched text length: ${b0?.[0]?.length??0}`,"debug"),b0)V(`[DEBUG] Matched text (first 200 chars): "${b0[0]?.substring(0,200)}"`,"debug");let r="",a0=h.length>0||this.settings.addTrailingNewline;if(z==="once-and-eject")r=`${A}
+`;else if(z0)if(f1(w))r=`${z0}
+${L}${w}${U}
+
+${A}
+${a0?`
+`:""}${R}
+`;else r=`${z0}
+${L}${w}${U}
+${A}
+${a0?`
+`:""}${R}
+`;else if(f1(w))r=`${h}${M}${w}${O}
+${L}${w}${U}
+
+${A}
+${a0?`
+`:""}${R}
+`;else r=`${h}${M}${w}${O}
+${L}${w}${U}
+${A}
+${a0?`
+`:""}${R}
+`;V(`[DEBUG] Replacement string length: ${r.length}, first 200 chars: "${r.substring(0,200)}"`,"debug");let n1=q.length;q=q.replace(R0,()=>r),V(`[DEBUG] After replacement - text length before: ${n1}, after: ${q.length}, diff: ${q.length-n1}`,"debug")}}if(q=await this.processInlineQueries(q,Y,Z.path,J,X,K),this.settings.enableDataviewJS&&P.length>0)q=await this.processDataviewJSQueries(q,Y,Z.path,J,P,X,K);let Q=k5(new Date,{seconds:P5});if(this.nextPossibleUpdates.set(Z.path,Q),V(`[DEBUG] Final check - original length: ${Y.length}, updated length: ${q.length}, will save: ${q!==Y}`,"debug"),q!==Y){if(X)this.filesToIgnoreFileEvents.add(Z.path),window.setTimeout(()=>{if(this.filesToIgnoreFileEvents.has(Z.path))this.filesToIgnoreFileEvents.delete(Z.path)},2000);await this.app.vault.modify(Z,q)}}catch(Y){if(this.filesToIgnoreFileEvents.has(Z.path))this.filesToIgnoreFileEvents.delete(Z.path);V("Failed to process the file","warn",Y)}return J}async processInlineQueries($,H,X,K,B,Z=!1){let J=E1($);if(J.length===0)return $;let W=[...J].sort((Y,G)=>G.startOffset-Y.startOffset);for(let Y of W){let{expression:G,updateMode:j,currentResult:P,fullMatch:q,startOffset:Q,syntaxVariant:C}=Y;if(B&&G!==B)continue;if(z1({updateMode:j,isManualTrigger:Z,isAlreadySerialized:P!==void 0&&P!==""}))continue;let z=r5($,Q),M=await l5({expression:G,originFile:X,dataviewApi:this.dataviewApi,isTableCell:z});if(!M.success&&M.error){K.errors.push({message:M.error.message,query:G});continue}let O=M.serializedContent;if(P!==void 0){let L=P.trim(),R=O.trim();if(L===R){V(`Skipping inline query in [${X}] - content unchanged: "${G}"`,"debug");continue}}let N;if(j==="once-and-eject")N=O;else N=v1(G,O,j,C);$=$.substring(0,Q)+N+$.substring(Q+q.length)}return $}async processDataviewJSQueries($,H,X,K,B,Z,J=!1){V(`[DEBUG] Processing ${B.length} DataviewJS queries in file [${X}]`,"debug");for(let W of B){let{jsCode:Y,updateMode:G,indentation:j,syntaxVariant:P,originalQueryDefinition:q}=W;if(Z&&Y!==Z)continue;let Q=P==="alternative"?t:a,C=P==="alternative"?q0:G0,w=H.indexOf(q),z=w!==-1?H.substring(w+q.length):"",M=z.trimStart().startsWith(Q.trim())||z.trimStart().startsWith(a.trim())||z.trimStart().startsWith(t.trim());if(V(`[DEBUG] DataviewJS: isAlreadySerialized: ${M}, mode: ${G}`,"debug"),z1({updateMode:G,isManualTrigger:J,isAlreadySerialized:M})){V("[DEBUG] Skipping DataviewJS query due to shouldSkipQuery","debug");continue}V(`Processing DataviewJS query in file [${X}]`,"debug");let O=await $$({jsCode:Y,originFile:X,dataviewApi:this.dataviewApi,indentation:j});if(!O.success&&O.error){V(`[DEBUG] DataviewJS serialization error: ${O.error.message}`,"debug"),K.errors.push({message:O.error.message,query:Y.substring(0,50)+(Y.length>50?"...":"")});continue}let N=O.serializedContent,L=new RegExp(`${k(q)}(?:\\n|$)(?:${k(a)}|${k(t)})${k(U)}(?:\\n|$)([\\s\\S]*?)(?:${k(G0)}|${k(q0)})`,"m"),R=H.match(L);if(R){let I=R[1]?.trim()??"",b=N.trim();if(I===b){V(`Skipping DataviewJS query in [${X}] - content unchanged`,"debug");continue}}if(N!==""||G==="once-and-eject"){let I=k(q),b=new RegExp(`(${I}(?:\\n|$))(?:(?:${k(a)}|${k(t)})${k(U)}(?:\\n|$)[\\s\\S]*?(?:${k(G0)}|${k(q0)})(?:\\n|$))?`,"gm"),m=j.length>0||this.settings.addTrailingNewline,F;if(G==="once-and-eject")F=`${N}
+`;else F=`${q}
+${Q}${U}
+${N}
+${m?`
+`:""}${C}
+`;$=$.replace(b,()=>F)}}return $}async shouldFileBeIgnored($,H=!1){if(!$.path)return!0;if(w0!==$.extension)return!0;if(z5===$.name)return!0;if((await this.app.vault.read($)).trim().length===0)return!0;if(V5($))return!0;if(H)return!1;if(this.nextPossibleUpdates.has($.path)){let K=this.nextPossibleUpdates.get($.path);if(C5($.stat.mtime,K))return V("File has been updated recently. Ignoring","debug",$.path),!0;else V("File has not been updated recently. Processing","debug",$.path)}return this.settings.ignoredFolders.some((K)=>{if($.path.startsWith(K))return!0;else return!1})}}var Z6=p1;
+
+/* nosourcemap */ \ No newline at end of file