/ *
THIS IS A GENERATED / BUNDLED FILE BY ESBUILD
if you want to view the source visit the plugins github repository
* /
/ *
License obsidian - tasks :
MIT License
Copyright ( c ) 2021 Martin Schenck and Clare Macrae
Permission is hereby granted , free of charge , to any person obtaining a copy
of this software and associated documentation files ( the "Software" ) , to deal
in the Software without restriction , including without limitation the rights
to use , copy , modify , merge , publish , distribute , sublicense , and / or sell
copies of the Software , and to permit persons to whom the Software is
furnished to do so , subject to the following conditions :
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software .
THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE .
* /
/ *
License rrule ( included library ) :
rrule . js : Library for working with recurrence rules for calendar dates .
=== === === === === === === === === === === === === === === === === === === === === === === ==
Copyright 2010 , Jakub Roztocil < jakub @ roztocil . name > and Lars Schöning
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions are met :
1. Redistributions of source code must retain the above copyright notice ,
this list of conditions and the following disclaimer .
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in the
documentation and / or other materials provided with the distribution .
3. Neither the name of The author nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission .
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED . IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE FOR
ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES
( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ;
LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
. / rrule . js and . / test / tests . js is based on python - dateutil . LICENCE :
python - dateutil - Extensions to the standard Python datetime module .
=== === === === === === === === === === === === === === === === === === === === === === ==
Copyright ( c ) 2003 - 2011 - Gustavo Niemeyer < gustavo @ niemeyer . net >
Copyright ( c ) 2012 - Tomi Pieviläinen < tomi . pievilainen @ iki . fi >
All rights reserved .
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions are met :
* Redistributions of source code must retain the above copyright notice ,
this list of conditions and the following disclaimer .
* Redistributions in binary form must reproduce the above copyright notice ,
this list of conditions and the following disclaimer in the documentation
and / or other materials provided with the distribution .
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL ,
EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO ,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR
PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
* /
/ *
License chrono - node ( included library ) :
The MIT License
Copyright ( c ) 2014 , Wanasit Tanakitrungruang
Permission is hereby granted , free of charge , to any person obtaining a copy
of this software and associated documentation files ( the "Software" ) , to deal
in the Software without restriction , including without limitation the rights
to use , copy , modify , merge , publish , distribute , sublicense , and / or sell
copies of the Software , and to permit persons to whom the Software is
furnished to do so , subject to the following conditions :
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software .
THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE .
* /
"use strict" ; var Hk = Object . create ; var fa = Object . defineProperty , Vk = Object . defineProperties , zk = Object . getOwnPropertyDescriptor , Kk = Object . getOwnPropertyDescriptors , Qk = Object . getOwnPropertyNames , Qo = Object . getOwnPropertySymbols , Xk = Object . getPrototypeOf , wc = Object . prototype . hasOwnProperty , Gh = Object . prototype . propertyIsEnumerable ; var jh = ( r , e , t ) => e in r ? fa ( r , e , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : t } ) : r [ e ] = t , Q = ( r , e ) => { for ( var t in e || ( e = { } ) ) wc . call ( e , t ) && jh ( r , t , e [ t ] ) ; if ( Qo ) for ( var t of Qo ( e ) ) Gh . call ( e , t ) && jh ( r , t , e [ t ] ) ; return r } , _e = ( r , e ) => Vk ( r , Kk ( e ) ) ; var Xo = ( r , e ) => { var t = { } ; for ( var n in r ) wc . call ( r , n ) && e . indexOf ( n ) < 0 && ( t [ n ] = r [ n ] ) ; if ( r != null && Qo ) for ( var n of Qo ( r ) ) e . indexOf ( n ) < 0 && Gh . call ( r , n ) && ( t [ n ] = r [ n ] ) ; return t } ; var k = ( r , e ) => ( ) => ( e || r ( ( e = { exports : { } } ) . exports , e ) , e . exports ) , Zk = ( r , e ) => { for ( var t in e ) fa ( r , t , { get : e [ t ] , enumerable : ! 0 } ) } , Yh = ( r , e , t , n ) => { if ( e && typeof e == "object" || typeof e == "function" ) for ( let i of Qk ( e ) ) ! wc . call ( r , i ) && i !== t && fa ( r , i , { get : ( ) => e [ i ] , enumerable : ! ( n = zk ( e , i ) ) || n . enumerable } ) ; return r } ; var pa = ( r , e , t ) => ( t = r != null ? Hk ( Xk ( r ) ) : { } , Yh ( e || ! r || ! r . _ _esModule ? fa ( t , "default" , { value : r , enumerable : ! 0 } ) : t , r ) ) , Jk = r => Yh ( fa ( { } , "__esModule" , { value : ! 0 } ) , r ) ; var N = ( r , e , t ) => new Promise ( ( n , i ) => { var s = u => { try { o ( t . next ( u ) ) } catch ( l ) { i ( l ) } } , a = u => { try { o ( t . throw ( u ) ) } catch ( l ) { i ( l ) } } , o = u => u . done ? n ( u . value ) : Promise . resolve ( u . value ) . then ( s , a ) ; o ( ( t = t . apply ( r , e ) ) . next ( ) ) } ) ; var Re = k ( Hn => { "use strict" ; Object . defineProperty ( Hn , "__esModule" , { value : ! 0 } ) ; Hn . matchAnyPattern = Hn . extractTerms = Hn . repeatedTimeunitPattern = void 0 ; function nE ( r , e ) { let t = e . replace ( /\((?!\?)/g , "(?:" ) ; return ` ${ r } ${ t } \\ s{0,5}(?:,? \\ s{0,5} ${ t } ){0,10} ` } Hn . repeatedTimeunitPattern = nE ; function Bh ( r ) { let e ; return r instanceof Array ? e = [ ... r ] : r instanceof Map ? e = Array . from ( r . keys ( ) ) : e = Object . keys ( r ) , e } Hn . extractTerms = Bh ; function iE ( r ) { return ` (?: ${ Bh ( r ) . sort ( ( t , n ) => n . length - t . length ) . join ( "|" ) . replace ( /\./g , "\\." ) } ) ` } Hn . matchAnyPattern = iE } ) ; var ve = k ( ( Ec , Sc ) => { ( function ( r , e ) { typeof Ec == "object" && typeof Sc != "undefined" ? Sc . exports = e ( ) : typeof define == "function" && define . amd ? define ( e ) : ( r = typeof globalThis != "undefined" ? globalThis : r || self ) . dayjs = e ( ) } ) ( Ec , function ( ) { "use strict" ; var r = 1e3 , e = 6e4 , t = 36e5 , n = "millisecond" , i = "second" , s = "minute" , a = "hour" , o = "day" , u = "week" , l = "month" , c = "quarter" , d = "year" , f = "date" , m = "Invalid Date" , g = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/ , T = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g , y = { name : "en" , weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday" . split ( "_" ) , months : "January_February_March_April_May_June_July_August_September_October_November_December" . split ( "_" ) } , E = function ( j , W , O ) { var H = String ( j ) ; return ! H || H . length >= W ? j : "" + Array ( W + 1 - H . length ) . join ( O ) + j } , x = { s : E , z : function ( j ) { var W = - j . utcOffset ( ) , O = Math . abs ( W ) , H = Math . floor ( O / 60 ) , U = O % 60 ; return ( W <= 0 ? "+" : "-" ) + E ( H , 2 , "0" ) + ":" + E ( U , 2 , "0" ) } , m : function j ( W , O ) { if ( W . date ( ) < O . date ( ) ) return - j ( O , W ) ; var H = 12 * ( O . year ( ) - W . year ( ) ) + ( O . month ( ) - W . month ( ) ) , U = W . clone ( ) . add ( H , l ) , Z = O - U < 0 , p = W . clone ( ) . add ( H + ( Z ? - 1 : 1 ) , l ) ; return + ( - ( H + ( O - U ) / ( Z ? U - p : p - U ) ) || 0 ) } , a : function ( j ) { return j < 0 ? Math . ceil ( j ) || 0 : Math . floor ( j ) } , p : function ( j ) { return { M : l , y : d , w : u , d : o , D : f , h : a , m : s , s : i , ms : n , Q : c } [ j ] || String ( j || "" ) . toLowerCase ( ) . replace ( /s$/ , "" ) } , u : function ( j ) { return j === void 0 } } , R = "en" , $ = { } ; $ [ R ] = y ; var q = function ( j ) { return j instanceof Te } , ne = function ( j , W , O ) { var H ; if ( ! j ) return R ; if ( typeof j == "string" ) $ [ j ] && ( H = j ) , W && ( $ [ j ] = W , H = j ) ; else { var U = j . name ; $ [ U ] = j , H = U } return ! O && H && ( R = H ) , H || ! O && R } , B = function ( j , W ) { if ( q ( j ) ) return j . clone ( ) ; var O = typeof W == "object" ? W : { } ; return O . date = j , O . args = arguments , new Te ( O ) } , G = x ; G . l = ne , G . i = q , G . w = function ( j , W ) { return B ( j , { locale : W . $L , utc : W . $u , x : W . $x , $offset : W . $offset } ) } ; var Te = function ( ) { function j ( O ) { this . $L = ne ( O . locale , null , ! 0 ) , this . parse ( O ) } var W = j . prototype ; return W . parse = function ( O ) { this . $d = function ( H ) { var U = H . date , Z = H . utc ; if ( U === null ) return new Date ( NaN ) ; if ( G . u ( U ) ) return new Date ; if ( U instanceof Date ) return new Date ( U ) ; if ( typeof U == "string" && ! /Z$/i . test ( U ) ) { var p = U . match ( g ) ; if ( p ) { var h = p [ 2 ] - 1 || 0 , b = ( p [ 7 ] || "0" ) . substring ( 0 , 3 ) ; return Z ? new
` ).map(AP).filter(function(t){return t!==null});return mt(mt({},e[0]),e[1])}function _o(r){var e={},t=/DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^; \s ]+)/i.exec(r);if(!t)return e;var n=t[1],i=t[2];return n&&(e.tzid=n),e.dtstart=go(i),e}function AP(r){if(r=r.replace(/^ \s +| \s + $ /,""),!r.length)return null;var e=/^([A-Z]+?)[:;]/.exec(r.toUpperCase());if(!e)return I_(r);var t=e[1];switch(t.toUpperCase()){case"RRULE":case"EXRULE":return I_(r);case"DTSTART":return _o(r);default:throw new Error("Unsupported RFC prop ".concat(t," in ").concat(r))}}function I_(r){var e=r.replace(/^RRULE:/i,""),t=_o(e),n=r.replace(/^(?:RRULE|EXRULE):/i,"").split(";");return n.forEach(function(i){var s=i.split("="),a=s[0],o=s[1];switch(a.toUpperCase()){case"FREQ":t.freq=me[o.toUpperCase()];break;case"WKST":t.wkst=br[o.toUpperCase()];break;case"COUNT":case"INTERVAL":case"BYSETPOS":case"BYMONTH":case"BYMONTHDAY":case"BYYEARDAY":case"BYWEEKNO":case"BYHOUR":case"BYMINUTE":case"BYSECOND":var u=PP(o),l=a.toLowerCase();t[l]=u;break;case"BYWEEKDAY":case"BYDAY":t.byweekday=NP(o);break;case"DTSTART":case"TZID":var c=_o(r);t.tzid=c.tzid,t.dtstart=c.dtstart;break;case"UNTIL":t.until=go(o);break;case"BYEASTER":t.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+a+"'")}}),t}function PP(r){if(r.indexOf(",")!==-1){var e=r.split(",");return e.map(F_)}return F_(r)}function F_(r){return/^[+-]? \d + $ /.test(r)?Number(r):r}function NP(r){var e=r.split(",");return e.map(function(t){if(t.length===2)return br[t];var n=t.match(/^([+-]? \d {1,2})([A-Z]{2}) $ /);if(!n||n.length<3)throw new SyntaxError("Invalid weekday string: ".concat(t));var i=Number(n[1]),s=n[2],a=br[s].weekday;return new Ke(a,i)})}var Mi=function(){function r(e,t){if(isNaN(e.getTime()))throw new RangeError("Invalid date passed to DateWithZone");this.date=e,this.tzid=t}return Object.defineProperty(r.prototype,"isUTC",{get:function(){return!this.tzid||this.tzid.toUpperCase()==="UTC"},enumerable:!1,configurable:!0}),r.prototype.toString=function(){var e=bs(this.date.getTime(),this.isUTC);return this.isUTC?":".concat(e):";TZID=".concat(this.tzid,":").concat(e)},r.prototype.getTime=function(){return this.date.getTime()},r.prototype.rezonedDate=function(){return this.isUTC?this.date:O_(this.date,this.tzid)},r}();function wo(r){for(var e=[],t="",n=Object.keys(r),i=Object.keys(To),s=0;s<n.length;s++)if(n[s]!=="tzid"&&!!ye(i,n[s])){var a=n[s].toUpperCase(),o=r[n[s]],u="";if(!(!Fe(o)||pt(o)&&!o.length)){switch(a){case"FREQ":u=z.FREQUENCIES[r.freq];break;case"WKST":Xt(o)?u=new Ke(o).toString():u=o.toString();break;case"BYWEEKDAY":a="BYDAY",u=__(o).map(function(m){return m instanceof Ke?m:pt(m)?new Ke(m[0],m[1]):new Ke(m)}).toString();break;case"DTSTART":t=IP(o,r.tzid);break;case"UNTIL":u=bs(o,!r.tzid);break;default:if(pt(o)){for(var l=[],c=0;c<o.length;c++)l[c]=String(o[c]);u=l.toString()}else u=String(o)}u&&e.push([a,u])}}var d=e.map(function(m){var g=m[0],T=m[1];return"".concat(g,"=").concat(T.toString())}).join(";"),f="";return d!==""&&(f="RRULE:".concat(d)),[t,f].filter(function(m){return!!m}).join( `
` )}function IP(r,e){return r?"DTSTART"+new Mi(new Date(r),e).toString():""}function FP(r,e){return Array.isArray(r)?!Array.isArray(e)||r.length!==e.length?!1:r.every(function(t,n){return t.getTime()===e[n].getTime()}):r instanceof Date?e instanceof Date&&r.getTime()===e.getTime():r===e}var L_=function(){function r(){this.all=!1,this.before=[],this.after=[],this.between=[]}return r.prototype._cacheAdd=function(e,t,n){t&&(t=t instanceof Date?Xu(t):ym(t)),e==="all"?this.all=t:(n._value=t,this[e].push(n))},r.prototype._cacheGet=function(e,t){var n=!1,i=t?Object.keys(t):[],s=function(c){for(var d=0;d<i.length;d++){var f=i[d];if(!FP(t[f],c[f]))return!0}return!1},a=this[e];if(e==="all")n=this.all;else if(pt(a))for(var o=0;o<a.length;o++){var u=a[o];if(!(i.length&&s(u))){n=u._value;break}}if(!n&&this.all){for(var l=new Dn(e,t),o=0;o<this.all.length&&l.accept(this.all[o]);o++);n=l.getValue(),this._cacheAdd(e,n,t)}return pt(n)?ym(n):n instanceof Date?Xu(n):n},r}();var U_=I(I(I(I(I(I(I(I(I(I(I(I(I([],ge(1,31),!0),ge(2,28),!0),ge(3,31),!0),ge(4,30),!0),ge(5,31),!0),ge(6,30),!0),ge(7,31),!0),ge(8,31),!0),ge(9,30),!0),ge(10,31),!0),ge(11,30),!0),ge(12,31),!0),ge(1,7),!0),W_=I(I(I(I(I(I(I(I(I(I(I(I(I([],ge(1,31),!0),ge(2,29),!0),ge(3,31),!0),ge(4,30),!0),ge(5,31),!0),ge(6,30),!0),ge(7,31),!0),ge(8,31),!0),ge(9,30),!0),ge(10,31),!0),ge(11,30),!0),ge(12,31),!0),ge(1,7),!0),LP=yr(1,29),UP=yr(1,30),Jn=yr(1,31),Tt=yr(1,32),q_=I(I(I(I(I(I(I(I(I(I(I(I(I([],Tt,!0),UP,!0),Tt,!0),Jn,!0),Tt,!0),Jn,!0),Tt,!0),Tt,!0),Jn,!0),Tt,!0),Jn,!0),Tt,!0),Tt.slice(0,7),!0), $ _=I(I(I(I(I(I(I(I(I(I(I(I(I([],Tt,!0),LP,!0),Tt,!0),Jn,!0),Tt,!0),Jn,!0),Tt,!0),Tt,!0),Jn,!0),Tt,!0),Jn,!0),Tt,!0),Tt.slice(0,7),!0),WP=yr(-28,0),qP=yr(-29,0),ei=yr(-30,0),_t=yr(-31,0),j_=I(I(I(I(I(I(I(I(I(I(I(I(I([],_t,!0),qP,!0),_t,!0),ei,!0),_t,!0),ei,!0),_t,!0),_t,!0),ei,!0),_t,!0),ei,!0),_t,!0),_t.slice(0,7),!0),G_=I(I(I(I(I(I(I(I(I(I(I(I(I([],_t,!0),WP,!0),_t,!0),ei,!0),_t,!0),ei,!0),_t,!0),_t,!0),ei,!0),_t,!0),ei,!0),_t,!0),_t.slice(0,7),!0),Y_=[0,31,60,91,121,152,182,213,244,274,305,335,366],B_=[0,31,59,90,120,151,181,212,243,273,304,334,365],vm=function(){for(var r=[],e=0;e<55;e++)r=r.concat(yr(7));return r}();function H_(r,e){var t=Xr(r,1,1),n=ys(r)?366:365,i=ys(r+1)?366:365,s=ho(t),a=Sn(t),o=mt(mt({yearlen:n,nextyearlen:i,yearordinal:s,yearweekday:a}, $ P(r)),{wnomask:null});if(Zt(e.byweekno))return o;o.wnomask=ge(0,n+7);var u,l,c=u=bt(7-a+e.wkst,7);c>=4?(c=0,l=o.yearlen+bt(a-e.wkst,7)):l=n-c;for(var d=Math.floor(l/7),f=bt(l,7),m=Math.floor(d+f/4),g=0;g<e.byweekno.length;g++){var T=e.byweekno[g];if(T<0&&(T+=m+1),T>0&&T<=m){var y=void 0;T>1?(y=c+(T-1)*7,c!==u&&(y-=7-u)):y=c;for(var E=0;E<7&&(o.wnomask[y]=1,y++,o.wdaymask[y]!==e.wkst);E++);}}if(ye(e.byweekno,1)){var y=c+m*7;if(c!==u&&(y-=7-u),y<n)for(var g=0;g<7&&(o.wnomask[y]=1,y+=1,o.wdaymask[y]!==e.wkst);g++);}if(c){var x=void 0;if(ye(e.byweekno,-1))x=-1;else{var R=Sn(Xr(r-1,1,1)), $ =bt(7-R.valueOf()+e.wkst,7),q=ys(r-1)?366:365,ne=void 0; $ >=4?( $ =0,ne=q+bt(R-e.wkst,7)):ne=n-c,x=Math.floor(52+bt(ne,7)/4)}if(ye(e.byweekno,x))for(var y=0;y<c;y++)o.wnomask[y]=1}return o}function $ P(r){var e=ys(r)?366:365,t=Xr(r,1,1),n=Sn(t);return e===365?{mmask:U_,mdaymask: $ _,nmdaymask:G_,wdaymask:vm.slice(n),mrange:B_}:{mmask:W_,mdaymask:q_,nmdaymask:j_,wdaymask:vm.slice(n),mrange:Y_}}function V_(r,e,t,n,i,s){var a={lastyear:r,lastmonth:e,nwdaymask:[]},o=[];if(s.freq===z.YEARLY)if(Zt(s.bymonth))o=[[0,t]];else for(var u=0;u<s.bymonth.length;u++)e=s.bymonth[u],o.push(n.slice(e-1,e+1));else s.freq===z.MONTHLY&&(o=[n.slice(e-1,e+1)]);if(Zt(o))return a;a.nwdaymask=ge(0,t);for(var u=0;u<o.length;u++)for(var l=o[u],c=l[0],d=l[1]-1,f=0;f<s.bynweekday.length;f++){var m=void 0,g=s.bynweekday[f],T=g[0],y=g[1];y<0?(m=d+(y+1)*7,m-=bt(i[m]-T,7)):(m=c+(y-1)*7,m+=bt(7-i[m]+T,7)),c<=m&&m<=d&&(a.nwdaymask[m]=1)}return a}function z_(r,e){e===void 0&&(e=0);var t=r%19,n=Math.floor(r/100),i=r%100,s=Math.floor(n/4),a=n%4,o=Math.floor((n+8)/25),u=Math.floor((n-o+1)/3),l=Math.floor(19*t+n-s-u+15)%30,c=Math.floor(i/4),d=i%4,f=Math.floor(32+2*a+2*c-l-d)%7,m=Math.floor((t+11*l
` ),n=0;n<t.length;){var i=t[n]=t[n].replace(/ \s + $ /g,"");i?n>0&&i[0]===" "?(t[n-1]+=i.slice(1),t.splice(n,1)):n+=1:t.splice(n,1)}return t}function ZP(r){r.forEach(function(e){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(e))throw new Error("unsupported RDATE/EXDATE parm: "+e)})}function ev(r,e){return ZP(e),r.split(",").map(function(t){return go(t)})}function tv(r){var e=this;return function(t){if(t!==void 0&&(e["_".concat(r)]=t),e["_".concat(r)]!==void 0)return e["_".concat(r)];for(var n=0;n<e._rrule.length;n++){var i=e._rrule[n].origOptions[r];if(i)return i}}}var km=function(r){Ts(e,r);function e(t){t===void 0&&(t=!1);var n=r.call(this,{},t)||this;return n.dtstart=tv.apply(n,["dtstart"]),n.tzid=tv.apply(n,["tzid"]),n._rrule=[],n._rdate=[],n._exrule=[],n._exdate=[],n}return e.prototype._iter=function(t){return Z_(t,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},e.prototype.rrule=function(t){rv(t,this._rrule)},e.prototype.exrule=function(t){rv(t,this._exrule)},e.prototype.rdate=function(t){nv(t,this._rdate)},e.prototype.exdate=function(t){nv(t,this._exdate)},e.prototype.rrules=function(){return this._rrule.map(function(t){return Ju(t.toString())})},e.prototype.exrules=function(){return this._exrule.map(function(t){return Ju(t.toString())})},e.prototype.rdates=function(){return this._rdate.map(function(t){return new Date(t.getTime())})},e.prototype.exdates=function(){return this._exdate.map(function(t){return new Date(t.getTime())})},e.prototype.valueOf=function(){var t=[];return!this._rrule.length&&this._dtstart&&(t=t.concat(wo({dtstart:this._dtstart}))),this._rrule.forEach(function(n){t=t.concat(n.toString().split( `
` ))}),this._exrule.forEach(function(n){t=t.concat(n.toString().split( `
` ).map(function(i){return i.replace(/^RRULE:/,"EXRULE:")}).filter(function(i){return!/^DTSTART/.test(i)}))}),this._rdate.length&&t.push(iv("RDATE",this._rdate,this.tzid())),this._exdate.length&&t.push(iv("EXDATE",this._exdate,this.tzid())),t},e.prototype.toString=function(){return this.valueOf().join( `
` )},e.prototype.clone=function(){var t=new e(!!this._cache);return this._rrule.forEach(function(n){return t.rrule(n.clone())}),this._exrule.forEach(function(n){return t.exrule(n.clone())}),this._rdate.forEach(function(n){return t.rdate(new Date(n.getTime()))}),this._exdate.forEach(function(n){return t.exdate(new Date(n.getTime()))}),t},e}(z);function rv(r,e){if(!(r instanceof z))throw new TypeError(String(r)+" is not RRule instance");ye(e.map(String),String(r))||e.push(r)}function nv(r,e){if(!(r instanceof Date))throw new TypeError(String(r)+" is not Date instance");ye(e.map(Number),Number(r))||(e.push(r),On(e))}function iv(r,e,t){var n=!t||t.toUpperCase()==="UTC",i=n?"".concat(r,":"):"".concat(r,";TZID=").concat(t,":"),s=e.map(function(a){return bs(a.valueOf(),n)}).join(",");return"".concat(i).concat(s)}var Em=pa(Xe());function Tr(r,e){return r!==null&&e===null?-1:r===null&&e!==null?1:r!==null&&e!==null?r.isValid()&&!e.isValid()?1:!r.isValid()&&e.isValid()?-1:r.isAfter(e)?1:r.isBefore(e)?-1:0:0}function JP(r,e,t=void 0){if(!e)return ` < i > no $ { r } date < /i>`;let n=Em.parseDate(e,t,{forwardDate:t!=null});return n!==null?window.moment(n).format("YYYY-MM-DD"):`<i>invalid ${r} date</i > ` }function sv(r,e,t){return JP(r,e,t?new Date:void 0)}function Ci(r,e){let t=null,n=Em.parseDate(r,new Date,{forwardDate:e});return n!==null&&(t=window.moment(n)),t}var Ze=class{constructor({rrule:e,baseOnToday:t,referenceDate:n,startDate:i,scheduledDate:s,dueDate:a}){this.rrule=e,this.baseOnToday=t,this.referenceDate=n,this.startDate=i,this.scheduledDate=s,this.dueDate=a}static fromText({recurrenceRuleText:e,startDate:t,scheduledDate:n,dueDate:i}){try{let s=e.match(/^([a-zA-Z0-9, !]+?)( when done)? $ /i);if(s==null)return null;let a=s[1].trim(),o=s[2]!==void 0,u=z.parseText(a);if(u!==null){let l=null;i?l=window.moment(i):n?l=window.moment(n):t&&(l=window.moment(t)),!o&&l!==null?u.dtstart=window.moment(l).startOf("day").utc(!0).toDate():u.dtstart=window.moment().startOf("day").utc(!0).toDate();let c=new z(u);return new Ze({rrule:c,baseOnToday:o,referenceDate:l,startDate:t,scheduledDate:n,dueDate:i})}}catch(s){s instanceof Error&&console.log(s.message)}return null}toText(){let e=this.rrule.toText();return this.baseOnToday&&(e+=" when done"),e}next(e=window.moment()){let t=this.nextReferenceDate(e);if(t!==null){let n=null,i=null,s=null;if(this.referenceDate){if(this.startDate){let a=window.moment.duration(this.startDate.diff(this.referenceDate));n=window.moment(t),n.add(Math.round(a.asDays()),"days")}if(this.scheduledDate){let a=window.moment.duration(this.scheduledDate.diff(this.referenceDate));i=window.moment(t),i.add(Math.round(a.asDays()),"days")}if(this.dueDate){let a=window.moment.duration(this.dueDate.diff(this.referenceDate));s=window.moment(t),s.add(Math.round(a.asDays()),"days")}}return{startDate:n,scheduledDate:i,dueDate:s}}return null}identicalTo(e){return this.baseOnToday!==e.baseOnToday||Tr(this.startDate,e.startDate)!==0||Tr(this.scheduledDate,e.scheduledDate)!==0||Tr(this.dueDate,e.dueDate)!==0?!1:this.toText()===e.toText()}nextReferenceDate(e){return this.baseOnToday?this.nextReferenceDateFromToday(e).toDate():this.nextReferenceDateFromOriginalReferenceDate().toDate()}nextReferenceDateFromToday(e){let t=new z(_e(Q({},this.rrule.origOptions),{dtstart:e.startOf("day").utc(!0).toDate()}));return this.nextAfter(e.endOf("day"),t)}nextReferenceDateFromOriginalReferenceDate(){var t;let e=window.moment((t=this.referenceDate)!=null?t:void 0).endOf("day");return this.nextAfter(e,this.rrule)}nextAfter(e,t){e.utc(!0);let n=window.moment(t.after(e.toDate())),i=this.toText(),s=i.match(/every( \d +)? month(s)?(.*)?/);s!==null&&(i.includes(" on ")||(n=Ze.nextAfterMonths(e,n,t,s[1])));let a=i.match(/every( \d +)? year(s)?(.*)?/);return a!==null&&(n=Ze.nextAfterYears(e,n,t,a[1])),Ze.addTimezone(n)}static nextAfterMonths(e,t,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Ze.isSkippingTooManyMonths(e,t,s);)t=Ze.fromOneDayEarlier(e,n);return t}static isSkippingTooManyMonths(e,t,n){let i=t.month()-e.month();return i+=(t.year()-e.year())*12,i>n
` })),l=l.slice(0,a.autoSuggestMaxItems),l}}function Mm(r,e,t){let n=lN(e.substring(0,t),[["(",")"],["[","]"]])=="("?")":"]",i=r?n+" ":" ",s=r&&e.length>t&&e.charAt(t)===n?1:0;return{postfix:i,insertSkip:s}}function nN(r,e,t,n,i){let s=d=>Object.values(n.prioritySymbols).some(f=>f.length>0&&d.includes(f)),a=[],{postfix:o,insertSkip:u}=Mm(i,r,e);if(r.includes(n.dueDateSymbol)||a.push({displayText: ` $ { n . dueDateSymbol } due date ` ,appendText: ` $ { n . dueDateSymbol } ` }),r.includes(n.startDateSymbol)||a.push({displayText: ` $ { n . startDateSymbol } start date ` ,appendText: ` $ { n . startDateSymbol } ` }),r.includes(n.scheduledDateSymbol)||a.push({displayText: ` $ { n . scheduledDateSymbol } scheduled date ` ,appendText: ` $ { n . scheduledDateSymbol } ` }),globalThis.SHOW_DEPENDENCY_SUGGESTIONS&&(r.includes(n.idSymbol)||a.push({displayText: ` $ { n . idSymbol } Task ID ` ,appendText: ` $ { n . idSymbol } ` }),r.includes(n.dependsOnSymbol)||a.push({displayText: ` $ { n . dependsOnSymbol } Task depends on ID ` ,appendText: ` $ { n . dependsOnSymbol } ` })),!s(r)){let d=n.prioritySymbols,f=["High","Medium","Low","Highest","Lowest"];for(let m=0;m<f.length;m++){let g=f[m],T=d[g];a.push({displayText:i? ` $ { T } priority ` : ` $ { T } $ { g . toLowerCase ( ) } priority ` ,appendText: ` $ { T } $ { o } ` ,insertSkip:i?u:void 0})}}if(r.includes(n.recurrenceSymbol)||a.push({displayText: ` $ { n . recurrenceSymbol } recurring ( repeat ) ` ,appendText: ` $ { n . recurrenceSymbol } ` }),!r.includes(n.createdDateSymbol)){let f=Qt.parseDate("today",!0).format(J.dateFormat);a.push({textToMatch: ` $ { n . createdDateSymbol } created ` ,displayText: ` $ { n . createdDateSymbol } created today ( $ { f } ) ` ,appendText: ` $ { n . createdDateSymbol } $ { f } ` +o,insertSkip:i?u:void 0})}let l=So(r,/([a-zA-Z'_-]*)/g,e),c=[];if(l&&l.length>0){let d=l[0];if(d.length>=Math.max(1,t.autoSuggestMinMatch)){let f=a.filter(m=>(m.textToMatch||m.displayText).toLowerCase().includes(d.toLowerCase()));for(let m of f){let g=i&&(m.displayText.includes("priority")||m.displayText.includes("created"))?d.length+u:d.length;c.push({suggestionType:"match",displayText:m.displayText,appendText:m.appendText,insertAt:l.index,insertSkip:g})}}}return c.length===0&&t.autoSuggestMinMatch===0?a:c}function iN(r,e,t,n,i,s){let a=["today","tomorrow","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","next week","next month","next year"],{postfix:o,insertSkip:u}=Mm(s,r,e),l=[],c=new RegExp( ` ( $ { n } ) \ \ s * ( [ 0 - 9 a - zA - Z ] * ) ` ,"ug"),d=So(r,c,e);if(d&&d.length>=2){let f=d[1],m=d[2];if(m.length<t.autoSuggestMinMatch)return[];let g=m&&m.length>1?Qt.parseDate(Bu(m),!0):null;g&&g.isValid()&&l.push({displayText: ` $ { g . format ( J . dateFormat ) } ` ,appendText: ` $ { f } $ { g . format ( J . dateFormat ) } ` ,insertAt:d.index,insertSkip:d[0].length});let T=1,y=a.filter(E=>m&&m.length>=T&&E.toLowerCase().includes(m.toLowerCase())).slice(0,i);y.length===0&&(y=a.slice(0,i));for(let E of y){let R= ` $ { Qt . parseDate ( E , ! 0 ) . format ( J . dateFormat ) } ` , $ =s?d[0].length+u:d[0].length;l.push({suggestionType:"match",displayText: ` $ { E } ( $ { R } ) ` ,appendText: ` $ { f } $ { R } ` +o,insertAt:d.index,insertSkip: $ })}}return l}function sN(r,e,t,n,i){var d;let s=["every","every day","every week","every month","every month on the","every year","every week on Sunday","every week on Monday","every week on Tuesday","every week on Wednesday","every week on Thursday","every week on Friday","every week on Saturday"],{postfix:a,insertSkip:o}=Mm(i,r,e),u=[],l=new RegExp( ` ( $ { n } ) \ \ s * ( [ 0 - 9 a - zA - Z ] * ) ` ,"ug"),c=So(r,l,e);if(c&&c.length>=2){let f=c[1],m=c[2];if(m.length<t.autoSuggestMinMatch)return[];if(m.length>0){let E=(d=Ze.fromText({recurrenceRuleText:m,startDate:null,scheduledDate:null,dueDate:null}))==null?void 0:d.toText();if(E){let x= ` $ { f } $ { E } ` +a,R=i?c[0].length+o:c[0].length;if(u.push({suggestionType:"match",displayText: ` \u2705 $ { E } ` ,appendText:x,insertAt:c.index,insertSkip:R}),c[0]==x)return[]}}let g=1,T=t.autoSuggestMaxItems/2,y=s.filter(E=>m&&m.length>=g&&E.toLowerCase().includes(m.toLowerCase())).slice(0,T);y.length===0&&m.trim().length===0&&(y=s.slice(0,T));for(let E of y)u.push({suggestionType:"match",displayText: ` $ { E } ` ,appendText: ` $ { f } $ { E } ` ,insertAt:c.index,insertSkip:c[0].length})}return u}functi
\ ` \` \` ${ n }
flowchart LR
classDef TODO stroke : # f33 , stroke - width : 3 px ;
classDef DONE stroke : # 0 c0 , stroke - width : 3 px ;
classDef IN _PROGRESS stroke : # fa0 , stroke - width : 3 px ;
classDef CANCELLED stroke : # ddd , stroke - width : 3 px ;
classDef NON _TASK stroke : # 99 e , stroke - width : 3 px ;
$ { i . join ( `
` )}
$ { s . join ( `
` )}
linkStyle default stroke : gray
\ ` \` \`
` }addEdgeIfNotToInternal(e,t,n,i,s){let a=e.findIndex(l=>l.symbol===t.symbol),o=a!==-1,u=t.type!=="EMPTY";if(o&&u){let l;s?l='-. " \u {1F501}" .-> ':l=" --> ";let c= ` $ { i + 1 } $ { l } $ { a + 1 } ` ;n.push(c)}}getMermaidNodeLabel(e,t){let n=mv(e.name),i=e.type;if(t){let s=sl(e.symbol),a=sl(e.nextStatusSymbol),o= ` [ $ { s } ] - > [ $ { a } ] ` ,u= ` '${n}' ` ,l= ` ( $ { i } ) ` ;return ` [ "${u}<br>${o}<br>${l}" ] : : : $ { i } ` }else return ` [ "${n}" ] : : : $ { i } ` }};var hv=require("obsidian");var tn=class{constructor(e,t){this.name=e,this.sortOrder=t}get groupText(){return this.name!==""? ` % % $ { this . sortOrder } % % $ { this . name } ` :""}};var Ge=class{constructor(e){this._date=null;this._date=e}get moment(){return this._date}formatAsDate(e=""){return this.format(J.dateFormat,e)}formatAsDateAndTime(e=""){return this.format(J.dateTimeFormat,e)}format(e,t=""){return this._date?this._date.format(e):t}toISOString(e){return this._date?this._date.toISOString(e):""}get category(){let e=window.moment(),t=this.moment;return t?t.isBefore(e,"day")?new tn("Overdue",1):t.isSame(e,"day")?new tn("Today",2):t.isValid()?new tn("Future",3):new tn("Invalid date",0):new tn("Undated",4)}get fromNow(){let e=this.moment;if(!e)return new tn("",0);let t=this.fromNowOrder(e);return new tn(e.fromNow(),t)}fromNowOrder(e){if(!e.isValid())return 0;let t=window.moment(),n=e.isSameOrBefore(t,"day"),i=this.fromNowStartDateOfGroup(e,n,t);return Number((n?1:3)+i.format("YYYYMMDD"))}fromNowStartDateOfGroup(e,t,n){let i=e.fromNow(!0).split(" "),s,a=Number(i[0]);isNaN(a)?s=1:s=a;let o=i[1];return t?n.subtract(s,o):n.add(s,o)}postpone(e="days",t=1){if(!this._date)throw new hv.Notice("Cannot postpone a null date");let n=window.moment().startOf("day");return this._date.isSameOrAfter(n,"day")?this._date.clone().add(t,e):n.add(t,e)}};var Cn=class{static priorityNameUsingNone(e){let t="ERROR";switch(e){case"1":t="High";break;case"0":t="Highest";break;case"2":t="Medium";break;case"3":t="None";break;case"4":t="Low";break;case"5":t="Lowest";break}return t}static priorityNameUsingNormal(e){return Cn.priorityNameUsingNone(e).replace("None","Normal")}};var pN=require("obsidian"),Tv=pa(bv());var Nm=class extends Tv.EventEmitter2{constructor(){super(...arguments);this.options={minLevels:{"":"info",tasks:"info"}};this.consoleLoggerRegistered=!1;this.arrAvg=t=>t.reduce((n,i)=>n+i,0)/t.length}configure(t){return this.options=Object.assign({},this.options,t),this}getLogger(t){let n="none",i="";for(let s in this.options.minLevels)t.startsWith(s)&&s.length>=i.length&&(n=this.options.minLevels[s],i=s);return new Im(this,t,n)}onLogEntry(t){return this.on("log",t),this}registerConsoleLogger(){return this.consoleLoggerRegistered?this:(this.onLogEntry(t=>{let n= ` [ $ { window . moment ( ) . format ( "YYYY-MM-DD-HH:mm:ss.SSS" ) } ] [ $ { t . level } ] [ $ { t . module } ] ` ;switch(t.traceId&&(n+= ` [ $ { t . traceId } ] ` ),n+= ` $ { t . message } ` ,t.objects===void 0&&(t.objects=""),t.level){case"trace":console.trace(n,t.objects);break;case"debug":console.debug(n,t.objects);break;case"info":console.info(n,t.objects);break;case"warn":console.warn(n,t.objects);break;case"error":console.error(n,t.objects);break;default:console.log( ` { $ { t . level } } $ { n } ` ,t.objects)}}),this.consoleLoggerRegistered=!0,this)}},Ct=new Nm,Im=class{constructor(e,t,n){this.levels={trace:1,debug:2,info:3,warn:4,error:5};this.logManager=e,this.module=t,this.minLevel=this.levelToInt(n)}levelToInt(e){return e.toLowerCase()in this.levels?this.levels[e.toLowerCase()]:99}log(e,t,n){if(this.levelToInt(e)<this.minLevel)return;let s={level:e,module:this.module,message:t,objects:n,traceId:void 0};this.logManager.emit("log",s)}trace(e,t){this.log("trace",e,t)}debug(e,t){this.log("debug",e,t)}info(e,t){this.log("info",e,t)}warn(e,t){this.log("warn",e,t)}error(e,t){this.log("error",e,t)}logWithId(e,t,n,i){if(this.levelToInt(e)<this.minLevel)return;let a={level:e,module:this.module,message:n,objects:i,traceId:t};this.logManager.emit("log",a)}traceWithId(e,t,n){this.logWithId("trace",e,t,n)}debugWithId(e,t,n){this.logWithId("debug",e,t,n)}infoWithId(e,t,n){this.logWithId("info",e,t,n)}warnWithId(e,t,n){this.logWithId("warn",e,t,n)}errorWithId(e,t,n)
` ),l=u.length,c=new Do(()=>vt.fromPath(r)),d=null,f=0;for(let m of t)if(m.task!==void 0){let g=m.position.start.line;if(g>=l)return n.debug( ` $ { r } Obsidian gave us a line number $ { g } past the end of the file . $ { l } . ` ),o;if((d===null||d.position.end.line<g)&&(d=Os.getSection(g,i.sections),f=0),d===null)continue;let T=u[g];if(T===void 0){n.debug( ` $ { r } : line $ { g } - ignoring 'undefined' line . ` );continue}let y;try{y=ue.fromLine({line:T,taskLocation:new ht(a,g,d.position.start.line,f,Os.getPrecedingHeader(g,i.headings)),fallbackDate:c.value})}catch(E){s(E,r,m,T);continue}y!==null&&(f++,o.push(y))}return o}var Os=class{constructor({metadataCache:e,vault:t,events:n}){this.logger=Ct.getLogger("tasks.Cache");this.logger.debug("Creating Cache object"),this.metadataCache=e,this.metadataCacheEventReferences=[],this.vault=t,this.vaultEventReferences=[],this.events=n,this.eventsEventReferences=[],this.tasksMutex=new Zo,this.state="Cold",this.logger.debug("Cache.constructor(): state = Cold"),this.tasks=[],this.loadedAfterFirstResolve=!1,this.subscribeToCache(),this.subscribeToVault(),this.subscribeToEvents(),this.loadVault()}unload(){this.logger.info("Unloading Cache");for(let e of this.metadataCacheEventReferences)this.metadataCache.offref(e);for(let e of this.vaultEventReferences)this.vault.offref(e);for(let e of this.eventsEventReferences)this.events.off(e)}getTasks(){return this.tasks}getState(){return this.state}notifySubscribers(){this.logger.debug("Cache.notifySubscribers()"),this.events.triggerCacheUpdate({tasks:this.tasks,state:this.state})}subscribeToCache(){this.logger.debug("Cache.subscribeToCache()");let e=this.metadataCache.on("resolved",()=>N(this,null,function*(){this.loadedAfterFirstResolve||(this.loadedAfterFirstResolve=!0,this.loadVault())}));this.metadataCacheEventReferences.push(e);let t=this.metadataCache.on("changed",n=>{this.tasksMutex.runExclusive(()=>{this.indexFile(n)})});this.metadataCacheEventReferences.push(t)}subscribeToVault(){this.logger.debug("Cache.subscribeToVault()");let{useFilenameAsScheduledDate:e}=X(),t=this.vault.on("create",s=>{s instanceof Ss.TFile&&(this.logger.debug( ` Cache . subscribeToVault . createdEventReference ( ) $ { s . path } ` ),this.tasksMutex.runExclusive(()=>{this.indexFile(s)}))});this.vaultEventReferences.push(t);let n=this.vault.on("delete",s=>{s instanceof Ss.TFile&&(this.logger.debug( ` Cache . subscribeToVault . deletedEventReference ( ) $ { s . path } ` ),this.tasksMutex.runExclusive(()=>{this.tasks=this.tasks.filter(a=>a.path!==s.path),this.notifySubscribers()}))});this.vaultEventReferences.push(n);let i=this.vault.on("rename",(s,a)=>{s instanceof Ss.TFile&&(this.logger.debug( ` Cache . subscribeToVault . renamedEventReference ( ) $ { s . path } ` ),this.tasksMutex.runExclusive(()=>{let o=new Qe(s.path),u=new Do(()=>vt.fromPath(s.path));this.tasks=this.tasks.map(l=>l.path===a?e?vt.updateTaskPath(l,s.path,u.value):new ue(_e(Q({},l),{taskLocation:l.taskLocation.fromRenamedFile(o)})):l),this.notifySubscribers()}))});this.vaultEventReferences.push(i)}subscribeToEvents(){this.logger.debug("Cache.subscribeToEvents()");let e=this.events.onRequestCacheUpdate(t=>{t({tasks:this.tasks,state:this.state})});this.eventsEventReferences.push(e)}loadVault(){return this.logger.debug("Cache.loadVault()"),this.tasksMutex.runExclusive(()=>N(this,null,function*(){this.state="Initializing",this.logger.debug("Cache.loadVault(): state = Initializing"),yield Promise.all(this.vault.getMarkdownFiles().map(e=>this.indexFile(e))),this.state="Warm",this.logger.debug("Cache.loadVault(): state = Warm"),this.notifySubscribers()}))}indexFile(e){return N(this,null,function*(){let t=this.metadataCache.getFileCache(e);if(t==null)return;if(!e.path.endsWith(".md")){this.logger.debug("indexFile: skipping non-markdown file: "+e.path);return}this.logger.debug("Cache.indexFile: "+e.path);let n=this.tasks.filter(a=>a.path===e.path),i=t.listItems,s=[];if(i!==void 0){let a=yield this.vault.cachedRead(e);s=this.getTasksFromFileContent(a,i,t,e.path,this.reportTaskParsingErrorToUser,this.logger)}ue.tasksListsIdentical(n,s)||(this.tasks=this.tasks.filter(a=>a.path!=
The following task has been ignored , to prevent Tasks queries getting stuck with 'Loading Tasks ...'
Error : $ { e }
File : $ { t }
Line number : $ { n . position . start . line }
Task line : $ { i }
Please create a bug report for this message at
https : //github.com/obsidian-tasks-group/obsidian-tasks/issues/new/choose
to help us find and fix the underlying issue .
Include :
- either a screenshot of the error popup , or copy the text from the console , if on a desktop machine .
- the output from running the Obsidian command 'Show debug info'
The error popup will only be shown when Tasks is starting up , but if the error persists ,
it will be shown in the console every time this file is edited during the Obsidian
session .
` ;this.logger.error(s),e instanceof Error&&this.logger.error(e.stack?e.stack:"Cannot determine stack"),this.state==="Initializing"&&new Ss.Notice(s,1e4)}static getSection(e,t){if(t===void 0)return null;for(let n of t)if(n.position.start.line<=e&&n.position.end.line>=e)return n;return null}static getPrecedingHeader(e,t){if(t===void 0)return null;let n=null;for(let i of t){if(i.position.start.line>e)return n;n=i.heading}return n}};var ah=require("obsidian");var yw=require("obsidian");function Ue(){}function qm(r){return r()}function _v(){return Object.create(null)}function qt(r){r.forEach(qm)}function dl(r){return typeof r=="function"}function rn(r,e){return r!=r?e==e:r!==e||r&&typeof r=="object"||typeof r=="function"}function vv(r){return Object.keys(r).length===0}var wv=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global,Ro=class{constructor(e){this.options=e,this._listeners="WeakMap"in wv?new WeakMap:void 0}observe(e,t){return this._listeners.set(e,t),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){var e;return(e=this._observer)!==null&&e!==void 0?e:this._observer=new ResizeObserver(t=>{var n;for(let i of t)Ro.entries.set(i.target,i),(n=this._listeners.get(i.target))===null||n===void 0||n(i)})}};Ro.entries="WeakMap"in wv?new WeakMap:void 0;var kv=!1;function hN(){kv=!0}function gN(){kv=!1}function F(r,e){r.appendChild(e)}function de(r,e,t){r.insertBefore(e,t||null)}function ae(r){r.parentNode&&r.parentNode.removeChild(r)}function Ui(r,e){for(let t=0;t<r.length;t+=1)r[t]&&r[t].d(e)}function K(r){return document.createElement(r)}function yN(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function Me(r){return document.createTextNode(r)}function oe(){return Me(" ")}function Ev(){return Me("")}function xe(r,e,t,n){return r.addEventListener(e,t,n),()=>r.removeEventListener(e,t,n)}function Sv(r){return function(e){return e.preventDefault(),r.call(this,e)}}function L(r,e,t){t==null?r.removeAttribute(e):r.getAttribute(e)!==t&&r.setAttribute(e,t)}function Ov(r){let e;return{p(...t){e=t,e.forEach(n=>r.push(n))},r(){e.forEach(t=>r.splice(r.indexOf(t),1))}}}function bN(r){return Array.from(r.childNodes)}function Fr(r,e){e=""+e,r.data!==e&&(r.data=e)}function vr(r,e){r.value=e==null?"":e}function $ m(r,e,t){for(let n=0;n<r.options.length;n+=1){let i=r.options[n];if(i.__value===e){i.selected=!0;return}}(!t||e!==void 0)&&(r.selectedIndex=-1)}function Dv(r){let e=r.querySelector(":checked");return e&&e.__value}var ll;function TN(){if(ll===void 0){ll=!1;try{typeof window!="undefined"&&window.parent&&window.parent.document}catch(r){ll=!0}}return ll}function xv(r,e){getComputedStyle(r).position==="static"&&(r.style.position="relative");let n=K("iframe");n.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),n.setAttribute("aria-hidden","true"),n.tabIndex=-1;let i=TN(),s;return i?(n.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}< \/ script>",s=xe(window,"message",a=>{a.source===n.contentWindow&&e()})):(n.src="about:blank",n.onload=()=>{s=xe(n.contentWindow,"resize",e),e()}),F(r,n),()=>{(i||s&&n.contentWindow)&&s(),ae(n)}}function Pn(r,e,t){r.classList[t?"add":"remove"](e)}var Ms=class{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,n=null){this.e||(this.is_svg?this.e=yN(t.nodeName):this.e=K(t.nodeType===11?"TEMPLATE":t.nodeName),this.t=t.tagName!=="TEMPLATE"?t:t.content,this.c(e)),this.i(n)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;t<this.n.length;t+=1)de(this.t,this.n[t],e)}p(e){this.d(),this.h(e),this.i(this.a)}d(){this.n.forEach(ae)}};var Mo;function xo(r){Mo=r}function _N(){if(!Mo)throw new Error("Function called outside component initialization");return Mo}function jm(r){_N(). $ $ .on_mount.push(r)}var xs=[];var Ye=[],Rs=[],Um=[],vN=Promise.
The task line not updated is :
$ { r . originalMarkdown }
In this markdown file :
"${r.taskLocation.path}"
Note : further clicks on this checkbox will usually now be ignored until the file is opened ( or certain , specific edits are made - it ' s complicated ) .
Recommendations :
1. Close all panes that have the above file open , and then re - open the file .
2. Check for exactly identical copies of the task line , in this file , and see if you can make them different .
` ;fl(c);return}let l=Math.min(Math.pow(10,s),100);o.debug( ` timeout = $ { l } ` ),setTimeout(()=>N(void 0,null,function*(){yield Nv({originalTask:r,newTasks:e,vault:t,metadataCache:n,workspace:i,previousTries:s+1})}),l)});try{let[l,c,d]=yield Iv(r,t),f=[...d.slice(0,l),...e.map(m=>m.toFileLineString()),...d.slice(l+1)];yield t.modify(c,f.join( `
` ))}catch(l){if(l instanceof ri){l.message&&Pv(l.message),yield u();return}else if(l instanceof pl){yield u();return}else l instanceof Error&&fl(l.message)}});function Iv(r,e){return N(this,null,function*(){if(Co===void 0)throw new ri;let t=e.getAbstractFileByPath(r.path);if(!(t instanceof Ao.TFile))throw new ri( ` Tasks : No file found for task $ { r . description } . Retrying ... ` );if(!xN.includes(t.extension))throw new Error( ` Tasks : Does not support files with the $ { t . extension } file extension . ` );let n=Co.getFileCache(t);if(n==null||n===null)throw new ri( ` Tasks : No file cache found for file $ { t . path } . Retrying ... ` );let i=n.listItems;if(i===void 0||i.length===0)throw new ri( ` Tasks : No list items found in file cache of $ { t . path } . Retrying ... ` );let a=(yield e.read(t)).split( `
` ),o=MN(r,a,i,RN);if(o===void 0)throw new pl;return[o,t,a]})}function Hm(r,e){return N(this,null,function*(){try{let[t,n,i]=yield Iv(r,e);return[t,n]}catch(t){t instanceof ri?t.message&&Pv(t.message):t instanceof Error&&fl(t.message)}})}function Fv(r,e){return r<e.length}function MN(r,e,t,n){let i=CN(r,e);return i!==void 0||(i=AN(r,e),i!==void 0)?i:PN(r,e,t,n)}function CN(r,e){let t=r.taskLocation.lineNumber;if(Fv(t,e)&&e[t]===r.originalMarkdown)return ml().debug( ` Found original markdown at original line number $ { t } ` ),t}function AN(r,e){let t=[];for(let n=0;n<e.length;n++)e[n]===r.originalMarkdown&&t.push(n);if(t.length===1)return t[0]}function PN(r,e,t,n){let i,s=0;for(let a of t){let o=a.position.start.line;if(!Fv(o,e))return;if(o<r.taskLocation.sectionStart||a.task===void 0)continue;let u=e[o];if(be.getInstance().includedIn(u)){if(s===r.taskLocation.sectionIndex){if(u===r.originalMarkdown)i=o;else{n( ` Tasks : Unable to find task in file $ { r . taskLocation . path } .
Expected task :
$ { r . originalMarkdown }
Found task :
$ { u } ` );return}break}s++}}return i}function Cs(r){return r.charAt(0).toUpperCase()+r.slice(1)}function gt(r,e){if(e===null)return Cs(r);let t=r.toLowerCase().indexOf(e.toLowerCase());if(t===-1)return ` $ { Cs ( r ) } ( < span class = "accesskey" > $ { e . toLowerCase ( ) } < / s p a n > ) ` ; l e t n = r . s u b s t r i n g ( 0 , t ) ; r e t u r n n + = ' < s p a n c l a s s = " a c c e s s k e y " > ' , t = = = 0 ? n + = r . s u b s t r i n g ( t , t + 1 ) . t o U p p e r C a s e ( ) : n + = r . s u b s t r i n g ( t , t + 1 ) , n + = " < / s p a n > " , n + = r . s u b s t r i n g ( t + 1 ) , n = C s ( n ) , n } f u n c t i o n L v ( r ) { v a r t ; i f ( ! r . r e c u r r e n c e R u l e ) r e t u r n { p a r s e d R e c u r r e n c e : " < i > n o t r e c u r r i n g < / > " , i s R e c u r r e n c e V a l i d : ! 0 } ; l e t e = ( t = Z e . f r o m T e x t ( { r e c u r r e n c e R u l e T e x t : r . r e c u r r e n c e R u l e , s t a r t D a t e : n u l l , s c h e d u l e d D a t e : n u l l , d u e D a t e : n u l l } ) ) = = n u l l ? v o i d 0 : t . t o T e x t ( ) ; r e t u r n e ? r . s t a r t D a t e | | r . s c h e d u l e d D a t e | | r . d u e D a t e ? { p a r s e d R e c u r r e n c e : e , i s R e c u r r e n c e V a l i d : ! 0 } : { p a r s e d R e c u r r e n c e : " < i > d u e , s c h e d u l e d o r s t a r t d a t e r e q u i r e d < / i > " , i s R e c u r r e n c e V a l i d : ! 1 } : { p a r s e d R e c u r r e n c e : " < i > i n v a l i d r e c u r r e n c e r u l e < / i > " , i s R e c u r r e n c e V a l i d : ! 1 } } f u n c t i o n N N ( r ) { l e t e , t = g t ( r [ 2 ] , r [ 4 ] ) + " " , n , i , s , a , o , u , l , c , d ; r e t u r n { c ( ) { e = K ( " l a b e l " ) , n = o e ( ) , i = K ( " i n p u t " ) , s = o e ( ) , a = K ( " c o d e " ) , o = M e ( r [ 3 ] ) , u = o e ( ) , l = n e w M s ( ! 1 ) , L ( e , " f o r " , r [ 2 ] ) , L ( i , " i d " , r [ 2 ] ) , L ( i , " t y p e " , " t e x t " ) , L ( i , " c l a s s " , " t a s k s - m o d a l - d a t e - i n p u t " ) , L ( i , " p l a c e h o l d e r " , I N ) , L ( i , " a c c e s s k e y " , r [ 4 ] ) , P n ( i , " t a s k s - m o d a l - e r r o r " , ! r [ 1 ] ) , l . a = n u l l , L ( a , " c l a s s " , " t a s k s - m o d a l - p a r s e d - d a t e " ) } , m ( f , m ) { d e ( f , e , m ) , e . i n n e r H T M L = t , d e ( f , n , m ) , d e ( f , i , m ) , v r ( i , r [ 0 ] ) , d e ( f , s , m ) , d e ( f , a , m ) , F ( a , o ) , F ( a , u ) , l . m ( r [ 5 ] , a ) , c | | ( d = x e ( i , " i n p u t " , r [ 7 ] ) , c = ! 0 ) } , p ( f , [ m ] ) { m & 2 0 & & t ! = = ( t = g t ( f [ 2 ] , f [ 4 ] ) + " " ) & & ( e . i n n e r H T M L = t ) , m & 4 & & L ( e , " f o r " , f [ 2 ] ) , m & 4 & & L ( i , " i d " , f [ 2 ] ) , m & 1 6 & & L ( i , " a c c e s s k e y " , f [ 4 ] ) , m & 1 & & i . v a l u e ! = = f [ 0 ] & & v r ( i , f [ 0 ] ) , m & 2 & & P n ( i , " t a s k s - m o d a l - e r r o r " , ! f [ 1 ] ) , m & 8 & & F r ( o , f [ 3 ] ) , m & 3 2 & & l . p ( f [ 5 ] ) } , i : U e , o : U e , d ( f ) { f & & a e ( e ) , f & & a e ( n ) , f & & a e ( i ) , f & & a e ( s ) , f & & a e ( a ) , c = ! 1 , d ( ) } } } v a r I N = " T r y ' M o n ' o r ' t m ' t h e n s p a c e " ; f u n c t i o n F N ( r , e , t ) { l e t { i d : n } = e , { d a t e S y m b o l : i } = e , { d a t e : s } = e , { i s D a t e V a l i d : a } = e , { f o r w a r d O n l y : o } = e , { a c c e s s k e y : u } = e , l ; f u n c t i o n c ( ) { s = t h i s . v a l u e , t ( 0 , s ) , t ( 2 , n ) , t ( 6 , o ) , t ( 5 , l ) } r e t u r n r . $ $ s e t = d = > { " i d " i n d & & t ( 2 , n = d . i d ) , " d a t e S y m b o l " i n d & & t ( 3 , i = d . d a t e S y m b o l ) , " d a t e " i n d & & t ( 0 , s = d . d a t e ) , " i s D a t e V a l i d " i n d & & t ( 1 , a = d . i s D a t e V a l i d ) , " f o r w a r d O n l y " i n d & & t ( 6 , o = d . f o r w a r d O n l y ) , " a c c e s s k e y " i n d & & t ( 4 , u = d . a c c e s s k e y ) } , r . $ $ . u p d a t e = ( ) = > { i f ( r . $ $ . d i r t y & 1 0 1 ) { e : t ( 0 , s = B u ( s ) ) , t ( 5 , l = s v ( n , s , o ) ) , t ( 1 , a = ! l . i n c l u d e s ( " i n v a l i d " ) ) } } , [ s , a , n , i , u , l , o , c ] } v a r V m = c l a s s e x t e n d s _ r { c o n s t r u c t o r ( e ) { s u p e r ( ) , n n ( t h i s , e , F N , N N , r n , { i d : 2 , d a t e S y m b o l : 3 , d a t e : 0 , i s D a t e V a l i d : 1 , f o r w a r d O n l y : 6 , a c c e s s k e y : 4 } ) } } , W i = V m ; v a r q i = M a t h . m i n , j t = M a t h . m a x , N o = M a t h . r o u n d ; v a r N n = r = > ( { x : r , y : r } ) , L N = { l e f t : " r i g h t " , r i g h t : " l e f t " , b o t t o m : " t o p " , t o p : " b o t t o m " } , U N = { s t a r t : " e n d " , e n d : " s t a r t " } ; f u n c t i o n z m ( r , e , t ) { r e t u r n j t ( r , q i ( e , t ) ) } f u n c t i o n A s ( r , e ) { r e t u r n t y p e o f r = = " f u n c t i o n " ? r ( e ) : r } f u n c t i o n I n ( r ) { r e t u r n r . s p l i t ( " - " ) [ 0 ] } f u n c t i o n P s ( r ) { r e t u r n r . s p l i t ( " - " ) [ 1 ] } f u n c t i o n K m ( r ) { r e t u r n r = = = " x " ? " y " : " x " } f u n c t i o n Q m ( r ) { r e t u r n r = = = " y " ? " h e i g h t " : " w i d t h " } f u n c t i o n N s ( r ) { r e t u r n [ " t o p " , " b o t t o m " ] . i n c l u d e s ( I n ( r ) ) ? " y " : " x " } f u n c t i o n X m ( r ) { r e t u r n K m ( N s ( r ) ) } f u n c t i o n U v ( r , e , t ) { t = = = v o i d 0 & & ( t = ! 1 ) ; l e t n = P s ( r ) , i = X m ( r ) , s = Q m ( i ) , a = i = = = " x " ? n = = = ( t ? " e n d " : " s t a r t " ) ? " r i g h t " : " l e f t " : n = = = " s t a r t " ? " b o t t o m " : " t o p " ; r e t u r n e . r e f e r e n c e [ s ] > e . f l o a t i n g [ s ] & & ( a = P o ( a ) ) , [ a , P o ( a ) ] } f u n c t i o n W v ( r ) { l e t e = P o ( r ) ; r e t u r n [ h l ( r ) , e , h l ( e ) ] } f u n c t i o n h l ( r ) { r e t u r n r . r e p l a c e ( / s t a r t | e n d / g , e = > U N [ e ] ) } f u n c t i o n W N ( r , e , t ) { l e t n = [ " l e f t " , " r i g h t " ] , i = [ " r i g h t " , " l e f t " ] , s = [ " t o p " , " b o t t o m " ] , a = [ " b o t t o m " , " t o p " ] ; s w i t c h ( r ) { c a s e " t o p " : c a s e " b o t t o m " : r e t u r n t ? e ? i : n : e ? n : i ; c a s e " l e f t " : c a s e " r i g h t " : r e t u r n e ? s : a ; d e f a u l t : r e t u r n [ ] } } f u n c t i o n q v ( r , e , t , n ) { l e t i = P s ( r ) , s = W N ( I n ( r ) , t = = = " s t a r t " , n ) ; r e t u r n i & & ( s = s . m a p ( a = > a + " - " + i ) , e & & ( s = s . c o n c a t ( s . m a p ( h l ) ) ) ) , s } f u n c t i o n P o ( r ) { r e t u r n r . r e p l a c e ( / l e f t | r i g h t | b o t t o m | t o p / g , e = > L N [ e ] ) } f u n c t i o n q N ( r ) { r e t u r n Q ( { t o p : 0 , r i g h t : 0 , b o t t o m : 0 , l e f t : 0 } , r ) } f u n c t i o n $ v ( r ) { r e t u r n t y p e o f r ! = " n u m b e r " ? q N ( r ) : { t o p : r , r i g h t : r , b o t t o m : r , l e f t : r } } f u n c t i o n $ i ( r ) { r e t u r n _ e ( Q ( { } , r ) , { t o p : r . y , l e f t : r . x , r i g h t : r . x + r . w i d t h , b o t t o m : r . y + r . h e i g h t } ) } f u n c t i o n j v ( r , e , t ) { l e t { r e f e r e n c e : n , f l o a t i n g : i } = r , s = N s ( e ) , a = X m ( e ) , o = Q m ( a ) , u = I n ( e ) , l = s = = = " y " , c = n . x + n . w i d t h / 2 - i . w i d t h / 2 , d = n . y + n . h e i g h t / 2 - i . h e i g h t / 2 , f = n [ o ] / 2 - i [ o ] / 2 , m ; s w i t c h ( u ) { c a s e " t o p " : m = { x : c , y : n . y - i . h e i g h t } ; b r e a k ; c a s e " b o t t o m " : m = { x : c , y : n . y + n . h e i g h t } ; b r e a k ; c a s e " r i g
` );e.setLine(o,g)};new ni({app:n,task:l,onSubmit:c,allTasks:i}).open()};var oh=require("obsidian");var Tw=(r,e,t)=>{var u;if(r)return t instanceof oh.MarkdownView;if(!(t instanceof oh.MarkdownView))return;let n=(u=t.file)==null?void 0:u.path;if(n===void 0)return;let i=e.getCursor(),s=i.line,a=e.getLine(s),o=uh(a,n);e.setLine(s,o.text),e.setCursor(yI(i,o))},uh=(r,e)=>{let t=ue.fromLine({line:r,taskLocation:ht.fromUnknownPosition(new Qe(e)),fallbackDate:null});if(t!==null){let n=t.toggleWithRecurrenceInUsersOrder().map(i=>i.toFileLineString());return{text:n.join( `
` ),moveTo:{line:n.length-1}}}else{let n=r.match(J.taskRegex);if(n!==null){let i=n[3],a=De.getInstance().bySymbol(i).nextStatusSymbol;return{text:r.replace(J.taskRegex, ` $1 - [ $ { a } ] $4 ` )}}else if(J.listItemRegex.test(r)){let i=r.replace(J.listItemRegex," $ 1 $ 2 [ ]");return{text:i,moveTo:{ch:i.length}}}else{let i=r.replace(J.indentationRegex," $ 1- ");return{text:i,moveTo:{ch:i.length}}}}},yI=(r,e)=>{var s;let t={line:0,ch:r.ch},n=Q(Q({},t),(s=e.moveTo)!=null?s:{}),i=e.text.split( `
` )[n.line].length;return{line:r.line+n.line,ch:Math.min(n.ch,i)}};var kl=class{get app(){return this.plugin.app}constructor({plugin:e}){this.plugin=e,e.addCommand({id:"edit-task",name:"Create or edit task",icon:"pencil",editorCheckCallback:(t,n,i)=>bw(t,n,i,this.app,this.plugin.getTasks())}),e.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:Tw})}};var ii=class{constructor(){this.hidePostponeButton=!1;this.hideTaskCount=!1;this.hideBacklinks=!1;this.hideEditButton=!1;this.hideUrgency=!0;this.shortMode=!1;this.explainQuery=!1}};function Gi(r,e){let t= ` Error : $ { r } .
The error message was :
` ,n="";return e instanceof Error?n+=e:n+="Unknown error", ` $ { t } "${n}" ` }var bI=Object.prototype.toString,Us=Array.isArray||function(e){return bI.call(e)==="[object Array]"};function ch(r){return typeof r=="function"}function TI(r){return Us(r)?"array":typeof r}function lh(r){return r.replace(/[ \- \[ \] {}()*+?., \\ \^ $ |# \s ]/g," \\ $ &")}function _w(r,e){return r!=null&&typeof r=="object"&&e in r}function _I(r,e){return r!=null&&typeof r!="object"&&r.hasOwnProperty&&r.hasOwnProperty(e)}var vI=RegExp.prototype.test;function wI(r,e){return vI.call(r,e)}var kI=/ \S /;function EI(r){return!wI(kI,r)}var SI={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"," ` ":" & # x60 ; "," = ":" & # x3D ; "};function OI(r){return String(r).replace(/[&<>" ' ` = \/ ]/g,function(t){return SI[t]})}var DI=/ \s */,xI=/ \s +/,vw=/ \s *=/,RI=/ \s * \} /,MI=/#| \^ | \/ |>| \{ |&|=|!/;function CI(r,e){if(!r)return[];var t=!1,n=[],i=[],s=[],a=!1,o=!1,u="",l=0;function c(){if(a&&!o)for(;s.length;)delete i[s.pop()];else s=[];a=!1,o=!1}var d,f,m;function g(G){if(typeof G=="string"&&(G=G.split(xI,2)),!Us(G)||G.length!==2)throw new Error("Invalid tags: "+G);d=new RegExp(lh(G[0])+" \\ s*"),f=new RegExp(" \\ s*"+lh(G[1])),m=new RegExp(" \\ s*"+lh("}"+G[1]))}g(e||Er.tags);for(var T=new Wo(r),y,E,x,R, $ ,q;!T.eos();){if(y=T.pos,x=T.scanUntil(d),x)for(var ne=0,B=x.length;ne<B;++ne)R=x.charAt(ne),EI(R)?(s.push(i.length),u+=R):(o=!0,t=!0,u+=" "),i.push(["text",R,y,y+1]),y+=1,R=== `
` &&(c(),u="",l=0,t=!1);if(!T.scan(d))break;if(a=!0,E=T.scan(MI)||"name",T.scan(DI),E==="="?(x=T.scanUntil(vw),T.scan(vw),T.scanUntil(f)):E==="{"?(x=T.scanUntil(m),T.scan(RI),T.scanUntil(f),E="&"):x=T.scanUntil(f),!T.scan(f))throw new Error("Unclosed tag at "+T.pos);if(E==">"? $ =[E,x,y,T.pos,u,l,t]: $ =[E,x,y,T.pos],l++,i.push( $ ),E==="#"||E==="^")n.push( $ );else if(E==="/"){if(q=n.pop(),!q)throw new Error('Unopened section "'+x+'" at '+y);if(q[1]!==x)throw new Error('Unclosed section "'+q[1]+'" at '+y)}else E==="name"||E==="{"||E==="&"?o=!0:E==="="&&g(x)}if(c(),q=n.pop(),q)throw new Error('Unclosed section "'+q[1]+'" at '+T.pos);return PI(AI(i))}function AI(r){for(var e=[],t,n,i=0,s=r.length;i<s;++i)t=r[i],t&&(t[0]==="text"&&n&&n[0]==="text"?(n[1]+=t[1],n[3]=t[3]):(e.push(t),n=t));return e}function PI(r){for(var e=[],t=e,n=[],i,s,a=0,o=r.length;a<o;++a)switch(i=r[a],i[0]){case"#":case"^":t.push(i),n.push(i),t=i[4]=[];break;case"/":s=n.pop(),s[5]=i[2],t=n.length>0?n[n.length-1][4]:e;break;default:t.push(i)}return e}function Wo(r){this.string=r,this.tail=r,this.pos=0}Wo.prototype.eos=function(){return this.tail===""};Wo.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};Wo.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function Ls(r,e){this.view=r,this.cache={".":this.view},this.parent=e}Ls.prototype.push=function(e){return new Ls(e,this)};Ls.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var i=this,s,a,o,u=!1;i;){if(e.indexOf(".")>0)for(s=i.view,a=e.split("."),o=0;s!=null&&o<a.length;)o===a.length-1&&(u=_w(s,a[o])||_I(s,a[o])),s=s[a[o++]];else s=i.view[e],u=_w(i.view,e);if(u){n=s;break}i=i.parent}t[e]=n}return ch(n)&&(n=n.call(this.view)),n};function Nt(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}Nt.prototype.clearCache=function(){typeof this.templateCache!="undefined"&&this.templateCache.clear()};Nt.prototype.parse=function(e,t){var n=this.templateCache,i=e+":"+(t||Er.tags).join(":"),s=typeof n!="undefined",a=s?n.get(i):void 0;return a==null&&(a=CI(e,t),s&&n.set(i,a)),a};Nt.prototype.render=function(e,t,n,i){var s=this.getConfigTags(i),a=this.parse(e,s),o=t instanceof Ls?t:new Ls(t,void 0);return this.renderTokens(a,o,n,e,i)};Nt.prototype.renderTokens=function(e,t,n,i,s){for(var a="",o,u,l,c=0,d=e.length;c<d;++c)l=void 0,o=e[c],u=o[0],u==="#"?l=this.renderSection(o,t,n,i,s):u==="^"?l=this.renderInverted(o,t,n,i,s):u===">"?l=this.renderPartial(o,t,n,s):u==="&"?l=this.unescapedValue(o,t):u==="name"?l=this.escapedValue(o,t,s):u==="text"&&(l=this.rawValue(o)),l!==void 0&&(a+=l);return a};Nt.prototype.renderSection=function(e,t,n,i,s){var a=this,o="",u=t.lookup(e[1]);function l(f){return a.render(f,t,n,s)}if(!!u){if(Us(u))for(var c=0,d=u.length;c<d;++c)o+=this.renderTokens(e[4],t.push(u[c]),n,i,s);else if(typeof u=="object"||typeof u=="string"||typeof u=="number")o+=this.renderTokens(e[4],t.push(u),n,i,s);else if(ch(u)){if(typeof i!="string")throw new Error("Cannot use higher-order sections without the original template");u=u.call(t.view,i.slice(e[3],e[5]),l),u!=null&&(o+=u)}else o+=this.renderTokens(e[4],t,n,i,s);return o}};Nt.prototype.renderInverted=function(e,t,n,i,s){var a=t.lookup(e[1]);if(!a||Us(a)&&a.length===0)return this.renderTokens(e[4],t,n,i,s)};Nt.prototype.indentPartial=function(e,t,n){for(var i=t.replace(/[^ \t ]/g,""),s=e.split( `
` ),a=0;a<s.length;a++)s[a].length&&(a>0||!n)&&(s[a]=i+s[a]);return s.join( `
` )};Nt.prototype.renderPartial=function(e,t,n,i){if(!!n){var s=this.getConfigTags(i),a=ch(n)?n(e[1]):n[e[1]];if(a!=null){var o=e[6],u=e[5],l=e[4],c=a;u==0&&l&&(c=this.indentPartial(a,l,o));var d=this.parse(c,s);return this.renderTokens(d,t,n,c,i)}}};Nt.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n};Nt.prototype.escapedValue=function(e,t,n){var i=this.getConfigEscape(n)||Er.escape,s=t.lookup(e[1]);if(s!=null)return typeof s=="number"&&i===Er.escape?String(s):i(s)};Nt.prototype.rawValue=function(e){return e[1]};Nt.prototype.getConfigTags=function(e){return Us(e)?e:e&&typeof e=="object"?e.tags:void 0};Nt.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!Us(e))return e.escape};var Er={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(r){Uo.templateCache=r},get templateCache(){return Uo.templateCache}},Uo=new Nt;Er.clearCache=function(){return Uo.clearCache()};Er.parse=function(e,t){return Uo.parse(e,t)};Er.render=function(e,t,n,i){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+TI(e)+'" was given as the first argument for mustache#render(template, view, partials)');return Uo.render(e,t,n,i)};Er.escape=OI;Er.Scanner=Wo;Er.Context=Ls;Er.Writer=Nt;var dh=Er;var Ow=pa(Sw());function Dw(r,e){dh.escape=function(t){return t};try{return dh.render(r,(0,Ow.default)(e))}catch(t){let n="";throw t instanceof Error?n= ` There was an error expanding one or more placeholders .
The error message was :
$ { t . message . replace ( / > /g , "." ) . replace ( "Missing Mustache data property" , "Unknown property" ) } ` :n="Unknown error expanding placeholders.",n+= `
The problem is in :
$ { r } ` ,Error(n)}}function xw(r){return ph(r,[])}function ph(r,e){return{query:{file:new Qe(r),allTasks:e}}}var Ws=class{constructor(e=""){this.indentation=e}explainQuery(e){if(e.error!==void 0)return this.explainError(e);let t=[];return t.push(this.explainFilters(e)),t.push(this.explainGroups(e)),t.push(this.explainSorters(e)),t.push(this.explainQueryLimits(e)),t.push(this.explainDebugSettings()),t.filter(n=>n!=="").join( `
` )}explainError(e){let t="";return t+= ` Query has an error :
` ,t+=e.error+ `
` ,t}explainFilters(e){return e.filters.length===0?this.indent( ` No filters supplied . All tasks will match the query .
` ):e.filters.map(n=>n.explainFilterIndented(this.indentation)).join( `
` )}explainGroups(e){let t=e.grouping.length;if(t===0)return this.indent( ` No grouping instructions supplied .
` );let n="";for(let i=0;i<t;i++)n+=this.indentation+e.grouping[i].instruction+ `
` ;return n}explainSorters(e){let t=e.sorting.length;if(t===0)return this.indent( ` No sorting instructions supplied .
` );let n="";for(let i=0;i<t;i++)n+=this.indentation+e.sorting[i].instruction+ `
` ;return n}explainQueryLimits(e){function t(i){let s= ` At most $ { i } task ` ;return i!==1&&(s+="s"),s}let n=[];if(e.limit!==void 0){let i=t(e.limit)+ ` .
` ;n.push(this.indent(i))}if(e.taskGroupLimit!==void 0){let i=t(e.taskGroupLimit)+ ` per group ( if any "group by" options are supplied ) .
` ;n.push(this.indent(i))}return n.join( `
` )}explainDebugSettings(){let e="",{debugSettings:t}=X();return t.ignoreSortInstructions&&(e+=this.indent( ` NOTE : All sort instructions , including default sort order , are disabled , due to 'ignoreSortInstructions' setting .
` )),e}indent(e){return this.indentation+e}};var Se=class{constructor(e,t=[],n=""){this.description=e,this.symbol=n,this.children=t}static booleanAnd(e){return this.combineOrCreateExplanation("All of",e,"AND")}static booleanOr(e){return this.combineOrCreateExplanation("At least one of",e,"OR")}static booleanNot(e){return new Se("None of",e,"NOT")}static booleanXor(e){return new Se("Exactly one of",e,"XOR")}asString(e=""){if(this.children.length==0)return e+this.description;let t=e;this.symbol===""?t+=this.description:(t+=this.symbol,this.children.length>1&&(t+= ` ( $ { this . description } ) ` ),t+=":");let n=e+" ";for(let i=0;i<this.children.length;i++)t+= `
$ { this . children [ i ] . asString ( n ) } ` ;return t}static combineOrCreateExplanation(e,t,n){if(t.length===2){let i=t[0],s=t[1];if(i.symbol===n&&s.symbol==="")return i.children.push(s),i}return new Se(e,t,n)}};var qs=class{matchesAnyOf(e){return e.some(t=>this.matches(t))}};var $ s=class extends qs{constructor(t){super();this.stringToFind=t}matches(t){return $ s.stringIncludesCaseInsensitive(t,this.stringToFind)}static stringIncludesCaseInsensitive(t,n){return t.toLocaleLowerCase().includes(n.toLocaleLowerCase())}explanation(t){return new Se(t)}};var si=class extends qs{constructor(t){super();this.regex=t}static validateAndConstruct(t){let n=/^ \/ (.+) \/ ([^/]*) $ /,i=t.match(n);if(i!==null){let s=new RegExp(i[1],i[2]);return new si(s)}else return null}matches(t){return t.match(this.regex)!==null}static helpMessage(){return String.raw ` See https : //publish.obsidian.md/tasks/Queries/Regular+Expressions
Regular expressions must look like this :
/pattern/
or this :
/ p a t t e r n / f l a g s
Where :
- pattern : The 'regular expression' pattern to search for .
- flags : Optional characters that modify the search .
i => make the search case - insensitive
u => add Unicode support
Examples : /^Log/
/^Log/i
/File Name\.md/
/waiting|waits|waited/i
/\d\d:\d\d/
The following characters have special meaning in the pattern :
to find them literally , you must add a \ before them :
[ \ ^ $ . | ? * + ( )
CAUTION ! Regular expression ( or 'regex' ) searching is a powerful
but advanced feature that requires thorough knowledge in order to
use successfully , and not miss intended search results .
` }explanation(t){let i=NI(t,"using regex: ",this.regexAsString());return new Se(i)}regexAsString(){let t= ` '${this.regex.source}' with ` ;switch(this.regex.flags.length){case 0:t+="no flags";break;case 1:t+= ` flag '${this.regex.flags}' ` ;break;default:t+= ` flags '${this.regex.flags}' ` ;break}return t}};function NI(r,e,t){var o;let n=r.match(/ \/ /);if(!n)return"Error explaining instruction. Could not find a slash character";let i=2,s=((o=n.index)!=null?o:i)-i;return ` $ { e . padEnd ( s ) } $ { t } ` }var Wr=class{constructor(e,t,n,i){this.instruction=e,this.property=t,this.comparator=Wr.maybeReverse(i,n)}static maybeReverse(e,t){return e?Wr.makeReversedComparator(t):t}static makeReversedComparator(e){return(t,n,i)=>e(t,n,i)*-1}};var ai=class{constructor(e,t,n,i){this.instruction=e,this.property=t,this.grouper=n,this.reverse=i}};var ke=class{canCreateFilterForLine(e){return ke.lineMatchesFilter(this.filterRegExp(),e)}static lineMatchesFilter(e,t){return e?e.test(t):!1}static getMatch(e,t){return e?t.match(e):null}fieldNameSingular(){return this.fieldName()}fieldNameSingularEscaped(){return Es(this.fieldNameSingular())}supportsSorting(){return!1}createSorterFromLine(e){if(!this.supportsSorting())return null;let t=ke.getMatch(this.sorterRegExp(),e);if(t===null)return null;let n=!!t[1];return this.createSorter(n)}sorterRegExp(){if(!this.supportsSorting())throw Error( ` sorterRegExp ( ) unimplemented for $ { this . fieldNameSingular ( ) } ` );return new RegExp( ` ^ sort by $ { this . fieldNameSingularEscaped ( ) } ( reverse ) ? ` ,"i")}sorterInstruction(e){let t= ` sort by $ { this . fieldNameSingular ( ) } ` ;return e&&(t+=" reverse"),t}comparator(){throw Error( ` comparator ( ) unimplemented for $ { this . fieldNameSingular ( ) } ` )}createSorter(e){return new Wr(this.sorterInstruction(e),this.fieldNameSingular(),this.comparator(),e)}createNormalSorter(){return this.createSorter(!1)}createReverseSorter(){return this.createSorter(!0)}supportsGrouping(){return!1}createGrouperFromLine(e){if(!this.supportsGrouping())return null;let t=ke.getMatch(this.grouperRegExp(),e);if(t===null)return null;let n=!!t[1];return this.createGrouper(n)}grouperRegExp(){if(!this.supportsGrouping())throw Error( ` grouperRegExp ( ) unimplemented for $ { this . fieldNameSingular ( ) } ` );return new RegExp( ` ^ group by $ { this . fieldNameSingularEscaped ( ) } ( reverse ) ? $ ` ,"i")}grouperInstruction(e){let t= ` group by $ { this . fieldNameSingular ( ) } ` ;return e&&(t+=" reverse"),t}grouper(){throw Error( ` grouper ( ) unimplemented for $ { this . fieldNameSingular ( ) } ` )}createGrouper(e){return new ai(this.grouperInstruction(e),this.fieldNameSingular(),this.grouper(),e)}createNormalGrouper(){return this.createGrouper(!1)}createReverseGrouper(){return this.createGrouper(!0)}};var Un=class{constructor(e,t){this._rawInstruction=e,this._anyContinuationLinesRemoved=t.trim(),this._anyPlaceholdersExpanded=this._anyContinuationLinesRemoved}recordExpandedPlaceholders(e){this._anyPlaceholdersExpanded=e}get rawInstruction(){return this._rawInstruction}get anyContinuationLinesRemoved(){return this._anyContinuationLinesRemoved}get anyPlaceholdersExpanded(){return this._anyPlaceholdersExpanded}explainStatement(e){function t(a,o){o!==a&&(s+= ` =>
$ { e } $ { o } ` )}let n=this._rawInstruction.trim(),i=n.split( `
` ).join( `
` +e),s= ` $ { e } $ { i } ` ;return this._rawInstruction.includes( `
` )&&(s+= `
` +e),t(n,this._anyContinuationLinesRemoved),t(this._anyContinuationLinesRemoved,this._anyPlaceholdersExpanded),s}allLinesIdentical(){return this._rawInstruction===this._anyContinuationLinesRemoved&&this._rawInstruction===this._anyPlaceholdersExpanded}};var wt=class{constructor(e,t,n){this._statement=new Un(e,e),this.explanation=n,this.filterFunction=t}get statement(){return this._statement}setStatement(e){this._statement=e}get instruction(){return this._statement.anyPlaceholdersExpanded}explainFilterIndented(e){let t=this._statement.explainStatement(e);return this.onlyNeedsOneLineExplanation()? ` $ { t }
` : ` $ { t } =>
$ { this . explanation . asString ( e + " " ) }
` }simulateExplainFilter(){return this.onlyNeedsOneLineExplanation()?this.explanation:new Se(this.instruction+" =>",[this.explanation])}onlyNeedsOneLineExplanation(){return this.explanation.asString("")===this.instruction}};var an=class{constructor(e){this.instruction=e}get queryComponent(){return this._queryComponent}set queryComponent(e){this._queryComponent=e}get error(){return this._error}set error(e){this._error=e}isValid(){return this._queryComponent!==void 0}static fromObject(e,t){let n=new an(e);return n._queryComponent=t,n}static fromError(e,t){let n=new an(e);return n._error=t,n}};var ie=class{constructor(e){this.object=e}get instruction(){return this.object.instruction}get filter(){return this.object.queryComponent}isValid(){return this.object.isValid()}get error(){return this.object.error}get filterFunction(){if(this.filter)return this.filter.filterFunction}static fromFilter(e){return new ie(an.fromObject(e.instruction,e))}static fromError(e,t){return new ie(an.fromError(e,t))}};var Ie=class extends ke{createFilterOrErrorMessage(e){let t=ke.getMatch(this.filterRegExp(),e);if(t===null)return ie.fromError(e, ` do not understand query filter ( $ { this . fieldName ( ) } ) ` );let n=t[1].toLowerCase(),i=t[2],s=null;if(n.includes("include"))s=new $ s(i);else if(n.includes("regex")){try{s=si.validateAndConstruct(i)}catch(u){let l=Gi("Parsing regular expression",u)+ `
$ { si . helpMessage ( ) } ` ;return ie.fromError(e,l)}if(s===null)return ie.fromError(e, ` Invalid instruction : '${e}'
$ { si . helpMessage ( ) } ` )}if(s===null)return ie.fromError(e, ` do not understand query filter ( $ { this . fieldName ( ) } ) ` );let a=n.match(/not/)!==null,o=new wt(e,this.getFilter(s,a),s.explanation(e));return ie.fromFilter(o)}fieldPattern(){return this.fieldNameSingularEscaped()}filterOperatorPattern(){return"includes|does not include|regex matches|regex does not match"}filterRegExp(){return new RegExp( ` ^ ( ? : $ { this . fieldPattern ( ) } ) ( $ { this . filterOperatorPattern ( ) } ) ( . * ) ` ,"i")}getFilter(e,t){return n=>{let i=e.matches(this.value(n));return t?!i:i}}comparator(){return(e,t)=>this.value(e).localeCompare(this.value(t),void 0,{numeric:!0})}grouper(){return e=>[this.value(e)]}static escapeMarkdownCharacters(e){return e.replace(/ \\ /g," \\ \\ ").replace(/_/g," \\ _")}};var Yi=class extends Ie{fieldName(){return"description"}value(e){return be.getInstance().removeAsSubstringFrom(e.description)}supportsSorting(){return!0}comparator(){return(e,t)=>{let n=Yi.cleanDescription(e.description),i=Yi.cleanDescription(t.description);return n.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(e){e=be.getInstance().removeAsSubstringFrom(e);let t=/^ \[ \[ ?([^ \] ]*)]]?/,n=e.match(t);if(n!==null){let i=n[1];e=i.substring(i.indexOf("|")+1)+e.replace(t,"")}return e=this.replaceFormatting(e,/^ \* \* ([^*]+) \* \* /),e=this.replaceFormatting(e,/^ \* ([^*]+) \* /),e=this.replaceFormatting(e,/^==([^=]+)==/),e=this.replaceFormatting(e,/^__([^_]+)__/),e=this.replaceFormatting(e,/^_([^_]+)_/),e}static replaceFormatting(e,t){let n=e.match(t);return n!==null&&(e=n[1]+e.replace(t,"")),e}};var El=class{findUnexpandedDateText(e){let t=["<%","YYYY-MM-DD"];for(let n of t)if(e.includes(n))return this.unexpandedDateTextMessage(n);return null}unexpandedDateTextMessage(e){return ` Instruction contains unexpanded template text : "${e}" - and cannot be interpreted .
Possible causes :
- The query is an a template file , and is not intended to be searched .
- A command such as "Replace templates in the active file" needs to be run .
- The core "Daily notes" plugin is in use , and the template contained
date calculations that it does not support .
- Some sample template text was accidentally pasted in to a tasks query ,
instead of in to a template file .
See : https : //publish.obsidian.md/tasks/Advanced/Instruction+contains+unexpanded+template+text
` }};var Sl=class{constructor(e,t){this._instruction=e,this._filter=t}canCreateFilterForLine(e){return e.toLocaleLowerCase()===this._instruction.toLocaleLowerCase()}createFilterOrErrorMessage(e){return this.canCreateFilterForLine(e)?ie.fromFilter(new wt(e,this._filter,new Se(e))):ie.fromError(e, ` do not understand filter : $ { e } ` )}};var Yt=class{constructor(){this._filters=[]}add(e,t){this._filters.push(new Sl(e,t))}canCreateFilterForLine(e){for(let t of this._filters)if(t.canCreateFilterForLine(e))return!0;return!1}createFilterOrErrorMessage(e){for(let t of this._filters){let n=t.createFilterOrErrorMessage(e);if(n.error===void 0)return n}return ie.fromError(e, ` do not understand filter : $ { e } ` )}};var ut=class extends ke{constructor(t=null){super();t!==null?this.filterInstructions=t:(this.filterInstructions=new Yt,this.filterInstructions.add( ` has $ { this . fieldName ( ) } date ` ,n=>this.date(n)!==null),this.filterInstructions.add( ` no $ { this . fieldName ( ) } date ` ,n=>this.date(n)===null),this.filterInstructions.add( ` $ { this . fieldName ( ) } date is invalid ` ,n=>{let i=this.date(n);return i!==null&&!i.isValid()}))}canCreateFilterForLine(t){return this.filterInstructions.canCreateFilterForLine(t)?!0:super.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){var f;let n=this.checkForUnexpandedTemplateText(t);if(n)return ie.fromError(t,n);let i=this.filterInstructions.createFilterOrErrorMessage(t);if(i.isValid())return i;let s=ke.getMatch(this.filterRegExp(),t);if(s===null)return ie.fromError(t,"do not understand query filter ("+this.fieldName()+" date)");let a=s[1],o=(f=s[2])==null?void 0:f.toLowerCase(),u=s[3],l=Qt.parseDateRange(u);if(!l.isValid()){let m=Qt.parseDate(a);m.isValid()&&(l=new Rt(m,m))}if(!l.isValid())return ie.fromError(t,"do not understand "+this.fieldName()+" date");let c=this.buildFilterFunction(o,l),d=ut.buildExplanation(this.fieldNameForExplanation(),o,this.filterResultIfFieldMissing(),l);return ie.fromFilter(new wt(t,c,d))}buildFilterFunction(t,n){let i;switch(t){case"before":i=s=>s?s.isBefore(n.start):this.filterResultIfFieldMissing();break;case"after":i=s=>s?s.isAfter(n.end):this.filterResultIfFieldMissing();break;case"on or before":case"in or before":i=s=>s?s.isSameOrBefore(n.end):this.filterResultIfFieldMissing();break;case"on or after":case"in or after":i=s=>s?s.isSameOrAfter(n.start):this.filterResultIfFieldMissing();break;default:i=s=>s?s.isSameOrAfter(n.start)&&s.isSameOrBefore(n.end):this.filterResultIfFieldMissing()}return this.getFilter(i)}getFilter(t){return n=>t(this.date(n))}filterRegExp(){return new RegExp( ` ^ $ { this . fieldNameForFilterInstruction ( ) } ( ( ( ? : on | in ) or before | before | ( ? : on | in ) or after | after | on | in ) ? ? ( . * ) ) ` ,"i")}fieldNameForFilterInstruction(){return this.fieldName()}static buildExplanation(t,n,i,s){let a=n,o="YYYY-MM-DD (dddd Do MMMM YYYY)",u;switch(n){case"before":case"on or after":u=s.start.format(o);break;case"after":case"on or before":u=s.end.format(o);break;case"in or before":a="on or before",u=s.end.format(o);break;case"in or after":a="on or after",u=s.start.format(o);break;default:if(!s.start.isSame(s.end)){let c= ` $ { t } date is between : ` ,d=[new Se( ` $ { s . start . format ( o ) } and ` ),new Se( ` $ { s . end . format ( o ) } inclusive ` )];return i&&d.push(new Se( ` OR no $ { t } date ` )),new Se(c,d)}a="on",u=s.start.format(o);break}let l= ` $ { t } date is $ { a } $ { u } ` ;return i&&(l+= ` OR no $ { t } date ` ),new Se(l)}fieldNameForExplanation(){return this.fieldName()}supportsSorting(){return!0}comparator(){return(t,n)=>Tr(this.date(t),this.date(n))}supportsGrouping(){return!0}grouper(){return t=>{let n=this.date(t);return n===null?["No "+this.fieldName()+" date"]:n.isValid()?[n.format("YYYY-MM-DD dddd")]:["%%0%% Invalid "+this.fieldName()+" date"]}}checkForUnexpandedTemplateText(t){return new El().findUnexpandedDateText(t)}};var Ol=class extends ut{fieldName(){return"created"}date(e){return e.createdDate}filterResultIfFieldMissing(){return!1}};var Dl=class extends ut{fieldName(){return"done"}date(e){return e.doneDate}filterResultIfFieldMissing(){return!1}};var js=class extends ut{fieldName(){return"due"}date(e){return e.dueDate}filter
The instruction was converted to the following simplified line :
$ { i . simplifiedLine }
Where the sub - expressions in the simplified line are :
$ { a }
For help , see :
https : //publish.obsidian.md/tasks/Queries/Combining+Filters
` ;return ie.fromError(t,u)}stringifySubExpressionsForErrorMessage(t){return Object.entries(t).map(([n,i])=> ` '${n}' : '${i}'
=> $ { this . stringifySubExpressionStatus ( i ) } ` ).join( `
` )}stringifySubExpressionStatus(t){let n=Go(t);return n?n.error? ` ERROR :
$ { n . error . split ( `
` ).map(s=>s.trim()).join( `
` )} ` : "OK" : ` ERROR:
do not understand query ` }helpMessageFromSimpleError(t,n){return ` Could not interpret the following instruction as a Boolean combination :
$ { t }
The error message is :
$ { n } ` }};var jl=class extends Ie{fieldName(){return"filename"}value(e){let t=e.filename;return t===null?"":t+".md"}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return e=>{let t=e.filename;return t===null?["Unknown Location"]:["[["+t+"]]"]}}};var Xs=class extends ke{canCreateFilterForLine(e){return!1}createFilterOrErrorMessage(e){return ie.fromError(e,"Filtering by urgency is not yet supported")}fieldName(){return"urgency"}filterRegExp(){throw Error( ` filterRegExp ( ) unimplemented for $ { this . fieldName ( ) } ` )}supportsSorting(){return!0}comparator(){return(e,t)=>t.urgency-e.urgency}supportsGrouping(){return!0}grouper(){return e=>[ ` $ { e . urgency . toFixed ( 2 ) } ` ]}createGrouper(e){return super.createGrouper(!e)}grouperInstruction(e){return super.grouperInstruction(!e)}};var Gl=class extends Ie{constructor(){super()}fieldName(){return"status.name"}value(e){return e.status.name}supportsSorting(){return!0}supportsGrouping(){return!0}};var dn=class extends ke{canCreateFilterForLine(e){let t=new RegExp( ` ^ ( ? : $ { this . fieldNameSingularEscaped ( ) } ) ` ,"i");return ke.lineMatchesFilter(t,e)}createFilterOrErrorMessage(e){let t=ke.getMatch(this.filterRegExp(),e);if(t===null)return this.helpMessage(e);let n=t[1].toLowerCase(),i=t[2],s=er[i.toUpperCase()];if(!s)return this.helpMessage(e);let a;switch(n){case"is":a=o=>o.status.type===s;break;case"is not":a=o=>o.status.type!==s;break;default:return this.helpMessage(e)}return ie.fromFilter(new wt(e,a,new Se(e)))}filterRegExp(){return new RegExp( ` ^ ( ? : $ { this . fieldNameSingularEscaped ( ) } ) ( is | is not ) ( [ ^ ] + ) $ ` ,"i")}helpMessage(e){let t=Object.values(er).filter(i=>i!=="EMPTY").join(" "),n= ` Invalid $ { this . fieldNameSingular ( ) } instruction : '${e}' .
Allowed options : 'is' and 'is not' ( without quotes ) .
Allowed values : $ { t }
Note : values are case - insensitive ,
so 'in_progress' works too , for example .
Example : $ { this . fieldNameSingular ( ) } is not NON _TASK ` ;return ie.fromError(e,n)}fieldName(){return"status.type"}value(e){return e.status.type}supportsSorting(){return!0}comparator(){return(e,t)=>{let n=dn.groupName(e),i=dn.groupName(t);return n.localeCompare(i,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return e=>[dn.groupName(e)]}static groupName(e){return e.status.typeGroupText}};var Yl=class extends Ie{fieldName(){return"recurrence"}value(e){return e.recurrence!==null?e.recurrence.toText():""}supportsGrouping(){return!0}grouper(){return e=>e.recurrence!==null?[e.recurrence.toText()]:["None"]}};var Bl=class extends Ie{fieldName(){return"folder"}value(e){return e.file.folder}supportsGrouping(){return!0}grouper(){return e=>[Ie.escapeMarkdownCharacters(this.value(e))]}};var Hl=class extends Ie{fieldName(){return"root"}value(e){return e.file.root}supportsGrouping(){return!0}grouper(){return e=>[Ie.escapeMarkdownCharacters(this.value(e))]}};var Vl=class extends Ie{fieldName(){return"backlink"}value(e){let t=e.getLinkText({isFilenameUnique:!0});return t===null?"Unknown Location":t}createFilterOrErrorMessage(e){return ie.fromError(e,"backlink field does not support filtering")}canCreateFilterForLine(e){return!1}supportsGrouping(){return!0}grouper(){return e=>{let t=e.filename;if(t===null)return["Unknown Location"];let n=e.precedingHeader;return n===null?["[["+t+"]]"]:[ ` [ [ $ { t } # $ { n } | $ { t } > $ { n } ] ] ` ]}}};var zl=class extends ut{fieldName(){return"cancelled"}date(e){return e.cancelledDate}filterResultIfFieldMissing(){return!1}};var Kl=class extends on{constructor(){super(),this._filters.add("is blocking",(e,t)=>e.isBlocking(t.allTasks)),this._filters.add("is not blocking",(e,t)=>!e.isBlocking(t.allTasks)),this._filters.add("is blocked",(e,t)=>e.isBlocked(t.allTasks)),this._filters.add("is not blocked",(e,t)=>!e.isBlocked(t.allTasks))}fieldName(){return"blocking"}};var Ql=class extends Ie{constructor(){super();this.filterInstructions=new Yt;this.filterInstructions.add("has id",t=>t.id.length>0),this.filterInstructions.add("no id",t=>t.id.length===0)}canCreateFilterForLine(t){return this.filterInstructions.canCreateFilterForLine(t)?!0:super.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){let n=this.filterInstructions.createFilterOrErrorMessage(t);return n.isValid()?n:super.createFilterOrErrorMessage(t)}fieldName(){return"id"}value(t){return t.id}supportsSorting(){return!0}supportsGrouping(){return!0}};var Xl=class extends ke{constructor(){super();this.filterInstructions=new Yt;this.filterInstructions.add("has depends on",t=>t.dependsOn.length>0),this.filterInstructions.add("no depends on",t=>t.dependsOn.length===0)}canCreateFilterForLine(t){return this.filterInstructions.canCreateFilterForLine(t)?!0:super.canCreateFilterForLine(t)}createFilterOrErrorMessage(t){let n=this.filterInstructions.createFilterOrErrorMessage(t);return n.isValid()?n:ie.fromError(t,"Unknown instruction")}fieldName(){return"blocked by"}filterRegExp(){return null}};var Rh=[()=>new Gl,()=>new dn,()=>new oi,()=>new Il,()=>new Bi,()=>new Nl,()=>new zl,()=>new Ol,()=>new Pl,()=>new Al,()=>new js,()=>new Dl,()=>new Gs,()=>new Bl,()=>new Hl,()=>new Vl,()=>new Yi,()=>new Hi,()=>new Cl,()=>new xl,()=>new jl,()=>new Xs,()=>new Yl,()=>new Ml,()=>new Ql,()=>new Xl,()=>new Kl,()=>new $ l];function Go(r){for(let e of Rh){let t=e();if(t.canCreateFilterForLine(r))return t.createFilterOrErrorMessage(r)}return null}function Yw(r){let e=/^sort by /i;if(r.match(e)===null)return null;for(let t of Rh){let i=t().createSorterFromLine(r);if(i)return i}return null}function Bw(r){let e=/^group by /i;if(r.match(e)===null)return null;for(let t of Rh){let i=t().createGrouperFromLine(r);if(i)return i}return null}var Zl=class{constructor(e,t,n){this.nestingLevel=e,this.displayName=t,this.property=n}};var Jl=class{constructor(e,t){this.lastHeadingAtLevel=new Array;this.groupers=t;let i=e.keys().next().value.length;for(let s=0;s<i;s++)this.lastHeadingAtLevel.push("")}getHeadingsForTaskGroup(e){let t=new Array;for(let n=0;n<e.length;n++){let i=e[n];if(i!=this.la
` ;return e}toString(){let e= `
` ;e+= ` Group names : [ $ { this . groups } ]
` ;for(let t of this.groupHeadings)e+= ` $ { "#" . repeat ( 4 + t . nestingLevel ) } [ $ { t . property } ] $ { t . displayName }
` ;return e+=this.tasksAsStringOfLines(),e}};var Zs=class{constructor(e,t,n){this._groups=new Array;this._totalTaskCount=0;this._totalTaskCount=t.length,this._groupers=e;let s=new rc(e,t,n).generateTaskTreeStorage();this.addTaskGroups(s),this.sortTaskGroups(),this.setGroupsHeadings(s)}get groupers(){return this._groupers}get groups(){return this._groups}totalTasksCount(){return this._totalTaskCount}toString(){let e="";e+= ` Groupers ( if any ) :
` ;for(let n of this._groupers){let i=n.reverse?" reverse":"";e+= ` - $ { n . property } $ { i }
` }for(let n of this.groups)e+=n.toString(),e+= `
-- -
` ;return e+= `
$ { this . totalTasksCount ( ) } tasks
` ,e}addTaskGroups(e){for(let[t,n]of e){let i=new nc(t,n);this.addTaskGroup(i)}}addTaskGroup(e){this._groups.push(e)}sortTaskGroups(){let e=(t,n)=>{let i=t.groups,s=n.groups;for(let a=0;a<i.length;a++){let o=this._groupers[a],u=i[a].localeCompare(s[a],void 0,{numeric:!0});if(u!==0)return o.reverse?-u:u}return 0};this._groups.sort(e)}setGroupsHeadings(e){let t=new Jl(e,this._groupers);for(let n of this._groups)n.setGroupHeadings(t.getHeadingsForTaskGroup(n.groups))}applyTaskLimit(e){this._groupers.length!==0&&(this._groups.forEach(t=>{t.applyTaskLimit(e)}),this.recalculateTotalTaskCount())}recalculateTotalTaskCount(){let e=[];this._groups.forEach(n=>{e=[...e,...n.tasks]});let t=[...new Set(e)];this._totalTaskCount=t.length}};var ci=class{constructor(e,t){this.queryPath=e,this.allTasks=[...t]}static fromAllTasks(e){return new ci(void 0,e)}queryContext(){return this.queryPath?ph(this.queryPath,this.allTasks):void 0}};function Hw(r){return ` task$ { r !== 1 ? "s" : "" } ` }var Ki=class{constructor(e,t){this.totalTasksCountBeforeLimit=0;this._searchErrorMessage=void 0;this.taskGroups=e,this.totalTasksCountBeforeLimit=t}get searchErrorMessage(){return this._searchErrorMessage}set searchErrorMessage(e){this._searchErrorMessage=e}get totalTasksCount(){return this.taskGroups.totalTasksCount()}totalTasksCountDisplayText(){let e=this.totalTasksCount,t=this.totalTasksCountBeforeLimit;return e===t? ` $ { e } $ { Hw ( e ) } ` : ` $ { e } of $ { t } $ { Hw ( t ) } ` }get groups(){return this.taskGroups.groups}static fromError(e){let t=new Ki(new Zs([],[],ci.fromAllTasks([])),0);return t._searchErrorMessage=e,t}};function Vw(r){return r.endsWith(" \\ ")}function zw(r){return r.endsWith(" \\ \\ ")}function dF(r){return r.replace(/^[ \t ]*/,"")}function fF(r){return r.replace(/[ \t ]* \\ $ /,"")}function pF(r,e){let t=r;return e&&(t=dF(r)),zw(t)?t=t.slice(0,-1):Vw(r)&&(t=fF(t)),t}function Kw(r){let e=[],t=!1,n="",i="";for(let s of r.split( `
` )){let a=pF(s,t);t?(n+= `
` +s,i+=" "+a):(n=s,i=a),zw(s)?t=!1:t=Vw(s),t||(i.trim()!==""&&e.push(new Un(n,i)),n="",i="")}return e}var Js=class{static by(e,t,n){let i=this.defaultSorters().map(a=>a.comparator),s=[];for(let a of e)s.push(a.comparator);return t.sort(Js.makeCompositeComparator([...s,...i],n))}static defaultSorters(){return[new dn().createNormalSorter(),new Xs().createNormalSorter(),new js().createNormalSorter(),new Bi().createNormalSorter(),new Gs().createNormalSorter()]}static makeCompositeComparator(e,t){return(n,i)=>{for(let s of e){let a=s(n,i,t);if(a!==0)return a}return 0}}};var $ n=class{constructor(e,t=void 0){this._limit=void 0;this._taskGroupLimit=void 0;this._taskLayoutOptions=new Jr;this._queryLayoutOptions=new ii;this._filters=[];this._error=void 0;this._sorting=[];this._grouping=[];this._ignoreGlobalQuery=!1;this.hideOptionsRegexp=/^(hide|show) (task count|backlink|priority|cancelled date|created date|start date|scheduled date|done date|due date|recurrence rule|edit button|postpone button|urgency|tags|depends on|id)/i;this.shortModeRegexp=/^short/i;this.fullModeRegexp=/^full/i;this.explainQueryRegexp=/^explain/i;this.ignoreGlobalQueryRegexp=/^ignore global query/i;this.logger=Ct.getLogger("tasks.Query");this._queryId="";this.limitRegexp=/^limit (groups )?(to )?( \d +)( tasks?)?/i;this.commentRegexp=/^#.*/;this._queryId=this.generateQueryId(10),this.source=e,this.filePath=t,this.debug( ` Creating query : $ { this . formatQueryForLogging ( ) } ` ),Kw(e).forEach(n=>{let i=this.expandPlaceholders(n,t);if(this.error===void 0)try{this.parseLine(i,n)}catch(s){let a;s instanceof Error?a=s.message:a="Unknown error",this.setError(a,n);return}})}get queryId(){return this._queryId}parseLine(e,t){switch(!0){case this.shortModeRegexp.test(e):this._queryLayoutOptions.shortMode=!0;break;case this.fullModeRegexp.test(e):this._queryLayoutOptions.shortMode=!1;break;case this.explainQueryRegexp.test(e):this._queryLayoutOptions.explainQuery=!0;break;case this.ignoreGlobalQueryRegexp.test(e):this._ignoreGlobalQuery=!0;break;case this.limitRegexp.test(e):this.parseLimit(e);break;case this.parseSortBy(e):break;case this.parseGroupBy(e):break;case this.hideOptionsRegexp.test(e):this.parseHideOptions(e);break;case this.commentRegexp.test(e):break;case this.parseFilter(e,t):break;default:this.setError("do not understand query",t)}}formatQueryForLogging(){return ` [ $ { this . source . split ( `
` ).join(" ; ")}] ` } expandPlaceholders ( e , t ) { let n = e . anyContinuationLinesRemoved ; if ( n . includes ( "{{" ) && n . includes ( "}}" ) && this . filePath === void 0 ) return this . _error = ` The query looks like it contains a placeholder, with "{{" and "}}"
but no file path has been supplied , so cannot expand placeholder values .
The query is :
$ { n } ` ,n;let i=n;if(t){let s=xw(t);try{i=Dw(n,s)}catch(a){return a instanceof Error?this._error=a.message:this._error="Internal error. expandPlaceholders() threw something other than Error.",n}}return e.recordExpandedPlaceholders(i),i}append(e){return this.source===""?e:e.source===""?this:new $ n( ` $ { this . source }
$ { e . source } ` ,this.filePath)}explainQuery(){return new Ws().explainQuery(this)}get limit(){return this._limit}get taskGroupLimit(){return this._taskGroupLimit}get taskLayoutOptions(){return this._taskLayoutOptions}get queryLayoutOptions(){return this._queryLayoutOptions}get filters(){return this._filters}addFilter(e){this._filters.push(e)}get sorting(){return this._sorting}get grouping(){return this._grouping}get error(){return this._error}setError(e,t){t.allLinesIdentical()?this._error= ` $ { e }
Problem line : "${t.rawInstruction}" ` :this._error= ` $ { e }
Problem statement :
$ { t . explainStatement ( " " ) }
` }get ignoreGlobalQuery(){return this._ignoreGlobalQuery}applyQueryToTasks(e){this.debug( ` Executing query : $ { this . formatQueryForLogging ( ) } ` );let t=new ci(this.filePath,e);try{this.filters.forEach(o=>{e=e.filter(u=>o.filterFunction(u,t))});let{debugSettings:n}=X(),i=n.ignoreSortInstructions?e:Js.by(this.sorting,e,t),s=i.slice(0,this.limit),a=new Zs(this.grouping,s,t);return this._taskGroupLimit!==void 0&&a.applyTaskLimit(this._taskGroupLimit),new Ki(a,i.length)}catch(n){let i="Search failed";return Ki.fromError(Gi(i,n))}}parseHideOptions(e){let t=e.match(this.hideOptionsRegexp);if(t!==null){let n=t[1].toLowerCase()==="hide";switch(t[2].toLowerCase()){case"task count":this._queryLayoutOptions.hideTaskCount=n;break;case"backlink":this._queryLayoutOptions.hideBacklinks=n;break;case"postpone button":this._queryLayoutOptions.hidePostponeButton=n;break;case"priority":this._taskLayoutOptions.setVisibility("priority",!n);break;case"cancelled date":this._taskLayoutOptions.setVisibility("cancelledDate",!n);break;case"created date":this._taskLayoutOptions.setVisibility("createdDate",!n);break;case"start date":this._taskLayoutOptions.setVisibility("startDate",!n);break;case"scheduled date":this._taskLayoutOptions.setVisibility("scheduledDate",!n);break;case"due date":this._taskLayoutOptions.setVisibility("dueDate",!n);break;case"done date":this._taskLayoutOptions.setVisibility("doneDate",!n);break;case"recurrence rule":this._taskLayoutOptions.setVisibility("recurrenceRule",!n);break;case"edit button":this._queryLayoutOptions.hideEditButton=n;break;case"urgency":this._queryLayoutOptions.hideUrgency=n;break;case"tags":this._taskLayoutOptions.setTagsVisibility(!n);break;case"id":this._taskLayoutOptions.setVisibility("id",!n);break;case"depends on":this._taskLayoutOptions.setVisibility("dependsOn",!n);break;default:this.setError("do not understand hide/show option",new Un(e,e))}}}parseFilter(e,t){var i;let n=Go(e);return n!=null?(n.filter?(n.filter.setStatement(t),this._filters.push(n.filter)):this.setError((i=n.error)!=null?i:"Unknown error",t),!0):!1}parseLimit(e){let t=e.match(this.limitRegexp);if(t===null){this.setError("do not understand query limit",new Un(e,e));return}let n=Number.parseInt(t[3],10);t[1]!==void 0?this._taskGroupLimit=n:this._limit=n}parseSortBy(e){let t=Yw(e);return t?(this._sorting.push(t),!0):!1}parseGroupBy(e){let t=Bw(e);return t?(this._grouping.push(t),!0):!1}generateQueryId(e){let t="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";return Array.from({length:e},()=>t[Math.floor(Math.random()*t.length)]).join("")}debug(e,t){this.logger.debugWithId(this._queryId, ` "${this.filePath}" : $ { e } ` ,t)}};var di=class{constructor(e=di.empty){this._source=e}static getInstance(){return di.instance||(di.instance=new di),di.instance}set(e){this._source=e}query(e=void 0){return new $ n(this._source,e)}hasInstructions(){return this._source.trim()!==di.empty}},Or=di;Or.empty="";var ic=class{constructor({obsidianEvents:e}){this.logger=Ct.getLogger("tasks.Events");this.obsidianEvents=e}onCacheUpdate(e){return this.logger.debug("TasksEvents.onCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:cache-update",e)}triggerCacheUpdate(e){this.logger.debug("TasksEvents.triggerCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:cache-update",e)}onRequestCacheUpdate(e){return this.logger.debug("TasksEvents.onRequestCacheUpdate()"),this.obsidianEvents.on("obsidian-tasks-plugin:request-cache-update",e)}triggerRequestCacheUpdate(e){this.logger.debug("TasksEvents.triggerRequestCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:request-cache-update",e)}off(e){this.logger.debug("TasksEvents.off()"),this.obsidianEvents.offref(e)}};var Jw=require("obsidian");var Zw=require("obsidian");var Mh=class{constructor(e){this.newStatus=e}apply(e){return this.isCheckedForTask(e)?[e]:e.handleNewStatusWithRecurrenceInUsersOrder(this.newStatus)}instructionDisplayName(){return ` Change status to : [ $ { this . newStatus . symbol } ] $ { this . newStatus . name } ` }isCheckedForTask(e){return this.newStatus.symbol===e.status.symbo
` );if(m===void 0)return!1;let g=null;for(let y=0;y<m.length;y=y+1)if(m[y]!==""){g=m[y];break}return g===null?!1:be.getInstance().includedIn(g)});if(i.length===0)return;let s=t.sourcePath,a=t.getSectionInfo(e);if(a===null)return;let o=a.text.split( `
` ),u=0,l=[];for(let f=a.lineStart;f<=a.lineEnd;f++){let m=o[f];if(m===void 0)continue;let g=null,T=ue.fromLine({line:m,taskLocation:new ht(new Qe(s),f,a.lineStart,u,g),fallbackDate:null});T!==null&&(l.push(T),u++)}let c=new fi({obsidianComponent:n,parentUlElement:e,taskLayoutOptions:new Jr,queryLayoutOptions:new ii});for(let f=0;f<i.length;f++){let m=l[f],g=i[f];if(m===void 0||g===void 0)continue;let T=(d=g.getAttr("data-line"))!=null?d:"0",y=Number.parseInt(T,10),E=yield c.renderTaskLine(m,y),x=g.childNodes;for(let q=0;q<x.length;q=q+1){let ne=x[q];ne.nodeName.toLowerCase()==="div"?E.prepend(ne):ne.nodeName.toLowerCase()==="ul"&&E.append(ne)}let R=g.querySelectorAll("[data-footnote-id]"), $ =E.querySelectorAll("[data-footnote-id]");if(R.length=== $ .length)for(let q=0;q<R.length;q++) $ [q].replaceWith(R[q]);g.replaceWith(E)}})}};var ek=require("@codemirror/view"),tk=require("obsidian");var rk=()=>ek.ViewPlugin.fromClass(Ah),Ah=class{constructor(e){this.view=e,this.handleClickEvent=this.handleClickEvent.bind(this),this.view.dom.addEventListener("click",this.handleClickEvent)}destroy(){this.view.dom.removeEventListener("click",this.handleClickEvent)}handleClickEvent(e){let{target:t}=e;if(!t||!(t instanceof HTMLInputElement)||t.type!=="checkbox")return!1;let n=t.closest("ul.plugin-tasks-query-result, div.callout-content");if(n){if(n.matches("div.callout-content")){let f= ` obsidian - tasks - plugin warning : Tasks cannot add or remove completion dates or make the next copy of a recurring task for tasks written inside a callout when you click their checkboxes in Live Preview .
If you wanted Tasks to do these things , please undo your change , then either click the line of the task and use the "Toggle Task Done" command , or switch to Reading View to click the checkbox . ` ;console.warn(f),new tk.Notice(f,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(t),a=i.doc.lineAt(s),o=ue.fromLine({line:a.text,taskLocation:ht.fromUnknownPosition(new Qe("")),fallbackDate:null});if(o===null)return!1;e.preventDefault();let l=o.toggleWithRecurrenceInUsersOrder().map(f=>f.toFileLineString()).join(i.lineBreak),c=i.update({changes:{from:a.from,to:a.to,insert:l}});this.view.dispatch(c);let d=t.checked;return setTimeout(()=>{t.checked=d},1),!0}};var ra=require("obsidian");function Ho(r,e,t){e&&r.push(hF(t))}function hF(r){return ` tasks - layout - hide - $ { r } ` }var uc=class{constructor(e){e?this.queryLayoutOptions=e:this.queryLayoutOptions=new ii}getHiddenClasses(){let e=[],t=[[this.queryLayoutOptions.hideUrgency,"urgency"],[this.queryLayoutOptions.hideBacklinks,"backlinks"],[this.queryLayoutOptions.hideEditButton,"edit-button"],[this.queryLayoutOptions.hidePostponeButton,"postpone-button"]];for(let[n,i]of t)Ho(e,n,i);return this.queryLayoutOptions.shortMode&&e.push("tasks-layout-short-mode"),e}};function nk(r,e,t,n=void 0){let i="";e.isEmpty()||(i+= ` Only tasks containing the global filter '${e.get()}' .
` );let s=new Ws(" "),a=new $ n(r,n);if(!a.ignoreGlobalQuery&&t.hasInstructions()){let o=t.query(n);i+= ` Explanation of the global query :
$ { s . explainQuery ( o ) }
` }return i+= ` Explanation of this Tasks code block query :
$ { s . explainQuery ( a ) } ` ,i}function lc(r,e,t){let n=new $ n(r,t);return n.ignoreGlobalQuery?n:e.query(t).append(n)}function ik(r){for(let t of ue.allDateFields()){let n=r[t];if(n&&!n.isValid())return!1}let e=r.happensDates.some(t=>!!(t!=null&&t.isValid()));return!r.isDone&&e}function Vo(r){return r.dueDate?"dueDate":r.scheduledDate?"scheduledDate":r.startDate?"startDate":null}function Ph(r,e,t,n){let i=r[e];return ok(i,r,e,t,n)}function sk(r,e,t,n){let i=window.moment();return ok(i,r,e,t,n)}function ak(r,e,t,n){return uk(r,e,null)}function ok(r,e,t,n,i){let s=new Ge(r).postpone(n,i);return uk(e,t,s)}function uk(r,e,t){let n=vt.removeInferredStatusIfNeeded(r,[new ue(_e(Q({},r),{[e]:t}))])[0];return{postponedDate:t,postponedTask:n}}function lk(r,e){if(r){let t=r==null?void 0:r.format("DD MMM YYYY");return ` Task 's ${e} changed to ${t}`}else return`Task' s $ { e } removed ` }function ck(r,e,t){return ` \u2139\uFE0F $ { Nh ( r , e , t ) } ( right - click for more options ) ` }function Nh(r,e,t){let n=Vo(r),i=r[n];return mk(n,i,e,t)}function dk(r,e,t){let n=Vo(r),i=window.moment().startOf("day");return mk(n,i,e,t)}function fk(r,e,t){let n=Vo(r);return n==="scheduledDate"&&r.scheduledDateIsInferred?"Cannot remove inferred scheduled date": ` Remove $ { pk ( n ) } ` }function gF(r){return Cs(r.replace("Date",""))}function pk(r){return r.replace("Date"," date")}function mk(r,e,t,n){let s=new Ge(e).postpone(n,t).format("ddd Do MMM"),a=t!=1?t:"a";return e.isSameOrBefore(window.moment(),"day")? ` $ { gF ( r ) } in $ { a } $ { n } , on $ { s } ` .replace(" in 0 days"," today").replace("in a day","tomorrow"): ` Postpone $ { pk ( r ) } by $ { a } $ { n } , to $ { s } ` }var cc=class{constructor(e){e?this.taskLayoutOptions=e:this.taskLayoutOptions=new Jr}generateHiddenClasses(){let e=[];return this.taskLayoutOptions.toggleableComponents.forEach(t=>{Ho(e,!this.taskLayoutOptions.isShown(t),t)}),Ho(e,!this.taskLayoutOptions.areTagsShown(),"tags"),e}};var Ih=require("obsidian");var pi=class extends ea{constructor(e,t,n=Yo){super(n);let i=(l,c,d,f,m,g)=>{let T=m(t,f,d);c.setTitle(T).onClick(()=>pi.postponeOnClickCallback(l,t,f,d,g,n))},s=dk,a=sk;this.addItem(l=>i(e,l,"days",0,s,a)),this.addItem(l=>i(e,l,"day",1,s,a)),this.addSeparator();let o=Nh,u=Ph;this.addItem(l=>i(e,l,"days",2,o,u)),this.addItem(l=>i(e,l,"days",3,o,u)),this.addItem(l=>i(e,l,"days",4,o,u)),this.addItem(l=>i(e,l,"days",5,o,u)),this.addItem(l=>i(e,l,"days",6,o,u)),this.addSeparator(),this.addItem(l=>i(e,l,"week",1,o,u)),this.addItem(l=>i(e,l,"weeks",2,o,u)),this.addItem(l=>i(e,l,"weeks",3,o,u)),this.addItem(l=>i(e,l,"month",1,o,u)),this.addSeparator(),this.addItem(l=>i(e,l,"days",2,fk,ak))}static postponeOnClickCallback(o,u,l,c){return N(this,arguments,function*(e,t,n,i,s=Ph,a=Yo){let d=Vo(t);if(d===null){let g=" \u 26A0 \u FE0F Postponement requires a date: due, scheduled or start.";return new Ih.Notice(g,1e4)}let{postponedDate:f,postponedTask:m}=s(t,d,i,n);yield a(t,m),pi.postponeSuccessCallback(e,d,f)})}static postponeSuccessCallback(e,t,n){e.style.pointerEvents="none";let i=lk(n,t);new Ih.Notice(i,2e3)}};var zo=class{constructor(e){this.label=e,this.start()}start(){!this.recordTimings()||performance.mark(this.labelForStart())}finish(){!this.recordTimings()||(performance.mark(this.labelForEnd()),performance.measure(this.label,this.labelForStart(),this.labelForEnd()),this.printDuration())}printDuration(){let e=performance.getEntriesByName(this.label),t=e[e.length-1];t?console.log(this.label+":",t.duration,"milliseconds"):console.log( ` Measurement for $ { this . label } not found ` )}labelForStart(){return ` $ { this . label } - start ` }labelForEnd(){return ` $ { this . label } - end ` }recordTimings(){let{debugSettings:e}=X();return e.recordTimings}};var dc=class{constructor({plugin:e,events:t}){this.addQueryRenderChild=this._addQueryRenderChild.bind(this);this.app=e.app,this.plugin=e,this.events=t,e.registerMarkdownCodeBlockProcessor("tasks",this._addQueryRenderChild.bind(this))}_addQueryRenderChild(e,t,n){return N(this,null,function*(){n.addChild(new Fh({app:this.app,plugin:this.plugin,events:this.events,container:t,source:e,filePath:n.sourcePath}))})}},Fh=class extends ra.Ma
` ,this._markdown+= ` $ { t }
` }addRow(e){let t=this.makeRowText(e);this._markdown+= ` $ { t }
` }addRowIfNew(e){let t=this.makeRowText(e);this._markdown.includes(t)||(this._markdown+= ` $ { t }
` )}makeRowText(e){let t="|";return e.forEach(n=>{t+= ` $ { n } | ` }),t}};function hk(r,e){return r.findIndex(t=>t.symbol===e)}function jn(r){return r===""?r:" ` "+(r!==" "?r:" space ")+" ` "}function yF(r,e){let t=te.getTypeForUnknownSymbol(r.symbol);r.type!==t&&(t==="TODO"&&r.symbol!==" "||e.push( ` For information , the conventional type for status symbol $ { jn ( r . symbol ) } is $ { jn ( t ) } : you may wish to review this type . ` ))}function bF(r,e,t){let n=hk(r,e.nextStatusSymbol);if(n===-1){t.push( ` Next symbol $ { jn ( e . nextStatusSymbol ) } is unknown : create a status with symbol $ { jn ( e . nextStatusSymbol ) } . ` );return}if(e.type!=="DONE")return;let i=r[n];if(i){if(i.type!=="TODO"&&i.type!=="IN_PROGRESS"){let s="https://publish.obsidian.md/tasks/Getting+Started/Statuses/Recurring+Tasks+and+Custom+Statuses",a=[ ` This \ ` DONE \` status is followed by ${ jn ( i . type ) } , not \` TODO \` or \` IN_PROGRESS \` . ` , "If used to complete a recurring task, it will instead be followed by `TODO` or `IN_PROGRESS`, to ensure the next task matches the `not done` filter." , ` See [Recurring Tasks and Custom Statuses]( ${ s } ). ` ] . join ( "<br>" ) ; t . push ( a ) } } else t . push ( "Unexpected failure to find the next status." ) } function TF ( r , e , t ) { let n = [ ] ; return e . symbol === te . EMPTY . symbol ? ( n . push ( "Empty symbol: this status will be ignored." ) , n ) : hk ( r , e . symbol ) != t ? ( n . push ( ` Duplicate symbol ' ${ jn ( e . symbol ) } ': this status will be ignored. ` ) , n ) : ( yF ( e , n ) , bF ( r , e , n ) , n ) } function gk ( r ) { let e = new fc ( [ "Status Symbol" , "Next Status Symbol" , "Status Name" , "Status Type" , "Problems (if any)" ] ) , t = Le . allStatuses ( r ) ; return t . forEach ( ( n , i ) => { e . addRow ( [ jn ( n . symbol ) , jn ( n . nextStatusSymbol ) , n . name , jn ( n . type ) , TF ( t , n , i ) . join ( "<br>" ) ] ) } ) , e . markdown } function yk ( r , e , t , n ) { let s = gk ( r ) , a = e . mermaidDiagram ( ! 0 ) ; return ` # ${ t }
# # About this file
This file was created by the Obsidian Tasks plugin ( version $ { n } ) to help visualise the task statuses in this vault .
If you change the Tasks status settings , you can get an updated report by :
- Going to \ ` Settings \` -> \` Tasks \` .
- Clicking on \ ` Review and check your Statuses \` .
You can delete this file any time .
# # Status Settings
<!--
Switch to Live Preview or Reading Mode to see the table .
If there are any Markdown formatting characters in status names , such as '*' or '_' ,
Obsidian may only render the table correctly in Reading Mode .
-- >
These are the status values in the Core and Custom statuses sections .
$ { s }
# # Loaded Settings
<!-- Switch to Live Preview or Reading Mode to see the diagram . -- >
These are the settings actually used by Tasks .
$ { a } ` }function bk(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],['"',"Quote","x","TODO"],["0","Speech bubble 0","0","NON_TASK"],["1","Speech bubble 1","1","NON_TASK"],["2","Speech bubble 2","2","NON_TASK"],["3","Speech bubble 3","3","NON_TASK"],["4","Speech bubble 4","4","NON_TASK"],["5","Speech bubble 5","5","NON_TASK"],["6","Speech bubble 6","6","NON_TASK"],["7","Speech bubble 7","7","NON_TASK"],["8","Speech bubble 8","8","NON_TASK"],["9","Speech bubble 9","9","NON_TASK"]]}function Tk(){return[[" ","incomplete","x","TODO"],["x","complete / done"," ","DONE"],["-","cancelled"," ","CANCELLED"],[">","deferred","x","TODO"],["/","in progress, or half-done","x","IN_PROGRESS"],["!","Important","x","TODO"],["?","question","x","TODO"],["R","review","x","TODO"],["+","Inbox / task that should be processed later","x","TODO"],["b","bookmark","x","TODO"],["B","brainstorm","x","TODO"],["D","deferred or scheduled","x","TODO"],["I","Info","x","TODO"],["i","idea","x","TODO"],["N","note","x","TODO"],["Q","quote","x","TODO"],["W","win / success / reward","x","TODO"],["P","pro","x","TODO"],["C","con","x","TODO"]]}function _k(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],[">","Deferred","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["r","Review","x","TODO"]]}function vk(){return[[" ","Unchecked","x","TODO"],["x","Regular"," ","DONE"],["X","Checked"," ","DONE"],["-","Dropped"," ","CANCELLED"],[">","Forward","x","TODO"],["D","Date","x","TODO"],["?","Question","x","TODO"],["/","Half Done","x","IN_PROGRESS"],["+","Add","x","TODO"],["R","Research","x","TODO"],["!","Important","x","TODO"],["i","Idea","x","TODO"],["B","Brainstorm","x","TODO"],["P","Pro","x","TODO"],["C","Con","x","TODO"],["Q","Quote","x","TODO"],["N","Note","x","TODO"],["b","Bookmark","x","TODO"],["I","Information","x","TODO"],["p","Paraphrase","x","TODO"],["L","Location","x","TODO"],["E","Example","x","TODO"],["A","Answer","x","TODO"],["r","Reward","x","TODO"],["c","Choice","x","TODO"],["d","Doing","x","IN_PROGRESS"],["T","Time","x","TODO"],["@","Character / Person","x","TODO"],["t","Talk","x","TODO"],["O","Outline / Plot","x","TODO"],["~","Conflict","x","TODO"],["W","World","x","TODO"],["f","Clue / Find","x","TODO"],["F","Foreshadow","x","TODO"],["H","Favorite / Health","x","TODO"],["&","Symbolism","x","TODO"],["s","Secret","x","TODO"]]}function wk(){return[[" ","Unchecked","x","TODO"],["x","Checked"," ","DONE"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["-","Cancelled"," ","CANCELLED"],["/","In Progress","x","IN_PROGRESS"],["?","Question","x","TODO"],["*","Star","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["i","Information","x","TODO"],["I","Idea","x","TODO"],["S","Amount","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["b","Bookmark","x","TODO"],["f","Fire","x","TODO"],["k","Key","x","TODO"],["w","Win","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function kk(){return[[" ","to-do","x","TODO"],["/","incomplete","x","IN_PROGRESS"],["x","done"," ","DONE"],["-","canceled"," ","CANCELLED"],[">","forwarded","x","TODO"],["<","scheduling","x","TODO"],["?","question","x","TODO"],["!","important","x","TODO"],["*","star","x","TODO"],['"',"quote","x","TODO"],["l","location","x","TODO"],["b","bookmark","x","TODO"],["i","information","x","TODO"],["S","savings","x","TODO"],["I","idea","x","TODO"],["p","pros","x","TODO"],["c","cons","x","TODO"],["f","fire","x","TODO"],["k","key","x","TODO"],["w","win","x","TODO"],["u","up","x","TODO"],["d","down","x","TODO"]]}f
` )+ `
Fix errors before saving . ` ;new jr.Notice(d);return}this.saved=!0,this.close()})),l)),u.addExtraButton(l=>(l.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.saved=!1,this.close()}),l))})}onOpen(){this.display()}static setValidationError(t){t.inputEl.addClass("tasks-settings-is-invalid")}static removeValidationError(t){t.inputEl.removeClass("tasks-settings-is-invalid")}static setValid(t,n){n.length===0?or.removeValidationError(t):or.setValidationError(t)}};var Bt=class extends Ee.PluginSettingTab{constructor({plugin:t}){super(t.app,t);this.customFunctions={insertTaskCoreStatusSettings:this.insertTaskCoreStatusSettings.bind(this),insertCustomTaskStatusSettings:this.insertCustomTaskStatusSettings.bind(this)};this.plugin=t}saveSettings(t){return N(this,null,function*(){yield this.plugin.saveSettings(),t&&this.display()})}display(){let{containerEl:t}=this;t.empty(),this.containerEl.addClass("tasks-settings"),t.createEl("h3",{text:"Tasks Settings"}),t.createEl("p",{cls:"tasks-setting-important",text:"Changing any settings requires a restart of obsidian."}),t.createEl("h4",{text:"Task Format Settings"}),new Ee.Setting(t).setName("Task Format").setDesc(Bt.createFragmentWithHTML('<p>The format that Tasks uses to read and write tasks.</p><p><b>Important:</b> Tasks currently only supports one format at a time. Selecting Dataview will currently <b>stop Tasks reading its own emoji signifiers</b>.</p><p>See the <a href="https://publish.obsidian.md/tasks/Reference/Task+Formats/About+Task+Formats">documentation</a>.</p>')).addDropdown(i=>{for(let s of Object.keys(Nr))i.addOption(s,Nr[s].displayName);i.setValue(X().taskFormat).onChange(s=>N(this,null,function*(){et({taskFormat:s}),yield this.plugin.saveSettings()}))}),t.createEl("h4",{text:"Global filter Settings"}),new Ee.Setting(t).setName("Global task filter").setDesc(Bt.createFragmentWithHTML('<p><b>Recommended: Leave empty if you want all checklist items in your vault to be tasks managed by this plugin.</b></p><p>Use a global filter if you want Tasks to only act on a subset of your "<code>- [ ]</code>" checklist items, so that a checklist item must include the specified string in its description in order to be considered a task.<p><p>For example, if you set the global filter to <code>#task</code>, the Tasks plugin will only handle checklist items tagged with <code>#task</code>.</br>Other checklist items will remain normal checklist items and not appear in queries or get a done date set.</p><p>See the <a href="https://publish.obsidian.md/tasks/Getting+Started/Global+Filter">documentation</a>.</p>')).addText(i=>{i.setPlaceholder("e.g. #task or TODO").setValue(be.getInstance().get()).onChange(s=>N(this,null,function*(){et({globalFilter:s}),be.getInstance().set(s),yield this.plugin.saveSettings()}))}),new Ee.Setting(t).setName("Remove global filter from description").setDesc("Enabling this removes the string that you set as global filter from the task description when displaying a task.").addToggle(i=>{let s=X();i.setValue(s.removeGlobalFilter).onChange(a=>N(this,null,function*(){et({removeGlobalFilter:a}),be.getInstance().setRemoveGlobalFilter(a),yield this.plugin.saveSettings()}))}),t.createEl("h4",{text:"Global Query"}),kF(new Ee.Setting(t).setDesc(Bt.createFragmentWithHTML('<p>A query that is automatically included at the start of every Tasks block in the vault. Useful for adding default filters, or layout options.</p><p>See the <a href="https://publish.obsidian.md/tasks/Queries/Global+Query">documentation</a>.</p>')).addTextArea(i=>{let s=X();i.inputEl.rows=4,i.setPlaceholder( ` # For example ...
path does not include _templates /
limit 300
show urgency ` ).setValue(s.globalQuery).onChange(a=>N(this,null,function*(){et({globalQuery:a}),Or.getInstance().set(a),yield this.plugin.saveSettings()}))})),t.createEl("h4",{text:"Task Statuses"});let{headingOpened:n}=X();Sk.forEach(i=>{this.addOneSettingsBlock(t,i,n)}),t.createEl("h4",{text:"Date Settings"}),new Ee.Setting(t).setName("Set created date on every added task").setDesc(Bt.createFragmentWithHTML( ` Enabling this will add a timestamp \u2795 YYYY - MM - DD before other date values , when a task is created with 'Create or edit task' , or by completing a recurring task . < /br><p>See the <a href="https:/ / publish . obsidian . md / tasks / Getting + Started / Dates # Created + date ">documentation</a>.</p>`)).addToggle(i=>{let s=X();i.setValue(s.setCreatedDate).onChange(a=>N(this,null,function*(){et({setCreatedDate:a}),yield this.plugin.saveSettings()}))}),new Ee.Setting(t).setName(" Set done date on every completed task ").setDesc(Bt.createFragmentWithHTML('Enabling this will add a timestamp \u2705 YYYY-MM-DD at the end when a task is toggled to done.</br><p>See the <a href=" https : //publish.obsidian.md/tasks/Getting+Started/Dates#Done+date">documentation</a>.</p>')).addToggle(i=>{let s=X();i.setValue(s.setDoneDate).onChange(a=>N(this,null,function*(){et({setDoneDate:a}),yield this.plugin.saveSettings()}))}),new Ee.Setting(t).setName("Set cancelled date on every cancelled task").setDesc(Bt.createFragmentWithHTML('Enabling this will add a timestamp \u274C YYYY-MM-DD at the end when a task is toggled to cancelled.</br><p>See the <a href="https://publish.obsidian.md/tasks/Getting+Started/Dates#Cancelled+date">documentation</a>.</p>')).addToggle(i=>{let s=X();i.setValue(s.setCancelledDate).onChange(a=>N(this,null,function*(){et({setCancelledDate:a}),yield this.plugin.saveSettings()}))}),new Ee.Setting(t).setName("Use filename as Scheduled date for undated tasks").setDesc(Bt.createFragmentWithHTML('Save time entering Scheduled (\u23F3) dates.</br>If this option is enabled, any undated tasks will be given a default Scheduled date extracted from their file name.</br>The date in the file name must be in one of <code>YYYY-MM-DD</code> or <code>YYYYMMDD</code> formats.</br>Undated tasks have none of Due (\u{1F4C5} ), Scheduled (\u23F3) and Start (\u{1F6EB}) dates.</br><p>See the <a href="https://publish.obsidian.md/tasks/Getting+Started/Use+Filename+as+Default+Date">documentation</a>.</p>')).addToggle(i=>{let s=X();i.setValue(s.useFilenameAsScheduledDate).onChange(a=>N(this,null,function*(){et({useFilenameAsScheduledDate:a}),yield this.plugin.saveSettings()}))}),new Ee.Setting(t).setName("Folders with default Scheduled dates").setDesc("Leave empty if you want to use default Scheduled dates everywhere, or enter a comma-separated list of folders.").addText(i=>N(this,null,function*(){let s=X();yield this.plugin.saveSettings(),i.setValue(Bt.renderFolderArray(s.filenameAsDateFolders)).onChange(a=>N(this,null,function*(){let o=Bt.parseCommaSeparatedFolders(a);et({filenameAsDateFolders:o}),yield this.plugin.saveSettings()}))})),t.createEl("h4",{text:"Recurring task Settings"}),new Ee.Setting(t).setName("Next recurrence appears on the line below").setDesc(Bt.createFragmentWithHTML('Enabling this will make the next recurrence of a task appear on the line below the completed task. Otherwise the next recurrence will appear before the completed one.</br><p>See the <a href="https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks">documentation</a>.</p>')).addToggle(i=>{let{recurrenceOnNextLine:s}=X();i.setValue(s).onChange(a=>N(this,null,function*(){et({recurrenceOnNextLine:a}),yield this.plugin.saveSettings()}))}),t.createEl("h4",{text:"Auto-suggest Settings"}),new Ee.Setting(t).setName("Auto-suggest task content").setDesc(Bt.createFragmentWithHTML('Enabling this will open an intelligent suggest menu while typing inside a recognized task line.</br><p>See the <a href="https://publish.obsidian.md/tasks/Getting+Started/Auto-Suggest">documentation</a>.</p>')).addToggle(i=>{let s=X();i.setValue(s.autoSuggestInEditor).onChange(a=>N(this,null,function*(){et({au
` );t(o)}).open(),n};var Rk=(r,e)=>{let t=wl({line:"",path:""});return new ni({app:r,task:t,onSubmit:e,allTasks:[]})};var Mk=r=>({createTaskLineModal:()=>xk(r,Rk),executeToggleTaskDoneCommand:(e,t)=>uh(e,t).text});var mc=class extends Ck.Plugin{get apiV1(){return Mk(app)}onload(){return N(this,null,function*(){Ct.registerConsoleLogger(),Fm("info", ` loading plugin "${this.manifest.name}" v$ { this . manifest . version } ` ),yield this.loadSettings();let{loggingOptions:t}=X();Ct.configure(t),this.addSettingTab(new Ko({plugin:this})),Av({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace}),yield this.loadTaskStatuses();let n=new ic({obsidianEvents:this.app.workspace});this.cache=new Os({metadataCache:this.app.metadataCache,vault:this.app.vault,events:n}),this.inlineRenderer=new oc({plugin:this}),this.queryRenderer=new dc({plugin:this,events:n}),this.registerEditorExtension(rk()),this.registerEditorSuggest(new pc(this.app,X(),this)),new kl({plugin:this})})}loadTaskStatuses(){return N(this,null,function*(){let{statusSettings:t}=X();Le.applyToStatusRegistry(t,De.getInstance())})}onunload(){var t;Fm("info", ` unloading plugin "${this.manifest.name}" v$ { this . manifest . version } ` ),(t=this.cache)==null||t.unload()}loadSettings(){return N(this,null,function*(){let t=yield this.loadData();et(t),t=X(),be.getInstance().set(t.globalFilter),be.getInstance().setRemoveGlobalFilter(t.removeGlobalFilter),Or.getInstance().set(t.globalQuery),yield this.loadTaskStatuses()})}saveSettings(){return N(this,null,function*(){yield this.saveData(X())})}getTasks(){return this.cache===void 0?[]:this.cache.getTasks()}};
/ * !
* EventEmitter2
* https : //github.com/hij1nx/EventEmitter2
*
* Copyright ( c ) 2013 hij1nx
* Licensed under the MIT license .
* /
/ * !
* mustache . js - Logic - less { { mustache } } templates with JavaScript
* http : //github.com/janl/mustache.js
* /