508 lines
811 KiB
JavaScript
508 lines
811 KiB
JavaScript
|
|
/*
|
||
|
|
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 Clare Macrae, Ilyas Landikov and Martin Schenck
|
||
|
|
|
||
|
|
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
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License flatpickr (included library):
|
||
|
|
The MIT License (MIT)
|
||
|
|
|
||
|
|
Copyright (c) 2017 Gregory Petrosyan
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License @floating-ui/dom (included library):
|
||
|
|
|
||
|
|
MIT License
|
||
|
|
|
||
|
|
Copyright (c) 2021 Floating UI contributors
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License boon-js (included library):
|
||
|
|
|
||
|
|
The MIT License (MIT)
|
||
|
|
|
||
|
|
Copyright (c) 2020-present Jake Chorley
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License eventemitter2 (included library):
|
||
|
|
|
||
|
|
The MIT License (MIT)
|
||
|
|
|
||
|
|
Copyright (c) 2016 Paolo Fragomeni <http://www.github.com/0x00a> and Contributors
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License i18next (included library):
|
||
|
|
|
||
|
|
The MIT License (MIT)
|
||
|
|
|
||
|
|
Copyright (c) 2025 i18next
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License mustache (included library):
|
||
|
|
|
||
|
|
The MIT License
|
||
|
|
|
||
|
|
Copyright (c) 2009 Chris Wanstrath (Ruby)
|
||
|
|
Copyright (c) 2010-2014 Jan Lehnardt (JavaScript)
|
||
|
|
Copyright (c) 2010-2015 The mustache.js community
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
License mustache-validator (included library):
|
||
|
|
|
||
|
|
MIT License
|
||
|
|
|
||
|
|
Copyright (c) 2022 Elias Mangoro
|
||
|
|
*/
|
||
|
|
|
||
|
|
"use strict";var EO=Object.create;var vo=Object.defineProperty,OO=Object.defineProperties,xO=Object.getOwnPropertyDescriptor,RO=Object.getOwnPropertyDescriptors,CO=Object.getOwnPropertyNames,hu=Object.getOwnPropertySymbols,MO=Object.getPrototypeOf,kf=Object.prototype.hasOwnProperty,_b=Object.prototype.propertyIsEnumerable;var kb=(r,t,e)=>t in r?vo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,U=(r,t)=>{for(var e in t||(t={}))kf.call(t,e)&&kb(r,e,t[e]);if(hu)for(var e of hu(t))_b.call(t,e)&&kb(r,e,t[e]);return r},pe=(r,t)=>OO(r,RO(t));var Zs=(r,t)=>{var e={};for(var n in r)kf.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&hu)for(var n of hu(r))t.indexOf(n)<0&&_b.call(r,n)&&(e[n]=r[n]);return e};var Q=(r,t)=>()=>(r&&(t=r(r=0)),t);var C=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),wb=(r,t)=>{for(var e in t)vo(r,e,{get:t[e],enumerable:!0})},Sb=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of CO(t))!kf.call(r,i)&&i!==e&&vo(r,i,{get:()=>t[i],enumerable:!(n=xO(t,i))||n.enumerable});return r};var ko=(r,t,e)=>(e=r!=null?EO(MO(r)):{},Sb(t||!r||!r.__esModule?vo(e,"default",{value:r,enumerable:!0}):e,r)),Db=r=>Sb(vo({},"__esModule",{value:!0}),r);var A=(r,t,e)=>new Promise((n,i)=>{var s=l=>{try{o(e.next(l))}catch(u){i(u)}},a=l=>{try{o(e.throw(l))}catch(u){i(u)}},o=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,a);o((e=e.apply(r,t)).next())});var _e,_o,Eb,AO,PO,Ob,xb,wo,Rb,NO,yu,IO,Fb,Js,FO,LO,wf,UO,YO,qO,Sf,bu,WO,ta,Ar,na,Tu,Lb,Cb,ra,vu,Mb,Ab,Df,Pb,_f,Ef,$O,ea,Of,jO,xf,Nb,Ib,gu,HO,os,_t,eW,tW,nW,rW,iW,sW,aW,oW,lW,uW,cW,dW,fW,pW,Ub=Q(()=>{_e=r=>typeof r=="string",_o=()=>{let r,t,e=new Promise((n,i)=>{r=n,t=i});return e.resolve=r,e.reject=t,e},Eb=r=>r==null?"":""+r,AO=(r,t,e)=>{r.forEach(n=>{t[n]&&(e[n]=t[n])})},PO=/###/g,Ob=r=>r&&r.indexOf("###")>-1?r.replace(PO,"."):r,xb=r=>!r||_e(r),wo=(r,t,e)=>{let n=_e(t)?t.split("."):t,i=0;for(;i<n.length-1;){if(xb(r))return{};let s=Ob(n[i]);!r[s]&&e&&(r[s]=new e),Object.prototype.hasOwnProperty.call(r,s)?r=r[s]:r={},++i}return xb(r)?{}:{obj:r,k:Ob(n[i])}},Rb=(r,t,e)=>{let{obj:n,k:i}=wo(r,t,Object);if(n!==void 0||t.length===1){n[i]=e;return}let s=t[t.length-1],a=t.slice(0,t.length-1),o=wo(r,a,Object);for(;o.obj===void 0&&a.length;)s=`${a[a.length-1]}.${s}`,a=a.slice(0,a.length-1),o=wo(r,a,Object),(o==null?void 0:o.obj)&&typeof o.obj[`${o.k}.${s}`]!="undefined"&&(o.obj=void 0);o.obj[`${o.k}.${s}`]=e},NO=(r,t,e,n)=>{let{obj:i,k:s}=wo(r,t,Object);i[s]=i[s]||[],i[s].push(e)},yu=(r,t)=>{let{obj:e,k:n}=wo(r,t);if(!!e&&!!Object.prototype.hasOwnProperty.call(e,n))return e[n]},IO=(r,t,e)=>{let n=yu(r,e);return n!==void 0?n:yu(t,e)},Fb=(r,t,e)=>{for(let n in t)n!=="__proto__"&&n!=="constructor"&&(n in r?_e(r[n])||r[n]instanceof String||_e(t[n])||t[n]instanceof String?e&&(r[n]=t[n]):Fb(r[n],t[n],e):r[n]=t[n]);return r},Js=r=>r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),FO={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},LO=r=>_e(r)?r.replace(/[&<>"'\/]/g,t=>FO[t]):r,wf=class{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){let e=this.regExpMap.get(t);if(e!==void 0)return e;let n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}},UO=[" ",",","?","!",";"],YO=new wf(20),qO=(r,t,e)=>{t=t||"",e=e||"";let n=UO.filter(a=>t.indexOf(a)<0&&e.indexOf(a)<0);if(n.length===0)return!0;let i=YO.getRegExp(`(${n.map(a=>a==="?"?"\\?":a).join("|")})`),s=!i.test(r);if(!s){let a=r.indexOf(e);a>0&&!i.test(r.substring(0,a))&&(s=!0)}return s},Sf=function(r,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!r)return;if(r[t])return Object.prototype.hasOwnProperty.call(r,t)?r[t]:void 0;let n=t.split(e),i=r;for(let s=0;s<n.length;){if(!i||typeof i!="object")return;let a,o="";for(let l=s;l<n.length;++l)if(l!==s&&(o+=e),o+=n[l],a=i[o],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&l<n.length-1)continue;s+=l-s+1;break}i=a}return i},bu=r=>r==null?void 0:
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:""},line1:"",line2:"",name:""},recurringTasks:{heading:"\u041F\u0435\u0440\u044B\u044F\u0434\u044B\u0447\u043D\u044B\u044F \u0437\u0430\u0434\u0430\u0447\u044B",nextLine:{description:"\u0423\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u0435 \u0433\u044D\u0442\u0430\u0433\u0430 \u0437\u0440\u043E\u0431\u0456\u0446\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437\u0430\u0434\u0430\u0447\u044B \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439 \u0437\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443. \u0423 \u0430\u0434\u0432\u0430\u0440\u043E\u0442\u043D\u044B\u043C \u0432\u044B\u043F\u0430\u0434\u043A\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u0432\u0456\u0446\u0446\u0430 \u043F\u0435\u0440\u0430\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043D\u0430\u0439 \u0437\u0430\u0434\u0430\u0447\u0430\u0439.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0430\u0435 \u043F\u0430\u045E\u0442\u0430\u0440\u044D\u043D\u043D\u0435 \u0437'\u044F\u045E\u043B\u044F\u0435\u0446\u0446\u0430 \u043D\u0430 \u0440\u0430\u0434\u043A\u0443 \u043D\u0456\u0436\u044D\u0439"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u0413\u043B\u044F\u0434\u0437\u0456\u0446\u0435 \u0434\u0430\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u044B\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u044D\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u044D\u043C\u0430 Aura",borderTheme:"\u0422\u044D\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u0430\u0434\u0430\u0446\u044C {{numberOfStatuses}} \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043E\u045E\u0432\u0430\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B"}},ebullientworksTheme:"\u0422\u044D\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u044D\u043C\u0430 ITS \u0456 \u0441\u0446\u044F\u0436\u043A\u0456 SlRvb",lytModeTheme:"\u0422\u044D\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u0456 \u0446\u0451\u043C\u043D\u044B \u0440\u044D\u0436\u044B\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0442\u044D\u043C\u0430",thingsTheme:"\u0422\u044D\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u0430\u0433\u043B\u044F\u0434\u0437\u0435\u0446\u044C \u0456 \u043F\u0440\u0430\u0432\u0435\u0440\u044B\u0446\u044C \u0432\u0430\u0448\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u0442\u0432\u0430\u0440\u044B\u0446\u044C \u043D\u043E\u0432\u044B \u0444\u0430\u0439\u043B \u0443 \u043A\u0430\u0440\u0430\u043D\u0451\u0432\u0430\u0439 \u0442\u044D\u0447\u0446\u044B \u0441\u0445\u043E\u0432\u0456\u0448\u0447\u0430, \u044F\u043A\u0456 \u0437\u043C\u044F\u0448\u0447\u0430\u0435 \u0434\u044B\u044F\u0433\u0440\u0430\u043C\u0443 Mermaid \u0437 \u0431\u044F\u0433\u0443\u0447\u044B\u043C\u0456 \u043D\u0430\u043B\u0430\u0434\u0430\u043C\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0413\u044D\u0442\u0430 \u0430\u0441\u043D\u043E\u045E\u043D\u044B\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u044F\u043A\u0456\u044F Tasks \u043F\u0430\u0434\u0442\u0440\u044B\u043C\u043B\u0456\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u0430, \u0431\u0435\u0437 \u043F\u0430\u0442\u0440\u044D\u0431\u044B \u045E \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043A\u0456\u043C CSS-\u0441\u0442\u044B\u043B\u0456 \u0430\u0431\u043E \u0442\u044D\u043C\u0430\u0442\u044B\u0437\u0430\u0446\u044B\u0456.",line2:"\u0412\u044B \u043C\u043E\u0436\u0430\u0446\u0435 \u0440\u044D\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044C \u0456 \u0434\u0430\u0434\u0430\u0432\u0430\u0446\u044C \u0441\u0432\u0430\u0435 \u045E\u043B\u0430\u0441\u043D\u044B\u044F \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u0446\u043
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:""},line1:"",line2:"",name:""},recurringTasks:{heading:"Wiederkehrende Aufgaben",nextLine:{description:"Aktivieren Sie dies, damit das n\xE4chste Auftreten einer Aufgabe in der Zeile unterhalb der abgeschlossenen Aufgabe erscheint. Ansonsten erscheint es vor der abgeschlossenen Aufgabe.",name:"N\xE4chste Wiederholung erscheint in Zeile darunter"},removeScheduledDate:{description:{line1:"Aktiviert, damit das n\xE4chste Auftreten einer Aufgabe keinen geplanten (\u23F3) Termin hat, wenn mindestens Start-(\u{1F6EB}) oder F\xE4lligkeitsdaten (\u{1F4C5}) vorhanden sind.",line2:"Dies gilt, wenn Sie m\xF6chten, dass Start- und F\xE4lligkeitsdaten beim n\xE4chsten Auftreten beibehalten werden, aber das geplante Datum sp\xE4ter festgelegt wird, sobald Sie planen, daran zu arbeiten."},name:"Geplantes Datum bei Wiederholung entfernen"}},seeTheDocumentation:"Vgl. die Dokumentation",statuses:{collections:{anuppuccinTheme:"AnuPpuccin Theme",auraTheme:"Aura Theme",borderTheme:"Border Theme",buttons:{addCollection:{name:"{{themeName}}: F\xFCge {{numberOfStatuses}} unterst\xFCtzte Status hinzu"}},ebullientworksTheme:"Ebullientworks Theme",itsThemeAndSlrvbCheckboxes:"ITS Theme & SlRvb Kontrollk\xE4stchen",lytModeTheme:"LYT Mode Theme (nur Dunkelmodus)",minimalTheme:"Minimal Theme",thingsTheme:"Things Theme"},coreStatuses:{buttons:{checkStatuses:{name:"\xDCberpr\xFCfen und einsehen Sie Ihre Status-Eintr\xE4ge",tooltip:"Erstellen Sie eine neue Datei im Hauptverzeichnis des Tresors, die ein Mermaid-Diagramm der aktuellen Statuseinstellungen enth\xE4lt."}},description:{line1:"Diese Kern-Status unterst\xFCtzt Tasks nativ ohne benutzerdefiniertes CSS-Styling oder Themes.",line2:"Hinzuf\xFCgen und Bearbeiten Ihrer eigenen benutzerdefinierten Status k\xF6nnen Sie im unteren Abschnitt."},heading:"Kern-Status"},customStatuses:{buttons:{addAllUnknown:{name:"Alle unbekannten Statustypen hinzuf\xFCgen"},addNewStatus:{name:"Neuen Aufgabenstatus hinzuf\xFCgen"},resetCustomStatuses:{name:"Benutzerdefinierte Statustypen auf Standard zur\xFCcksetzen"}},description:{line1:"Zuerst w\xE4hlen und installieren Sie ein CSS-Snippet oder Theme, um benutzerdefinierte Kontrollk\xE4stchen zu formatieren.",line2:"Verwenden Sie dann die untenstehenden Schaltfl\xE4chen, um Ihre benutzerdefinierten Status zu erstellen, sodass sie mit Ihren ausgew\xE4hlten CSS-Kontrollk\xE4stchen \xFCbereinstimmen.",line3:"Hinweis: Status mit dem gleichen Symbol wie ein fr\xFCherer Status ignorieren wir. Best\xE4tigen Sie die tats\xE4chlich geladenen Status, indem Sie den 'Aufgabe erstellen oder bearbeiten'-Befehl ausf\xFChren und das Status-Dropdown anschauen.",line4:"Nutzen Sie die Dokumentation, um loszulegen!"},heading:"Benutzerdefinierte Status"},heading:"Aufgabenstatus"}}}});var Hb,jb=Q(()=>{Hb={main:{loadingPlugin:"Loading plugin: {{name}} v{{version}}",unloadingPlugin:"Unloading plugin: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"If enabled this status will be available as a command so you can assign a hotkey and toggle the status using it.",name:"Available as command"},editNextStatusSymbol:{description:"When clicked on this is the symbol that should be used next.",name:"Task Next Status Symbol"},editStatusName:{description:"This is the friendly name of the task status.",name:"Task Status Name"},editStatusSymbol:{description:"This is the character between the square braces. (It can only be edited for Custom statuses, and not Core statuses.)",name:"Task Status Symbol"},editStatusType:{description:"Control how the status behaves for searching and toggling.",name:"Task Status Type"},fixErrorsBeforeSaving:"Fix errors before saving."}},reports:{statusRegistry:{about:{createdBy:"This file was created by the Obsidian Tasks plugin (version {{version}}) to help visualise the task statuses in this vault.",deleteFileAnyTime:"You can delete this file any time.",title:"About this file",updateReport:{line1:"If you change the Tasks status settings, you can get an updated report by:",line2:"Going to `Settin
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:"Add new preset"},line1:"You can define named instructions here, that you can re-use in multiple queries. A preset called '{{name}}' can be used in Tasks queries with either '{{instruction1}}' or '{{instruction2}}'.",line2:"Any open Tasks queries are reloaded automatically when presets are edited.",name:"Presets"},recurringTasks:{heading:"Recurring tasks",nextLine:{description:"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.",name:"Next recurrence appears on the line below"},removeScheduledDate:{description:{line1:"Enabling this will make the next recurrence of a task have no Scheduled (\u23F3) date, when at least one of Start (\u{1F6EB}) or Due (\u{1F4C5}) dates is present.",line2:"This is for when you want the Start and Due dates to carry forward to the next recurrence, but you will set the Scheduled date in future, once you plan to work on it."},name:"Remove scheduled date on recurrence"}},seeTheDocumentation:"See the documentation",statuses:{collections:{anuppuccinTheme:"AnuPpuccin Theme",auraTheme:"Aura Theme",borderTheme:"Border Theme",buttons:{addCollection:{name:"{{themeName}}: Add {{numberOfStatuses}} supported Statuses"}},ebullientworksTheme:"Ebullientworks Theme",itsThemeAndSlrvbCheckboxes:"ITS Theme & SlRvb Checkboxes",lytModeTheme:"LYT Mode Theme (Dark mode only)",minimalTheme:"Minimal Theme",thingsTheme:"Things Theme"},coreStatuses:{buttons:{checkStatuses:{name:"Review and check your Statuses",tooltip:"Create a new file in the root of the vault, containing a Mermaid diagram of the current status settings."}},description:{line1:"These are the core statuses that Tasks supports natively, with no need for custom CSS styling or theming.",line2:"You can add edit and add your own custom statuses in the section below."},heading:"Core Statuses"},customStatuses:{buttons:{addAllUnknown:{name:"Add All Unknown Status Types"},addNewStatus:{name:"Add New Task Status"},resetCustomStatuses:{name:"Reset Custom Status Types to Defaults"}},description:{line1:"You should first <b>select and install a CSS Snippet or Theme</b> to style custom checkboxes.",line2:"Then, use the buttons below to set up your custom statuses, to match your chosen CSS checkboxes.",line3:"<b>Note</b> Any statuses with the same symbol as any earlier statuses will be ignored. You can confirm the actually loaded statuses by running the 'Create or edit task' command and looking at the Status drop-down.",line4:"See the documentation to get started!"},heading:"Custom Statuses"},heading:"Task Statuses"}}}});var Bb,Gb=Q(()=>{Bb={main:{loadingPlugin:"\uD50C\uB7EC\uADF8\uC778 \uB85C\uB4DC \uC911: {{name}} v{{version}}",unloadingPlugin:"\uD50C\uB7EC\uADF8\uC778 \uC5B8\uB85C\uB4DC \uC911: {{name}} v{{version}}"},modals:{customStatusModal:{editAvailableAsCommand:{description:"\uD65C\uC131\uD654\uD558\uBA74 \uC774 \uC0C1\uD0DC\uB97C \uBA85\uB839\uC5B4(command)\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC5B4 \uB2E8\uCD95\uD0A4\uB97C \uC9C0\uC815\uD558\uACE0 \uC0C1\uD0DC\uB97C \uC804\uD658\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",name:"\uBA85\uB839\uC5B4\uB85C \uC0AC\uC6A9"},editNextStatusSymbol:{description:"\uD074\uB9AD \uC2DC \uB2E4\uC74C\uC5D0 \uC0AC\uC6A9\uD560 \uAE30\uD638\uC785\uB2C8\uB2E4.",name:"\uB2E4\uC74C \uC0C1\uD0DC \uAE30\uD638"},editStatusName:{description:"\uC791\uC5C5 \uC0C1\uD0DC\uB97C \uC54C\uC544\uBCF4\uAE30 \uC27D\uAC8C \uD45C\uD604\uD558\uB294 \uC774\uB984\uC785\uB2C8\uB2E4.",name:"\uC0C1\uD0DC \uC774\uB984"},editStatusSymbol:{description:"\uB300\uAD04\uD638 '[]' \uC0AC\uC774\uC5D0 \uB4E4\uC5B4\uAC00\uB294 \uBB38\uC790\uC785\uB2C8\uB2E4. (\uCF54\uC5B4 \uC0C1\uD0DC\uAC00 \uC544\uB2CC \uC0AC\uC6A9\uC790 \uC815\uC758 \uC0C1\uD0DC\uB9CC \uD3B8\uC9D1\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.)",name:"\uC0C1\uD0DC \uAE30\uD638"},editStatusType:{description:"\uAC80\uC0C9 \uBC0F \uC0C1\uD0DC \uC804\uD658 \uC2DC \uC5B4\uB5BB\uAC8C \uB3D9\uC791\uD560\uC9C0 \uC81C\uC5B4\uD569\uB2C8\uB2E4.",name:"\uC0C
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:"\uC0C8 \uD504\uB9AC\uC14B \uCD94\uAC00"},line1:"\uC5EC\uAE30\uC11C \uC774\uB984 \uC788\uB294 \uC9C0\uCE68\uC744 \uC815\uC758\uD574 \uC5EC\uB7EC \uCFFC\uB9AC\uC5D0\uC11C \uC7AC\uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. '{{name}}' \uD504\uB9AC\uC14B\uC740 Tasks \uCFFC\uB9AC\uC5D0\uC11C '{{instruction1}}' \uB610\uB294 '{{instruction2}}'\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",line2:"\uD504\uB9AC\uC14B\uC744 \uC218\uC815\uD558\uBA74 \uC5F4\uB824 \uC788\uB294 \uBAA8\uB4E0 Tasks \uCFFC\uB9AC\uAC00 \uC790\uB3D9\uC73C\uB85C \uC0C8\uB85C\uACE0\uCE68\uB429\uB2C8\uB2E4.",name:"\uD504\uB9AC\uC14B"},recurringTasks:{heading:"\uBC18\uBCF5 \uC791\uC5C5",nextLine:{description:"\uD65C\uC131\uD654\uD558\uBA74 \uC644\uB8CC\uB41C \uC791\uC5C5\uC758 \uBC14\uB85C \uC544\uB798 \uC904\uC5D0 \uB2E4\uC74C \uBC18\uBCF5\uC774 \uB098\uD0C0\uB0A9\uB2C8\uB2E4. \uBE44\uD65C\uC131\uD654 \uC2DC \uB2E4\uC74C \uBC18\uBCF5\uC740 \uC644\uB8CC\uB41C \uC791\uC5C5 \uC55E\uC5D0 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.",name:"\uB2E4\uC74C \uBC18\uBCF5\uC744 \uC544\uB798 \uC904\uC5D0 \uD45C\uC2DC"},removeScheduledDate:{description:{line1:"\uD65C\uC131\uD654\uD558\uBA74 \uC2DC\uC791\uC77C(\u{1F6EB})\uB610\uB294 \uB9C8\uAC10\uC77C(\u{1F4C5}) \uC911 \uD558\uB098\uB77C\uB3C4 \uC788\uC744 \uB54C, \uB2E4\uC74C \uBC18\uBCF5 \uC791\uC5C5\uC5D0\uB294 \uC608\uC815\uC77C(\u23F3)\uC744 \uC124\uC815\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",line2:"\uC2DC\uC791\uC77C\uACFC \uB9C8\uAC10\uC77C\uC740 \uB2E4\uC74C \uBC18\uBCF5\uC73C\uB85C \uB118\uAE30\uB418, \uC608\uC815\uC77C\uC740 \uCD94\uD6C4 \uC791\uC5C5 \uACC4\uD68D \uC2DC\uC810\uC5D0 \uC124\uC815\uD558\uB824\uB294 \uACBD\uC6B0\uC5D0 \uC720\uC6A9\uD569\uB2C8\uB2E4."},name:"\uBC18\uBCF5 \uC2DC \uC608\uC815\uC77C \uC81C\uAC70"}},seeTheDocumentation:"\uBB38\uC11C \uBCF4\uAE30",statuses:{collections:{anuppuccinTheme:"AnuPpuccin \uD14C\uB9C8",auraTheme:"Aura \uD14C\uB9C8",borderTheme:"Border \uD14C\uB9C8",buttons:{addCollection:{name:"{{themeName}}: \uC9C0\uC6D0\uB418\uB294 \uC0C1\uD0DC {{numberOfStatuses}}\uAC1C \uCD94\uAC00"}},ebullientworksTheme:"Ebullientworks \uD14C\uB9C8",itsThemeAndSlrvbCheckboxes:"ITS \uD14C\uB9C8 & SlRvb \uCCB4\uD06C\uBC15\uC2A4",lytModeTheme:"LYT Mode \uD14C\uB9C8 (\uB2E4\uD06C \uBAA8\uB4DC \uC804\uC6A9)",minimalTheme:"Minimal \uD14C\uB9C8",thingsTheme:"Things \uD14C\uB9C8"},coreStatuses:{buttons:{checkStatuses:{name:"\uC0C1\uD0DC \uAC80\uD1A0 \uBC0F \uD655\uC778",tooltip:"\uBCF4\uAD00\uC18C \uB8E8\uD2B8\uC5D0 \uD604\uC7AC \uC0C1\uD0DC \uC124\uC815\uC758 Mermaid \uB2E4\uC774\uC5B4\uADF8\uB7A8\uC744 \uD3EC\uD568\uD55C \uC0C8 \uD30C\uC77C\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}},description:{line1:"\uC774\uAC83\uB4E4\uC740 \uC0AC\uC6A9\uC790 \uC815\uC758 CSS\uB098 \uD14C\uB9C8 \uC5C6\uC774\uB3C4 Tasks\uAC00 \uC790\uCCB4\uC801\uC73C\uB85C \uC9C0\uC6D0\uD558\uB294 \uCF54\uC5B4 \uC0C1\uD0DC\uC785\uB2C8\uB2E4.",line2:"\uC544\uB798 \uC139\uC158\uC5D0\uC11C \uC0AC\uC6A9\uC790 \uC815\uC758 \uC0C1\uD0DC\uB97C \uC9C1\uC811 \uD3B8\uC9D1\uD558\uACE0 \uCD94\uAC00\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},heading:"\uCF54\uC5B4 \uC0C1\uD0DC"},customStatuses:{buttons:{addAllUnknown:{name:"\uC54C \uC218 \uC5C6\uB294 \uBAA8\uB4E0 \uC0C1\uD0DC \uC720\uD615 \uCD94\uAC00"},addNewStatus:{name:"\uC0C8 \uC791\uC5C5 \uC0C1\uD0DC \uCD94\uAC00"},resetCustomStatuses:{name:"\uC0AC\uC6A9\uC790 \uC815\uC758 \uC0C1\uD0DC\uB97C \uAE30\uBCF8\uAC12\uC73C\uB85C \uC7AC\uC124\uC815"}},description:{line1:"\uBA3C\uC800 <b>CSS \uC2A4\uB2C8\uD3AB \uB610\uB294 \uD14C\uB9C8\uB97C \uC124\uCE58\uD558\uC5EC \uC0AC\uC6A9\uC790 \uC815\uC758 \uCCB4\uD06C\uBC15\uC2A4\uC5D0 \uC2A4\uD0C0\uC77C\uC744 \uC801\uC6A9</b>\uD558\uC138\uC694.",line2:"\uADF8 \uB2E4\uC74C, \uC544\uB798 \uBC84\uD2BC\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC120\uD0DD\uD55C \uCCB4\uD06C\uBC15\uC2A4 \uC2A4\uD0C0\uC77C\uC5D0 \uB9DE\uCDB0 \uC0AC\uC6A9\uC790 \uC815\uC758 \uC0C1\uD0DC\uB97C \uC124\uC815\uD558\uC138\uC694.",line3:"<b>\uCC38\uACE0:</b> \uC774\uC804\uC5D0 \uC815\uC758\uB41C \uC0C1\uD0DC\uC640 \uAE30\uD638\uAC00 \uB3D9\uC77C
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:""},line1:"",line2:"",name:""},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",nextLine:{description:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0439 \u043E\u043F\u0446\u0438\u0438 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u0442\u043E\u043C\u0443, \u0447\u0442\u043E \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0439.",name:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E\u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u043D\u0438\u0436\u0435"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C {{numberOfStatuses}} \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0438 \u0444\u043B\u0430\u0436\u043A\u0438 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043C\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u0422\u0435\u043C\u0430 Minimal",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044B",tooltip:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B \u0432 \u043A\u043E\u0440\u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 Mermaid \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443 \u0442\u0435\u043A\u0443\u0449\u0438\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432."}},description:{line1:"\u042D\u0442\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 Tasks \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E, \u0431\u0435\u0437 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 CSS \u0441\u0442\u0438\u043B\u0435\u0439 \u0438\u043B\u0438 \u0442\u0435\u043C.",line2:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C \u0441\
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:""},line1:"",line2:"",name:""},recurringTasks:{heading:"\u041F\u043E\u0432\u0442\u043E\u0440\u044E\u0432\u0430\u043D\u0456 \u0437\u0430\u0434\u0430\u0447\u0456",nextLine:{description:"\u0423\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043D\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0437\u043C\u0443\u0441\u0438\u0442\u044C \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u0430\u0434\u0430\u0447\u0456 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u0438\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u0457 \u0437\u0430\u0434\u0430\u0447\u0456. \u0406\u043D\u0430\u043A\u0448\u0435 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u0438\u0442\u044C\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E\u044E.",name:"\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u043D\u044F \u0437\u2019\u044F\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F \u043D\u0430 \u0440\u044F\u0434\u043A\u0443 \u043D\u0438\u0436\u0447\u0435"},removeScheduledDate:{description:{line1:"",line2:""},name:""}},seeTheDocumentation:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044E",statuses:{collections:{anuppuccinTheme:"\u0422\u0435\u043C\u0430 AnuPpuccin",auraTheme:"\u0422\u0435\u043C\u0430 Aura",borderTheme:"\u0422\u0435\u043C\u0430 Border",buttons:{addCollection:{name:"{{themeName}}: \u0414\u043E\u0434\u0430\u0442\u0438 {{numberOfStatuses}} \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0432\u0430\u043D\u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0456\u0432"}},ebullientworksTheme:"\u0422\u0435\u043C\u0430 Ebullientworks",itsThemeAndSlrvbCheckboxes:"\u0422\u0435\u043C\u0430 ITS \u0456 \u043F\u0440\u0430\u043F\u043E\u0440\u0446\u0456 SlRvb",lytModeTheme:"\u0422\u0435\u043C\u0430 LYT Mode (\u043B\u0438\u0448\u0435 \u0442\u0435\u043C\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C)",minimalTheme:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0430 \u0442\u0435\u043C\u0430",thingsTheme:"\u0422\u0435\u043C\u0430 Things"},coreStatuses:{buttons:{checkStatuses:{name:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 \u0442\u0430 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438",tooltip:"\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u0444\u0430\u0439\u043B \u0443 \u043A\u043E\u0440\u0435\u043D\u0456 \u0441\u0445\u043E\u0432\u0438\u0449\u0430, \u0449\u043E \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 Mermaid \u043F\u043E\u0442\u043E\u0447\u043D\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0441\u0442\u0430\u0442\u0443\u0441\u0443."}},description:{line1:"\u0426\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438, \u044F\u043A\u0456 Tasks \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u043D\u0430\u0442\u0438\u0432\u043D\u043E, \u0431\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u0438 \u0432 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u043E\u043C\u0443 CSS-\u0441\u0442\u0438\u043B\u044E\u0432\u0430\u043D\u043D\u0456 \u0447\u0438 \u0442\u0435\u043C\u0430\u0445.",line2:"\u0412\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438, \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u0430 \u0434\u043E\u0434\u0430\u0432\u0430\u0442\u0438 \u0432\u043B\u0430\u0441\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438 \u
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:"Th\xEAm preset m\u1EDBi"},line1:"B\u1EA1n c\xF3 th\u1EC3 \u0111\u1ECBnh ngh\u0129a c\xE1c h\u01B0\u1EDBng d\u1EABn \u0111\u01B0\u1EE3c \u0111\u1EB7t t\xEAn \u1EDF \u0111\xE2y, m\xE0 b\u1EA1n c\xF3 th\u1EC3 s\u1EED d\u1EE5ng l\u1EA1i trong nhi\u1EC1u truy v\u1EA5n. M\u1ED9t preset c\xF3 t\xEAn '{{name}}' c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng trong truy v\u1EA5n Tasks v\u1EDBi '{{instruction1}}' ho\u1EB7c '{{instruction2}}'.",line2:"B\u1EA5t k\u1EF3 truy v\u1EA5n Tasks n\xE0o \u0111ang m\u1EDF s\u1EBD \u0111\u01B0\u1EE3c t\u1EA3i l\u1EA1i t\u1EF1 \u0111\u1ED9ng khi c\xE1c preset \u0111\u01B0\u1EE3c ch\u1EC9nh s\u1EEDa.",name:"Preset"},recurringTasks:{heading:"Nhi\u1EC7m v\u1EE5 \u0111\u1ECBnh k\u1EF3",nextLine:{description:"B\u1EADt t\xEDnh n\u0103ng n\xE0y s\u1EBD l\xE0m cho l\u1EA7n l\u1EB7p l\u1EA1i ti\u1EBFp theo c\u1EE7a nhi\u1EC7m v\u1EE5 xu\u1EA5t hi\u1EC7n tr\xEAn d\xF2ng b\xEAn d\u01B0\u1EDBi nhi\u1EC7m v\u1EE5 \u0111\xE3 ho\xE0n th\xE0nh. N\u1EBFu kh\xF4ng, l\u1EA7n l\u1EB7p l\u1EA1i ti\u1EBFp theo s\u1EBD xu\u1EA5t hi\u1EC7n tr\u01B0\u1EDBc l\u1EA7n \u0111\xE3 ho\xE0n th\xE0nh.",name:"L\u1EA7n l\u1EB7p l\u1EA1i ti\u1EBFp theo xu\u1EA5t hi\u1EC7n tr\xEAn d\xF2ng b\xEAn d\u01B0\u1EDBi"},removeScheduledDate:{description:{line1:"B\u1EADt t\xEDnh n\u0103ng n\xE0y s\u1EBD l\xE0m cho l\u1EA7n l\u1EB7p l\u1EA1i ti\u1EBFp theo c\u1EE7a nhi\u1EC7m v\u1EE5 kh\xF4ng c\xF3 ng\xE0y \u0110\xE3 l\xEAn l\u1ECBch (\u23F3), khi \xEDt nh\u1EA5t m\u1ED9t trong c\xE1c ng\xE0y B\u1EAFt \u0111\u1EA7u (\u{1F6EB}) ho\u1EB7c \u0110\u1EBFn h\u1EA1n (\u{1F4C5}) c\xF3 m\u1EB7t.",line2:"\u0110i\u1EC1u n\xE0y d\xE0nh cho khi b\u1EA1n mu\u1ED1n ng\xE0y B\u1EAFt \u0111\u1EA7u v\xE0 \u0110\u1EBFn h\u1EA1n \u0111\u01B0\u1EE3c chuy\u1EC3n ti\u1EBFp sang l\u1EA7n l\u1EB7p l\u1EA1i ti\u1EBFp theo, nh\u01B0ng b\u1EA1n s\u1EBD \u0111\u1EB7t ng\xE0y \u0110\xE3 l\xEAn l\u1ECBch trong t\u01B0\u01A1ng lai, m\u1ED9t khi b\u1EA1n d\u1EF1 \u0111\u1ECBnh l\xE0m vi\u1EC7c v\u1EDBi n\xF3."},name:"X\xF3a ng\xE0y \u0111\xE3 l\xEAn l\u1ECBch khi l\u1EB7p l\u1EA1i"}},seeTheDocumentation:"Xem t\xE0i li\u1EC7u",statuses:{collections:{anuppuccinTheme:"Theme AnuPpuccin",auraTheme:"Theme Aura",borderTheme:"Theme Border",buttons:{addCollection:{name:"{{themeName}}: Th\xEAm {{numberOfStatuses}} Tr\u1EA1ng th\xE1i \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3"}},ebullientworksTheme:"Theme Ebullientworks",itsThemeAndSlrvbCheckboxes:"Theme ITS & SlRvb Checkboxes",lytModeTheme:"Theme LYT Mode (Ch\u1EC9 ch\u1EBF \u0111\u1ED9 t\u1ED1i)",minimalTheme:"Theme Minimal",thingsTheme:"Theme Things"},coreStatuses:{buttons:{checkStatuses:{name:"Xem x\xE9t v\xE0 ki\u1EC3m tra Tr\u1EA1ng th\xE1i c\u1EE7a b\u1EA1n",tooltip:"T\u1EA1o file m\u1EDBi trong th\u01B0 m\u1EE5c g\u1ED1c c\u1EE7a vault, ch\u1EE9a s\u01A1 \u0111\u1ED3 Mermaid c\u1EE7a c\xE1c c\xE0i \u0111\u1EB7t tr\u1EA1ng th\xE1i hi\u1EC7n t\u1EA1i."}},description:{line1:"\u0110\xE2y l\xE0 c\xE1c tr\u1EA1ng th\xE1i c\u1ED1t l\xF5i m\xE0 Tasks h\u1ED7 tr\u1EE3 nguy\xEAn b\u1EA3n, kh\xF4ng c\u1EA7n CSS t\xF9y ch\u1EC9nh ho\u1EB7c theme.",line2:"B\u1EA1n c\xF3 th\u1EC3 th\xEAm ch\u1EC9nh s\u1EEDa v\xE0 th\xEAm c\xE1c tr\u1EA1ng th\xE1i t\xF9y ch\u1EC9nh c\u1EE7a ri\xEAng b\u1EA1n trong ph\u1EA7n b\xEAn d\u01B0\u1EDBi."},heading:"Tr\u1EA1ng th\xE1i c\u1ED1t l\xF5i"},customStatuses:{buttons:{addAllUnknown:{name:"Th\xEAm t\u1EA5t c\u1EA3 lo\u1EA1i tr\u1EA1ng th\xE1i kh\xF4ng x\xE1c \u0111\u1ECBnh"},addNewStatus:{name:"Th\xEAm tr\u1EA1ng th\xE1i nhi\u1EC7m v\u1EE5 m\u1EDBi"},resetCustomStatuses:{name:"\u0110\u1EB7t l\u1EA1i lo\u1EA1i tr\u1EA1ng th\xE1i t\xF9y ch\u1EC9nh v\u1EC1 m\u1EB7c \u0111\u1ECBnh"}},description:{line1:"Tr\u01B0\u1EDBc ti\xEAn, b\u1EA1n n\xEAn <b>ch\u1ECDn v\xE0 c\xE0i \u0111\u1EB7t CSS Snippet ho\u1EB7c Theme</b> \u0111\u1EC3 t\u1EA1o ki\u1EC3u cho c\xE1c \xF4 \u0111\xE1nh d\u1EA5u t\xF9y ch\u1EC9nh.",line2:"Sau \u0111\xF3, s\u1EED d\u1EE5ng c\xE1c n\xFAt b\xEAn d\u01B0\u1EDBi \u0111\u1EC3 thi\u1EBFt l\u1EADp tr\u1EA1ng th\xE1i t\xF9y ch\u1EC9nh c\u1EE7a b\u1EA1n,
|
||
|
|
path does not include _templates/
|
||
|
|
limit 300
|
||
|
|
show urgency`}},presets:{buttons:{addNewPreset:""},line1:"\u60A8\u53EF\u4EE5\u5728\u8FD9\u91CC\u5B9A\u4E49\u547D\u540D\u6307\u4EE4\uFF0C\u53EF\u4EE5\u5728\u591A\u4E2A\u67E5\u8BE2\u4E2D\u91CD\u590D\u4F7F\u7528\u3002\u4E00\u4E2A\u540D\u4E3A '{{name}}' \u7684\u9884\u8BBE\u53EF\u4EE5\u5728\u4EFB\u52A1\u67E5\u8BE2\u4E2D\u4F7F\u7528 '{{instruction1}}' \u6216 '{{instruction2}}'\u3002",line2:"\u4EFB\u4F55\u6253\u5F00\u7684\u4EFB\u52A1\u67E5\u8BE2\u5728\u9884\u8BBE\u88AB\u7F16\u8F91\u65F6\u90FD\u4F1A\u81EA\u52A8\u91CD\u65B0\u52A0\u8F7D\u3002",name:"\u9884\u8BBE"},recurringTasks:{heading:"\u91CD\u590D\u6027\u4EFB\u52A1",nextLine:{description:"\u542F\u7528\u6B64\u529F\u80FD\u540E\uFF0C\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u663E\u793A\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0B\u4E00\u884C\u3002\u82E5\u5173\u95ED\u6B64\u529F\u80FD\uFF0C\u5219\u4E0B\u4E00\u6B21\u91CD\u590D\u5C06\u51FA\u73B0\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u7684\u4E0A\u4E00\u884C\u3002",name:"\u628A\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u653E\u5728\u4E0B\u4E00\u884C"},removeScheduledDate:{description:{line1:"\u5F00\u542F\u6B64\u9009\u9879\u540E\uFF0C\u5F53\u4EFB\u52A1\u81F3\u5C11\u8BBE\u7F6E\u4E86\u5F00\u59CB\u65E5\u671F(\u{1F6EB})\u6216\u8BA1\u5212\u65E5\u671F(\u{1F4C5})\u4E2D\u7684\u4E00\u4E2A\u65F6\uFF0C\u8BE5\u4EFB\u52A1\u7684\u4E0B\u4E00\u6B21\u91CD\u590D\u5468\u671F\u5C06\u4E0D\u518D\u5305\u542B\u8BA1\u5212\u65E5\u671F(\u23F3)\u3002",line2:"\u6B64\u529F\u80FD\u9002\u7528\u4E8E\u4F60\u5E0C\u671B\u5C06\u5F00\u59CB\u548C\u622A\u6B62\u65E5\u671F\u5EF6\u7EED\u5230\u4E0B\u4E00\u4E2A\u5468\u671F\uFF0C\u4F46\u8BA1\u5212\u65E5\u671F\u6682\u4E0D\u8BBE\u7F6E\uFF0C\u7B49\u5B9E\u9645\u5F00\u59CB\u5904\u7406\u65F6\u518D\u786E\u5B9A\u7684\u60C5\u51B5\u3002"},name:"\u5728\u91CD\u590D\u6027\u4EFB\u52A1\u4E2D\u79FB\u9664\u8BA1\u5212\u65E5\u671F"}},seeTheDocumentation:"\u53C2\u9605\u6587\u6863",statuses:{collections:{anuppuccinTheme:"AnuPpuccin \u4E3B\u9898",auraTheme:"Aura \u4E3B\u9898",borderTheme:"Border \u4E3B\u9898",buttons:{addCollection:{name:"{{themeName}}: \u6DFB\u52A0 {{numberOfStatuses}} \u79CD\u652F\u6301\u72B6\u6001"}},ebullientworksTheme:"Ebullientworks \u4E3B\u9898",itsThemeAndSlrvbCheckboxes:"ITS \u4E3B\u9898\u548C SlRvb \u590D\u9009\u6846",lytModeTheme:"LYT Mode \u4E3B\u9898 (\u4EC5\u6DF1\u8272\u6A21\u5F0F)",minimalTheme:"Minimal \u4E3B\u9898",thingsTheme:"Things \u4E3B\u9898"},coreStatuses:{buttons:{checkStatuses:{name:"\u67E5\u770B\u5E76\u68C0\u67E5\u60A8\u7684\u72B6\u6001",tooltip:"\u5728\u5E93\u7684\u6839\u76EE\u5F55\u4E0B\u521B\u5EFA\u4E00\u4E2A\u65B0\u6587\u4EF6,\u5305\u542B\u5F53\u524D\u72B6\u6001\u8BBE\u7F6E\u7684 Mermaid \u56FE\u8868."}},description:{line1:"\u8FD9\u4E9B\u662F Tasks \u539F\u751F\u652F\u6301\u7684\u6838\u5FC3\u72B6\u6001\uFF0C\u4E0D\u9700\u8981\u81EA\u5B9A\u4E49CSS\u6837\u5F0F\u6216\u4E3B\u9898\u3002",line2:"\u60A8\u53EF\u4EE5\u5728\u4E0B\u9762\u7F16\u8F91\u548C\u6DFB\u52A0\u81EA\u5B9A\u4E49\u72B6\u6001\u3002"},heading:"\u6838\u5FC3\u72B6\u6001"},customStatuses:{buttons:{addAllUnknown:{name:"\u6DFB\u52A0\u6240\u6709\u672A\u77E5\u72B6\u6001\u7C7B\u578B"},addNewStatus:{name:"\u6DFB\u52A0\u65B0\u4EFB\u52A1\u72B6\u6001"},resetCustomStatuses:{name:"\u91CD\u7F6E\u81EA\u5B9A\u4E49\u72B6\u6001\u7C7B\u578B\u4E3A\u9ED8\u8BA4\u503C"}},description:{line1:"\u60A8\u5E94\u8BE5\u9996\u5148<b>\u9009\u62E9\u5E76\u5B89\u88C5 CSS\u4EE3\u7801\u6BB5\u6216\u4E3B\u9898<b>\u4EE5\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u590D\u9009\u6846\u7684\u6837\u5F0F",line2:"\u7136\u540E\uFF0C\u4F7F\u7528\u4E0B\u9762\u7684\u6309\u94AE\u8BBE\u7F6E\u60A8\u7684\u81EA\u5B9A\u4E49\u72B6\u6001,\u4EE5\u5339\u914D\u60A8\u9009\u62E9\u7684CSS\u590D\u9009\u6846.",line3:"<b>\u6CE8\u610F</b>\u4EFB\u4F55\u4E0E\u66F4\u65E9\u7684\u72B6\u6001\u5177\u6709\u76F8\u540C\u7B26\u53F7\u7684\u72B6\u6001\u90FD\u5C06\u88AB\u5FFD\u7565.\u60A8\u53EF\u4EE5\u901A\u8FC7\u8FD0\u884C\u201CCreate or edit task\u201D\u547D\u4EE4\u5E76\u67E5\u770B\u201CStatus\u201D\u4E0B\u62C9\u5217\u8868\u6765\u786E\u8BA4\u5B9E\u9645\u52A0\u8F7D\u7684\u72B6\u6001\u3002",line4:"\u53C2\u9605\u6587\u6863\uFF0
|
||
|
|
`).map(N2).filter(function(e){return e!==null});return Lt(Lt({},t[0]),t[1])}function Cl(r){var t={},e=/DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(r);if(!e)return t;var n=e[1],i=e[2];return n&&(t.tzid=n),t.dtstart=El(i),t}function N2(r){if(r=r.replace(/^\s+|\s+$/,""),!r.length)return null;var t=/^([A-Z]+?)[:;]/.exec(r.toUpperCase());if(!t)return Jw(r);var e=t[1];switch(e.toUpperCase()){case"RRULE":case"EXRULE":return Jw(r);case"DTSTART":return Cl(r);default:throw new Error("Unsupported RFC prop ".concat(e," in ").concat(r))}}function Jw(r){var t=r.replace(/^RRULE:/i,""),e=Cl(t),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":e.freq=Ae[o.toUpperCase()];break;case"WKST":e.wkst=ir[o.toUpperCase()];break;case"COUNT":case"INTERVAL":case"BYSETPOS":case"BYMONTH":case"BYMONTHDAY":case"BYYEARDAY":case"BYWEEKNO":case"BYHOUR":case"BYMINUTE":case"BYSECOND":var l=I2(o),u=a.toLowerCase();e[u]=l;break;case"BYWEEKDAY":case"BYDAY":e.byweekday=F2(o);break;case"DTSTART":case"TZID":var c=Cl(r);e.tzid=c.tzid,e.dtstart=c.dtstart;break;case"UNTIL":e.until=El(o);break;case"BYEASTER":e.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+a+"'")}}),e}function I2(r){if(r.indexOf(",")!==-1){var t=r.split(",");return t.map(eS)}return eS(r)}function eS(r){return/^[+-]?\d+$/.test(r)?Number(r):r}function F2(r){var t=r.split(",");return t.map(function(e){if(e.length===2)return ir[e];var n=e.match(/^([+-]?\d{1,2})([A-Z]{2})$/);if(!n||n.length<3)throw new SyntaxError("Invalid weekday string: ".concat(e));var i=Number(n[1]),s=n[2],a=ir[s].weekday;return new ht(a,i)})}var Ng=Q(()=>{Yr();gi();ks();Gt();rr()});var Ds,Dc=Q(()=>{Gt();Ds=function(){function r(t,e){if(isNaN(t.getTime()))throw new RangeError("Invalid date passed to DateWithZone");this.date=t,this.tzid=e}return Object.defineProperty(r.prototype,"isUTC",{get:function(){return!this.tzid||this.tzid.toUpperCase()==="UTC"},enumerable:!1,configurable:!0}),r.prototype.toString=function(){var t=_a(this.date.getTime(),this.isUTC);return this.isUTC?":".concat(t):";TZID=".concat(this.tzid,":").concat(t)},r.prototype.getTime=function(){return this.date.getTime()},r.prototype.rezonedDate=function(){return this.isUTC?this.date:Yw(this.date,this.tzid)},r}()});function Al(r){for(var t=[],e="",n=Object.keys(r),i=Object.keys(Rl),s=0;s<n.length;s++)if(n[s]!=="tzid"&&!!qe(i,n[s])){var a=n[s].toUpperCase(),o=r[n[s]],l="";if(!(!rt(o)||Ft(o)&&!o.length)){switch(a){case"FREQ":l=oe.FREQUENCIES[r.freq];break;case"WKST":Pn(o)?l=new ht(o).toString():l=o.toString();break;case"BYWEEKDAY":a="BYDAY",l=Nw(o).map(function(p){return p instanceof ht?p:Ft(p)?new ht(p[0],p[1]):new ht(p)}).toString();break;case"DTSTART":e=L2(o,r.tzid);break;case"UNTIL":l=_a(o,!r.tzid);break;default:if(Ft(o)){for(var u=[],c=0;c<o.length;c++)u[c]=String(o[c]);l=u.toString()}else l=String(o)}l&&t.push([a,l])}}var d=t.map(function(p){var g=p[0],b=p[1];return"".concat(g,"=").concat(b.toString())}).join(";"),f="";return d!==""&&(f="RRULE:".concat(d)),[e,f].filter(function(p){return!!p}).join(`
|
||
|
|
`)}function L2(r,t){return r?"DTSTART"+new Ds(new Date(r),t).toString():""}var Ig=Q(()=>{rr();ln();ks();Gt();Dc()});function U2(r,t){return Array.isArray(r)?!Array.isArray(t)||r.length!==t.length?!1:r.every(function(e,n){return e.getTime()===t[n].getTime()}):r instanceof Date?t instanceof Date&&r.getTime()===t.getTime():r===t}var tS,nS=Q(()=>{_c();Gt();ln();tS=function(){function r(){this.all=!1,this.before=[],this.after=[],this.between=[]}return r.prototype._cacheAdd=function(t,e,n){e&&(e=e instanceof Date?kc(e):Rg(e)),t==="all"?this.all=e:(n._value=e,this[t].push(n))},r.prototype._cacheGet=function(t,e){var n=!1,i=e?Object.keys(e):[],s=function(c){for(var d=0;d<i.length;d++){var f=i[d];if(!U2(e[f],c[f]))return!0}return!1},a=this[t];if(t==="all")n=this.all;else if(Ft(a))for(var o=0;o<a.length;o++){var l=a[o];if(!(i.length&&s(l))){n=l._value;break}}if(!n&&this.all){for(var u=new hi(t,e),o=0;o<this.all.length&&u.accept(this.all[o]);o++);n=u.getValue(),this._cacheAdd(t,n,e)}return Ft(n)?Rg(n):n instanceof Date?kc(n):n},r}()});var rS,iS,Y2,q2,$i,Bt,sS,aS,W2,$2,ji,Vt,oS,lS,uS,cS,Fg,dS=Q(()=>{Yr();ln();rS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Le(1,31),!0),Le(2,28),!0),Le(3,31),!0),Le(4,30),!0),Le(5,31),!0),Le(6,30),!0),Le(7,31),!0),Le(8,31),!0),Le(9,30),!0),Le(10,31),!0),Le(11,30),!0),Le(12,31),!0),Le(1,7),!0),iS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Le(1,31),!0),Le(2,29),!0),Le(3,31),!0),Le(4,30),!0),Le(5,31),!0),Le(6,30),!0),Le(7,31),!0),Le(8,31),!0),Le(9,30),!0),Le(10,31),!0),Le(11,30),!0),Le(12,31),!0),Le(1,7),!0),Y2=nr(1,29),q2=nr(1,30),$i=nr(1,31),Bt=nr(1,32),sS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Bt,!0),q2,!0),Bt,!0),$i,!0),Bt,!0),$i,!0),Bt,!0),Bt,!0),$i,!0),Bt,!0),$i,!0),Bt,!0),Bt.slice(0,7),!0),aS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Bt,!0),Y2,!0),Bt,!0),$i,!0),Bt,!0),$i,!0),Bt,!0),Bt,!0),$i,!0),Bt,!0),$i,!0),Bt,!0),Bt.slice(0,7),!0),W2=nr(-28,0),$2=nr(-29,0),ji=nr(-30,0),Vt=nr(-31,0),oS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Vt,!0),$2,!0),Vt,!0),ji,!0),Vt,!0),ji,!0),Vt,!0),Vt,!0),ji,!0),Vt,!0),ji,!0),Vt,!0),Vt.slice(0,7),!0),lS=X(X(X(X(X(X(X(X(X(X(X(X(X([],Vt,!0),W2,!0),Vt,!0),ji,!0),Vt,!0),ji,!0),Vt,!0),Vt,!0),ji,!0),Vt,!0),ji,!0),Vt,!0),Vt.slice(0,7),!0),uS=[0,31,60,91,121,152,182,213,244,274,305,335,366],cS=[0,31,59,90,120,151,181,212,243,273,304,334,365],Fg=function(){for(var r=[],t=0;t<55;t++)r=r.concat(nr(7));return r}()});function fS(r,t){var e=Ur(r,1,1),n=ka(r)?366:365,i=ka(r+1)?366:365,s=Dl(e),a=pi(e),o=Lt(Lt({yearlen:n,nextyearlen:i,yearordinal:s,yearweekday:a},j2(r)),{wnomask:null});if(Nn(t.byweekno))return o;o.wnomask=Le(0,n+7);var l,u,c=l=Ht(7-a+t.wkst,7);c>=4?(c=0,u=o.yearlen+Ht(a-t.wkst,7)):u=n-c;for(var d=Math.floor(u/7),f=Ht(u,7),p=Math.floor(d+f/4),g=0;g<t.byweekno.length;g++){var b=t.byweekno[g];if(b<0&&(b+=p+1),b>0&&b<=p){var v=void 0;b>1?(v=c+(b-1)*7,c!==l&&(v-=7-l)):v=c;for(var E=0;E<7&&(o.wnomask[v]=1,v++,o.wdaymask[v]!==t.wkst);E++);}}if(qe(t.byweekno,1)){var v=c+p*7;if(c!==l&&(v-=7-l),v<n)for(var g=0;g<7&&(o.wnomask[v]=1,v+=1,o.wdaymask[v]!==t.wkst);g++);}if(c){var x=void 0;if(qe(t.byweekno,-1))x=-1;else{var O=pi(Ur(r-1,1,1)),q=Ht(7-O.valueOf()+t.wkst,7),V=ka(r-1)?366:365,Z=void 0;q>=4?(q=0,Z=V+Ht(O-t.wkst,7)):Z=n-c,x=Math.floor(52+Ht(Z,7)/4)}if(qe(t.byweekno,x))for(var v=0;v<c;v++)o.wnomask[v]=1}return o}function j2(r){var t=ka(r)?366:365,e=Ur(r,1,1),n=pi(e);return t===365?{mmask:rS,mdaymask:aS,nmdaymask:lS,wdaymask:Fg.slice(n),mrange:cS}:{mmask:iS,mdaymask:sS,nmdaymask:oS,wdaymask:Fg.slice(n),mrange:uS}}var pS=Q(()=>{Yr();Gt();ln();dS()});function mS(r,t,e,n,i,s){var a={lastyear:r,lastmonth:t,nwdaymask:[]},o=[];if(s.freq===oe.YEARLY)if(Nn(s.bymonth))o=[[0,e]];else for(var l=0;l<s.bymonth.length;l++)t=s.bymonth[l],o.push(n.slice(t-1,t+1));else s.freq===oe.MONTHLY&&(o=[n.slice(t-1,t+1)]);if(Nn(o))return a;a.nwdaymask=Le(0,e);for(var l=0;l<o.length;l++)for(var u=o[l],c=u[0],d=u[1]-1,f=0;f<s.bynweekday.length;f++){var p=void 0,g=s.bynweekday[f],b=g[0],v=g[1];v<0?(p=d+(v+1)*7,p-=Ht(i[p]-b,7)):(p=c+(v-1)*7,p+=Ht(7-i[p]+b,7)),c<=p&&p<=d&&(a.nwdaymask[p]=1)}return a}var hS=Q(()=>{rr();ln()});function gS(r,t){t===void 0&&(t=0);var e=r%19,n
|
||
|
|
`),n=0;n<e.length;){var i=e[n]=e[n].replace(/\s+$/g,"");i?n>0&&i[0]===" "?(e[n-1]+=i.slice(1),e.splice(n,1)):n+=1:e.splice(n,1)}return e}function eU(r){r.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function ES(r,t){return eU(t),r.split(",").map(function(e){return El(e)})}var DS,Yg=Q(()=>{Yr();rr();Wg();Gt();ln();Ng();DS={dtstart:null,cache:!1,unfold:!1,forceset:!1,compatible:!1,tzid:null}});function OS(r){var t=this;return function(e){if(e!==void 0&&(t["_".concat(r)]=e),t["_".concat(r)]!==void 0)return t["_".concat(r)];for(var n=0;n<t._rrule.length;n++){var i=t._rrule[n].origOptions[r];if(i)return i}}}function xS(r,t){if(!(r instanceof oe))throw new TypeError(String(r)+" is not RRule instance");qe(t.map(String),String(r))||t.push(r)}function RS(r,t){if(!(r instanceof Date))throw new TypeError(String(r)+" is not Date instance");qe(t.map(Number),Number(r))||(t.push(r),mi(t))}function CS(r,t,e){var n=!e||e.toUpperCase()==="UTC",i=n?"".concat(r,":"):"".concat(r,";TZID=").concat(e,":"),s=t.map(function(a){return _a(a.valueOf(),n)}).join(",");return"".concat(i).concat(s)}var qg,Wg=Q(()=>{Yr();rr();Gt();ln();SS();Yg();Ig();qg=function(r){wa(t,r);function t(e){e===void 0&&(e=!1);var n=r.call(this,{},e)||this;return n.dtstart=OS.apply(n,["dtstart"]),n.tzid=OS.apply(n,["tzid"]),n._rrule=[],n._rdate=[],n._exrule=[],n._exdate=[],n}return t.prototype._iter=function(e){return wS(e,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},t.prototype.rrule=function(e){xS(e,this._rrule)},t.prototype.exrule=function(e){xS(e,this._exrule)},t.prototype.rdate=function(e){RS(e,this._rdate)},t.prototype.exdate=function(e){RS(e,this._exdate)},t.prototype.rrules=function(){return this._rrule.map(function(e){return Oc(e.toString())})},t.prototype.exrules=function(){return this._exrule.map(function(e){return Oc(e.toString())})},t.prototype.rdates=function(){return this._rdate.map(function(e){return new Date(e.getTime())})},t.prototype.exdates=function(){return this._exdate.map(function(e){return new Date(e.getTime())})},t.prototype.valueOf=function(){var e=[];return!this._rrule.length&&this._dtstart&&(e=e.concat(Al({dtstart:this._dtstart}))),this._rrule.forEach(function(n){e=e.concat(n.toString().split(`
|
||
|
|
`))}),this._exrule.forEach(function(n){e=e.concat(n.toString().split(`
|
||
|
|
`).map(function(i){return i.replace(/^RRULE:/,"EXRULE:")}).filter(function(i){return!/^DTSTART/.test(i)}))}),this._rdate.length&&e.push(CS("RDATE",this._rdate,this.tzid())),this._exdate.length&&e.push(CS("EXDATE",this._exdate,this.tzid())),e},t.prototype.toString=function(){return this.valueOf().join(`
|
||
|
|
`)},t.prototype.clone=function(){var e=new t(!!this._cache);return this._rrule.forEach(function(n){return e.rrule(n.clone())}),this._exrule.forEach(function(n){return e.exrule(n.clone())}),this._rdate.forEach(function(n){return e.rdate(new Date(n.getTime()))}),this._exdate.forEach(function(n){return e.exdate(new Date(n.getTime()))}),e},t}(oe)});var MS=Q(()=>{rr();Wg();Yg();gi();ks();Gt()});var Ct,xc=Q(()=>{"use strict";MS();Ct=class{constructor({rrule:t,baseOnToday:e,occurrence:n}){this.rrule=t,this.baseOnToday=e,this.occurrence=n}static fromText({recurrenceRuleText:t,occurrence:e}){try{let n=t.match(/^([a-zA-Z0-9, !]+?)( when done)?$/i);if(n==null)return null;let i=n[1].trim(),s=n[2]!==void 0,a=oe.parseText(i);if(a!==null){let o=e.referenceDate;!s&&o!==null?a.dtstart=window.moment(o).startOf("day").utc(!0).toDate():a.dtstart=window.moment().startOf("day").utc(!0).toDate();let l=new oe(a);return new Ct({rrule:l,baseOnToday:s,occurrence:e})}}catch(n){n instanceof Error&&console.log(n.message)}return null}toText(){let t=this.rrule.toText();return this.baseOnToday&&(t+=" when done"),t}next(t=window.moment()){let e=this.nextReferenceDate(t);return e===null?null:this.occurrence.next(e)}identicalTo(t){return this.baseOnToday!==t.baseOnToday||!this.occurrence.isIdenticalTo(t.occurrence)?!1:this.toText()===t.toText()}nextReferenceDate(t){return this.baseOnToday?this.nextReferenceDateFromToday(t.clone()).toDate():this.nextReferenceDateFromOriginalReferenceDate().toDate()}nextReferenceDateFromToday(t){let e=new oe(pe(U({},this.rrule.origOptions),{dtstart:t.startOf("day").utc(!0).toDate()}));return this.nextAfter(t.endOf("day"),e)}nextReferenceDateFromOriginalReferenceDate(){var e;let t=window.moment((e=this.occurrence.referenceDate)!=null?e:void 0).endOf("day");return this.nextAfter(t,this.rrule)}nextAfter(t,e){t.utc(!0);let n=window.moment.utc(e.after(t.toDate())),i=this.toText(),s=i.match(/every( \d+)? month(s)?(.*)?/);s!==null&&(i.includes(" on ")||(n=Ct.nextAfterMonths(t,n,e,s[1])));let a=i.match(/every( \d+)? year(s)?(.*)?/);return a!==null&&(n=Ct.nextAfterYears(t,n,e,a[1])),Ct.addTimezone(n)}static nextAfterMonths(t,e,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Ct.isSkippingTooManyMonths(t,e,s);)e=Ct.fromOneDayEarlier(t,n);return e}static isSkippingTooManyMonths(t,e,n){let i=e.month()-t.month();return i+=(e.year()-t.year())*12,i>n}static nextAfterYears(t,e,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Ct.isSkippingTooManyYears(t,e,s);)e=Ct.fromOneDayEarlier(t,n);return e}static isSkippingTooManyYears(t,e,n){return e.year()-t.year()>n}static fromOneDayEarlier(t,e){t.subtract(1,"days").endOf("day");let n=e.origOptions;return n.dtstart=t.startOf("day").toDate(),e=new oe(n),window.moment.utc(e.after(t.toDate()))}static addTimezone(t){return window.moment.utc(t).set({hour:12,minute:0,second:0,millisecond:0}).local(!0).startOf("day")}}});function AS(r,t,e){let n=new Map([["cancelled date","cancelledDate"],["created date","createdDate"],["depends on","dependsOn"],["done date","doneDate"],["due date","dueDate"],["id","id"],["on completion","onCompletion"],["priority","priority"],["recurrence rule","recurrenceRule"],["scheduled date","scheduledDate"],["start date","startDate"]]);for(let[i,s]of n.entries())if(t.startsWith(i))return r.setVisibility(s,e),!0;return t.startsWith("tags")?(r.setTagsVisibility(e),!0):!1}var Pl,Rc,Wr,Es=Q(()=>{"use strict";Pl=(p=>(p.Description="description",p.Id="id",p.DependsOn="dependsOn",p.Priority="priority",p.RecurrenceRule="recurrenceRule",p.OnCompletion="onCompletion",p.CreatedDate="createdDate",p.StartDate="startDate",p.ScheduledDate="scheduledDate",p.DueDate="dueDate",p.CancelledDate="cancelledDate",p.DoneDate="doneDate",p.BlockLink="blockLink",p))(Pl||{}),Rc=Object.values(Pl),Wr=class{constructor(){this.visible={};this.tagsVisible=!0;Rc.forEach(t=>{this.visible[t]=!0})}isShown(t){return this.visible[t]}areTagsShown(){return this.tagsVisible}hide(t){this.visible[t]=!1}setVisibility(t,e){this.visible[t]=e}setTagsVisibility(t){this.tagsVisible=t}get shownComponents()
|
||
|
|
`})),c=c.slice(0,a.autoSuggestMaxItems),c}}function oU(r,t,e){let n=TU(t.substring(0,e),[["(",")"],["[","]"]])=="("?")":"]",i=r?n+" ":" ",s=r&&t.length>e&&t.charAt(e)===n?1:0;return{postfix:i,insertSkip:s}}function lU(r,t,e){let n=[],i=e.line;Cs(n,i,r.dueDateSymbol,"due date"),Cs(n,i,r.startDateSymbol,"start date"),Cs(n,i,r.scheduledDateSymbol,"scheduled date"),uU(n,r,e),Cs(n,i,r.recurrenceSymbol,"recurring (repeat)"),cU(n,r,e),qS(t)&&(Cs(n,i,r.idSymbol,"id"),Cs(n,i,r.dependsOnSymbol,"depends on id")),Cs(n,i,r.onCompletionSymbol,"on completion");let s=dU(n,e);return s.length===0&&e.settings.autoSuggestMinMatch===0?n:s}function Cs(r,t,e,n){t.includes(e)||r.push({displayText:`${e} ${n}`,appendText:`${e} `})}function uU(r,t,e){if(!(i=>Object.values(t.prioritySymbols).some(s=>s.length>0&&i.includes(s)))(e.line)){let i=t.prioritySymbols,s=["High","Medium","Low","Highest","Lowest"];for(let a of s){let o=i[a];r.push({displayText:e.dataviewMode?`${o} priority`:`${o} ${a.toLowerCase()} priority`,appendText:`${o}${e.postfix}`,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}}function cU(r,t,e){if(!e.line.includes(t.createdDateSymbol)){let i=An.parseDate("today",!0).format(ke.dateFormat);r.push({textToMatch:`${t.createdDateSymbol} created`,displayText:`${t.createdDateSymbol} created today (${i})`,appendText:`${t.createdDateSymbol} ${i}`+e.postfix,insertSkip:e.dataviewMode?e.insertSkip:void 0})}}function dU(r,t){let e=Ca(/([a-zA-Z'_-]*)/g,t),n=[];if(e&&e.length>0){let i=e[0];if(i.length>=Math.max(1,t.settings.autoSuggestMinMatch)){let s=r.filter(a=>{var l;return((l=a.textToMatch)!=null?l:a.displayText).toLowerCase().includes(i.toLowerCase())});for(let a of s){let o=t.dataviewMode&&(a.displayText.includes("priority")||a.displayText.includes("created"))?i.length+t.insertSkip:i.length;n.push({suggestionType:"match",displayText:a.displayText,appendText:a.appendText,insertAt:e.index,insertSkip:o})}}}return n}function WS(r,t){let e=`${t}`,n=`${r} ${t}`;return{displayText:e,appendText:n}}function fU(r,t){let n=`${An.parseDate(t,!0).format(ke.dateFormat)}`,i=`${t} (${n})`,s=`${r} ${n}`;return{displayText:i,appendText:s}}function pU(r,t,e){let n=["today","tomorrow","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","next week","next month","next year"],i=[],s=new RegExp(`(${r})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ca(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=o&&o.length>1?An.parseDate(hc(o),!0):null;if(l!=null&&l.isValid()){let c=l.format(ke.dateFormat);Fc(e,a,[c],WS,i)}let u=Bg(n,o,t,!0);Fc(e,a,u,fU,i)}return i}function mU(r,t){var a;let e=["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"],n=[],i=new RegExp(`(${r})\\s*([0-9a-zA-Z ]*)`,"ug"),s=Ca(i,t);if(s&&s.length>=2){let o=s[1],l=s[2];if(l.length<t.settings.autoSuggestMinMatch)return[];if(l.length>0){let f=(a=Ct.fromText({recurrenceRuleText:l,occurrence:new tr({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:a.toText();if(f){let p=`${o} ${f}`+t.postfix;if(n.push({suggestionType:"match",displayText:`\u2705 ${f}`,appendText:p,insertAt:s.index,insertSkip:Vg(s[0],t)}),s[0]==p)return[]}}let u=t.settings.autoSuggestMaxItems/2,c=Bg(e,l,u,!1);c.length===0&&l.trim().length===0&&(c=e.slice(0,u)),Fc(t,s,c,(f,p)=>{let g=`${p}`,b=`${f} ${p}`;return{displayText:g,appendText:b}},n)}return n}function hU(r,t,e){let n=["delete","keep"],i=[],s=new RegExp(`(${r})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Ca(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=Bg(n,o,t,!0);Fc(e,a,l,WS,i)}return i}function gU(r,t,e){let n=[],i=new RegExp(`(${r})\\s*(${Os.source})?`,"ug"),s=Ca(i,e);if(s&&s[0].trim().length<=r.length){let a=Fl(t.map(o=>o.id));n.push({suggestionType:"match",displayText:"generate unique id",appendText:`${r} ${a}`+e.postfix,insertAt:s.index,insertSkip:Vg(s[0],e)})}return n}function yU(r,t,e,n){let
|
||
|
|
`);n.length>1&&(t=n[0],e=!0);let i=50;return t.length>i&&(t=t.slice(0,i),e=!0),e&&(t+="..."),t}function BS(r,t){let e=`Cannot find preset "${r}" in the Tasks settings`;if(Object.keys(t).length===0)e+=`
|
||
|
|
You can define the instruction(s) for "${r}" in the Tasks settings.`;else{let i=Math.max(...Object.keys(t).map(a=>a.length));e+=`
|
||
|
|
The following presets are defined in the Tasks settings:
|
||
|
|
${Object.entries(t).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>`${a.padEnd(i)}: ${_U(o)}`).join(`
|
||
|
|
`)}`}return e}var GS,Xg=Q(()=>{"use strict";GS={this_file:"path includes {{query.file.path}}",this_folder:"folder includes {{query.file.folder}}",this_folder_only:"filter by function task.file.folder === query.file.folder",this_root:"root includes {{query.file.root}}",hide_date_fields:`# Hide any values for all date fields
|
||
|
|
hide due date
|
||
|
|
hide scheduled date
|
||
|
|
hide start date
|
||
|
|
hide created date
|
||
|
|
hide done date
|
||
|
|
hide cancelled date`,hide_non_date_fields:`# Hide all the non-date fields, but not tags
|
||
|
|
hide id
|
||
|
|
hide depends on
|
||
|
|
hide recurrence rule
|
||
|
|
hide on completion
|
||
|
|
hide priority`,hide_query_elements:`# Hide toolbar, postpone, edit and backlinks
|
||
|
|
hide toolbar
|
||
|
|
hide postpone button
|
||
|
|
hide edit button
|
||
|
|
hide backlinks`,hide_everything:`# Hide everything except description and any tags
|
||
|
|
preset hide_date_fields
|
||
|
|
preset hide_non_date_fields
|
||
|
|
preset hide_query_elements`}});var Uc,VS=Q(()=>{"use strict";Uc=class{constructor(t=!1,e=!1,n=!1){this.ignoreSortInstructions=t,this.showTaskHiddenData=e,this.recordTimings=n}}});var Ma,Yc=Q(()=>{"use strict";Ma={priority:!0,recurrence:!0,due:!0,scheduled:!0,start:!0,before_this:!0,after_this:!0,status:!0,created:!0,done:!0,cancelled:!0}});var it,Aa=Q(()=>{"use strict";_r();it=class{constructor(){this.coreStatuses=[Te.TODO.configuration,Te.DONE.configuration],this.customStatuses=[Te.IN_PROGRESS.configuration,Te.CANCELLED.configuration]}static addStatus(t,e){t.push(e)}static replaceStatus(t,e,n){let i=this.findStatusIndex(e,t);return i<=-1?!1:(t.splice(i,1,n),!0)}static findStatusIndex(t,e){let n=new Te(t);return e.findIndex(i=>new Te(i).previewText()==n.previewText())}static deleteStatus(t,e){let n=this.findStatusIndex(e,t);return n<=-1?!1:(t.splice(n,1),!0)}static deleteAllCustomStatuses(t){t.customStatuses.splice(0)}static resetAllCustomStatuses(t){it.deleteAllCustomStatuses(t),new it().customStatuses.forEach(n=>{it.addStatus(t.customStatuses,n)})}static bulkAddStatusCollection(t,e){let n=[];return e.forEach(i=>{t.customStatuses.find(a=>a.symbol==i[0]&&a.name==i[1]&&a.nextStatusSymbol==i[2])?n.push(`The status ${i[1]} (${i[0]}) is already added.`):it.addStatus(t.customStatuses,Te.createFromImportedValue(i))}),n}static allStatuses(t){return t.coreStatuses.concat(t.customStatuses)}static applyToStatusRegistry(t,e){e.clearStatuses(),it.allStatuses(t).forEach(n=>{e.add(n)})}}});var KS,zS=Q(()=>{KS=[{index:9999,internalName:"INTERNAL_TESTING_ENABLED_BY_DEFAULT",displayName:"Test Item. Used to validate the Feature Framework.",description:"Description",enabledByDefault:!0,stable:!1}]});var bi,QS=Q(()=>{"use strict";zS();bi=class{constructor(t,e,n,i,s,a){this.internalName=t;this.index=e;this.description=n;this.displayName=i;this.enabledByDefault=s;this.stable=a}static get values(){let t=[];return KS.forEach(e=>{t=[...t,new bi(e.internalName,e.index,e.description,e.displayName,e.enabledByDefault,e.stable)]}),t}static get settingsFlags(){let t={};return bi.values.forEach(e=>{t[e.internalName]=e.enabledByDefault}),t}static fromString(t){for(let e of bi.values)if(t===e.internalName)return e;throw new RangeError(`Illegal argument passed to fromString(): ${t} does not correspond to any available Feature ${this.prototype.constructor.name}`)}}});function Zg(r,t){for(let e in r)t[e]===void 0&&(t[e]=r[e])}function Yl(){return Un[te().taskFormat]}function SU(r){let t=U({},r);return"includes"in t&&!("presets"in t)&&(t.presets=t.includes,delete t.includes),t}var Un,Jg,Ti,te,st,Ms,XS,vt=Q(()=>{"use strict";zg();Il();Qg();In();_r();HS();Qg();Ni();Xg();VS();Yc();Aa();QS();Un={tasksPluginEmoji:{getDisplayName:()=>M.t("settings.format.displayName.tasksEmojiFormat"),taskSerializer:new xs(Nl),buildSuggestions:Gg(Nl,Hg,!1)},dataview:{getDisplayName:()=>M.t("settings.format.displayName.dataview"),taskSerializer:new Lc,buildSuggestions:$S(Gg(Kg,Hg,!0),[["(",")"],["[","]"]])}},Jg={presets:GS,globalQuery:"",globalFilter:"",removeGlobalFilter:!1,taskFormat:"tasksPluginEmoji",setCreatedDate:!1,setDoneDate:!0,setCancelledDate:!0,autoSuggestInEditor:!0,autoSuggestMinMatch:0,autoSuggestMaxItems:20,provideAccessKeys:!0,useFilenameAsScheduledDate:!1,filenameAsScheduledDateFormat:"",filenameAsDateFolders:[],recurrenceOnNextLine:!1,removeScheduledDateOnRecurrence:!1,statusSettings:new it,isShownInEditModal:Ma,features:bi.settingsFlags,generalSettings:{},headingOpened:{},debugSettings:new Uc,loggingOptions:{minLevels:{"":"info",tasks:"info","tasks.Cache":"info","tasks.Events":"info","tasks.File":"info","tasks.Query":"info","tasks.Task":"info"}}},Ti=U({},Jg);te=()=>(Zg(bi.settingsFlags,Ti.features),Zg(Jg.loggingOptions.minLevels,Ti.loggingOptions.minLevels),Zg(Jg.debugSettings,Ti.debugSettings),Ti.statusSettings.customStatuses.forEach((r,t,e)=>{var i,s;let n=Te.getTypeFromStatusTypeString(r.type);e[t]=new gt((i=r.symbol)!=null?i:" ",r.name,(s=r.nextStatusSymbol)!=null?s:"x",r.availableAsCommand,n)}),U({},Ti)),st=r=>{let t=SU(r);return Ti=U(U({},Ti),t),te()},Ms=
|
||
|
|
\`\`\`${n}
|
||
|
|
flowchart LR
|
||
|
|
|
||
|
|
classDef TODO stroke:#f33,stroke-width:3px;
|
||
|
|
classDef DONE stroke:#0c0,stroke-width:3px;
|
||
|
|
classDef IN_PROGRESS stroke:#fa0,stroke-width:3px;
|
||
|
|
classDef CANCELLED stroke:#ddd,stroke-width:3px;
|
||
|
|
classDef NON_TASK stroke:#99e,stroke-width:3px;
|
||
|
|
classDef ON_HOLD stroke:#00f,stroke-width:3px;
|
||
|
|
|
||
|
|
${i.join(`
|
||
|
|
`)}
|
||
|
|
${s.join(`
|
||
|
|
`)}
|
||
|
|
|
||
|
|
linkStyle default stroke:gray
|
||
|
|
\`\`\`
|
||
|
|
`}addEdgeIfNotToInternal(t,e,n,i,s){let a=t.findIndex(u=>u.symbol===e.symbol),o=a!==-1,l=e.type!=="EMPTY";if(o&&l){let u;s?u='-. "\u{1F501}" .-> ':u=" --> ";let c=`${i+1}${u}${a+1}`;n.push(c)}}getMermaidNodeLabel(t,e){let n=ZS(t.name),i=t.type;if(e){let s=qc(t.symbol),a=qc(t.nextStatusSymbol),o=`[${s}] -> [${a}]`,l=`'${n}'`,u=`(${i})`;return`["${l}<br>${o}<br>${u}"]:::${i}`}else return`["${n}"]:::${i}`}}});var jr,eD=Q(()=>{"use strict";jr=class{constructor(t,e){this.name=t,this.sortOrder=e}get groupText(){return this.name!==""?`%%${this.sortOrder}%% ${this.name}`:""}}});var tD,Yt,Wc=Q(()=>{"use strict";tD=require("obsidian");eD();ri();Yt=class{constructor(t){this._date=null;this._date=t}get moment(){return this._date?this._date.clone():null}formatAsDate(t=""){return this.format(ke.dateFormat,t)}formatAsDateAndTime(t=""){return this.format(ke.dateTimeFormat,t)}format(t,e=""){return this._date?this._date.format(t):e}toISOString(t){return this._date?this._date.toISOString(t):""}get category(){let t=window.moment(),e=this.moment;return e?e.isBefore(t,"day")?new jr("Overdue",1):e.isSame(t,"day")?new jr("Today",2):e.isValid()?new jr("Future",3):new jr("Invalid date",0):new jr("Undated",4)}get fromNow(){let t=this.moment;if(!t)return new jr("",0);let e=this.fromNowOrder(t);return new jr(t.fromNow(),e)}fromNowOrder(t){if(!t.isValid())return 0;let e=window.moment(),n=t.isSameOrBefore(e,"day"),i=this.fromNowStartDateOfGroup(t,n,e);return Number((n?1:3)+i.format("YYYYMMDD"))}fromNowStartDateOfGroup(t,e,n){let i=t.fromNow(!0).split(" "),s,a=Number(i[0]);isNaN(a)?s=1:s=a;let o=i[1];return e?n.subtract(s,o):n.add(s,o)}postpone(t="days",e=1){if(!this._date)throw new tD.Notice("Cannot postpone a null date");let n=window.moment().startOf("day");return this._date.isSameOrAfter(n,"day")?this._date.clone().add(e,t):n.add(e,t)}}});var iD=C((nD,rD)=>{(function(r){var t=Object.hasOwnProperty,e=Array.isArray?Array.isArray:function(T){return Object.prototype.toString.call(T)==="[object Array]"},n=10,i=typeof process=="object"&&typeof process.nextTick=="function",s=typeof Symbol=="function",a=typeof Reflect=="object",o=typeof setImmediate=="function",l=o?setImmediate:setTimeout,u=s?a&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(m){var T=Object.getOwnPropertyNames(m);return T.push.apply(T,Object.getOwnPropertySymbols(m)),T}:Object.keys;function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(m){m&&(this._conf=m,m.delimiter&&(this.delimiter=m.delimiter),m.maxListeners!==r&&(this._maxListeners=m.maxListeners),m.wildcard&&(this.wildcard=m.wildcard),m.newListener&&(this._newListener=m.newListener),m.removeListener&&(this._removeListener=m.removeListener),m.verboseMemoryLeak&&(this.verboseMemoryLeak=m.verboseMemoryLeak),m.ignoreErrors&&(this.ignoreErrors=m.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function f(m,T){var _="(node) warning: possible EventEmitter memory leak detected. "+m+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(_+=" Event name: "+T+"."),typeof process!="undefined"&&process.emitWarning){var k=new Error(_);k.name="MaxListenersExceededWarning",k.emitter=this,k.count=m,process.emitWarning(k)}else console.error(_),console.trace&&console.trace()}var p=function(m,T,_){var k=arguments.length;switch(k){case 0:return[];case 1:return[m];case 2:return[m,T];case 3:return[m,T,_];default:for(var w=new Array(k);k--;)w[k]=arguments[k];return w}};function g(m,T){for(var _={},k,w=m.length,R=T?T.length:0,N=0;N<w;N++)k=m[N],_[k]=N<R?T[N]:r;return _}function b(m,T,_){this._emitter=m,this._target=T,this._listeners={},this._listenersCount=0;var k,w;if((_.on||_.off)&&(k=_.on,w=_.off),T.addEventListener?(k=T.addEventListener,w=T.removeEventListener):T.addListener?(k=T.addListener,w=T.removeListener):T.on&&(k=T.on,w=T.off),!k&&!w)throw Error("target does not implement any known event API");if(typeof k!="function")throw TypeError("on method must be a function");if(typeof w!="function")throw TypeError("off method must be a function");this._on=k,this._off=w;var R=m._ob
|
||
|
|
`),this.dateFromFileName=new Pa(()=>qt.fromPath(this.filePath))}parseFileContent(){if(this.listItems===void 0)return this.tasks;let t=new bt(this.filePath,this.fileCache),e=this.fileLines.length,n=null,i=0;for(let s of this.listItems){let a=s.position.start.line;if(a>=e)return this.logger.debug(`${this.filePath} Obsidian gave us a line number ${a} past the end of the file. ${e}.`),this.tasks;if((n===null||n.position.end.line<a)&&(n=Ns.getSection(a,this.fileCache.sections),i=0),n===null)continue;let o=this.fileLines[a];if(o===void 0){this.logger.debug(`${this.filePath}: line ${a} - ignoring 'undefined' line.`);continue}let l=new Wt(t,a,n.position.start.line,i,Ns.getPrecedingHeader(a,this.fileCache.headings));i=this.parseLine(s,o,l,a,i)}return this.tasks}parseLine(t,e,n,i,s){var o;if(t.task===void 0)return this.createListItem(t,e,i,n),s;let a;try{if(a=me.fromLine({line:e,taskLocation:n,fallbackDate:this.dateFromFileName.value}),a!==null){let l=(o=this.line2ListItem.get(t.parent))!=null?o:null;l!==null&&(a=new me(pe(U({},a),{parent:l}))),this.line2ListItem.set(i,a),a!==null&&(s++,this.tasks.push(a))}else this.createListItem(t,e,i,n)}catch(l){this.errorReporter(l,this.filePath,t,e)}return s}createListItem(t,e,n,i){var o;let s=(o=this.line2ListItem.get(t.parent))!=null?o:null,a=sr.fromListItemLine(e,s,i);if(a===null){this.logger.warn("Unexpected failure to create a list item from line: "+e+" in file: "+this.filePath);return}this.line2ListItem.set(n,a)}};var Ns=class{constructor({metadataCache:t,vault:e,workspace:n,events:i}){this.logger=cn.getLogger("tasks.Cache");this.notifySubscribersDebounced=(0,lD.debounce)(()=>this.notifySubscribersNotDebounced(),100,!0);this.logger.debug("Creating Cache object"),this.metadataCache=t,this.metadataCacheEventReferences=[],this.vault=e,this.workspace=n,this.vaultEventReferences=[],this.events=i,this.eventsEventReferences=[],this.tasksMutex=new ku,this.state="Cold",this.logger.debug("Cache.constructor(): state = Cold"),this.tasks=[],this.loadedAfterFirstResolve=!1,this.subscribeToCache(),this.workspace.onLayoutReady(()=>{this.subscribeToVault(),this.loadVault()}),this.subscribeToEvents()}unload(){this.logger.info("Unloading Cache");for(let t of this.metadataCacheEventReferences)this.metadataCache.offref(t);for(let t of this.vaultEventReferences)this.vault.offref(t);for(let t of this.eventsEventReferences)this.events.off(t)}getTasks(){return this.tasks}getState(){return this.state}notifySubscribers(){this.logger.debug("Cache.notifySubscribers()"),this.notifySubscribersDebounced()}notifySubscribersNotDebounced(){this.logger.debug("Cache.notifySubscribersNotDebounced()"),this.events.triggerCacheUpdate({tasks:this.tasks,state:this.state})}subscribeToCache(){this.logger.debug("Cache.subscribeToCache()");let t=this.metadataCache.on("resolved",()=>A(this,null,function*(){this.loadedAfterFirstResolve||(this.loadedAfterFirstResolve=!0,this.loadVault())}));this.metadataCacheEventReferences.push(t);let e=this.metadataCache.on("changed",n=>{this.tasksMutex.runExclusive(()=>{this.indexFile(n)})});this.metadataCacheEventReferences.push(e)}subscribeToVault(){this.logger.debug("Cache.subscribeToVault()");let{useFilenameAsScheduledDate:t}=te(),e=this.vault.on("create",s=>{s instanceof Na.TFile&&(this.logger.debug(`Cache.subscribeToVault.createdEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{this.indexFile(s)}))});this.vaultEventReferences.push(e);let n=this.vault.on("delete",s=>{s instanceof Na.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 Na.TFile&&(this.logger.debug(`Cache.subscribeToVault.renamedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{let o=this.metadataCache.getFileCache(s),l=new bt(s.path,o!=null?o:void 0),u=new Pa(()=>qt.fromPath(s.path));this.tasks=this.tasks.map(c=>{if(c.path!==a)return c;let d=c.taskLocation.fromRenamedFile(l);r
|
||
|
|
The following task has been ignored, to prevent Tasks queries getting stuck with 'Loading Tasks ...'
|
||
|
|
Error: ${t}
|
||
|
|
File: ${e}
|
||
|
|
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),t instanceof Error&&this.logger.error(t.stack?t.stack:"Cannot determine stack"),this.state==="Initializing"&&new Na.Notice(s,1e4)}static getSection(t,e){if(e===void 0)return null;for(let n of e)if(n.position.start.line<=t&&n.position.end.line>=t)return n;return null}static getPrecedingHeader(t,e){if(e===void 0)return null;let n=null;for(let i of e){if(i.position.start.line>t)return n;n=i.heading}return n}};var Cy=require("obsidian");var ME=require("obsidian"),AE=require("obsidian");function We(){}function oy(r){return r()}function uD(){return Object.create(null)}function kt(r){r.forEach(oy)}function Vi(r){return typeof r=="function"}function Qt(r,t){return r!=r?t==t:r!==t||r&&typeof r=="object"||typeof r=="function"}function cD(r){return Object.keys(r).length===0}function dD(r,...t){if(r==null)return We;let e=r.subscribe(...t);return e.unsubscribe?()=>e.unsubscribe():e}function zc(r,t,e){r.$$.on_destroy.push(dD(t,e))}var fD=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global,Wl=class{constructor(t){this.options=t,this._listeners="WeakMap"in fD?new WeakMap:void 0}observe(t,e){return this._listeners.set(t,e),this._getObserver().observe(t,this.options),()=>{this._listeners.delete(t),this._observer.unobserve(t)}}_getObserver(){var t;return(t=this._observer)!==null&&t!==void 0?t:this._observer=new ResizeObserver(e=>{var n;for(let i of e)Wl.entries.set(i.target,i),(n=this._listeners.get(i.target))===null||n===void 0||n(i)})}};Wl.entries="WeakMap"in fD?new WeakMap:void 0;var pD=!1;function OU(){pD=!0}function xU(){pD=!1}function B(r,t){r.appendChild(t)}function ce(r,t,e){r.insertBefore(t,e||null)}function le(r){r.parentNode&&r.parentNode.removeChild(r)}function ki(r,t){for(let e=0;e<r.length;e+=1)r[e]&&r[e].d(t)}function re(r){return document.createElement(r)}function RU(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function $e(r){return document.createTextNode(r)}function he(){return $e(" ")}function Hr(){return $e("")}function Fe(r,t,e,n){return r.addEventListener(t,e,n),()=>r.removeEventListener(t,e,n)}function mD(r){return function(t){return t.preventDefault(),r.call(this,t)}}function W(r,t,e){e==null?r.removeAttribute(t):r.getAttribute(t)!==e&&r.setAttribute(t,e)}function hD(r){let t;return{p(...e){t=e,t.forEach(n=>r.push(n))},r(){t.forEach(e=>r.splice(r.indexOf(e),1))}}}function CU(r){return Array.from(r.childNodes)}function yn(r,t){t=""+t,r.data!==t&&(r.data=t)}function bn(r,t){r.value=t==null?"":t}function ly(r,t,e){for(let n=0;n<r.options.length;n+=1){let i=r.options[n];if(i.__value===t){i.selected=!0;return}}(!e||t!==void 0)&&(r.selectedIndex=-1)}function gD(r){let t=r.querySelector(":checked");return t&&t.__value}var Bc;function MU(){if(Bc===void 0){Bc=!1;try{typeof window!="undefined"&&window.parent&&window.parent.document}catch(r){Bc=!0}}return Bc}function yD(r,t){getComputedStyle(r).position==="static"&&(r.style.position="relative");let n=re("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=MU(),s;return i?(n.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",s=Fe(window,"message",a=>{a.source===n.contentWindow&&t()})):(n.src="about:blank",n.onload=()=>{s=Fe(n.contentWindow,"resize",t),t()}),B(r,n),()=>{(i||s&&n.contentWindow)&&s(),le(n)}}function _i(r,t,e){r.classList[e?"add":"remove"](t)}var Ua=class{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,e,n=null){this.e||(this.is_svg?this.e=RU(e.nodeName):this.e=re(e.nodeType===11?"TEMPLATE":e.nodeName),this.t=e.tagName!=="TEMPLATE"?e:e.content,this.c(t)),this.i(n)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(t){for(let e=0;e<this.n.length;e+=1)ce(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(le)}};var $l;function ql(r){$l=r
|
||
|
|
|
||
|
|
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.
|
||
|
|
`;nd(c);return}let u=Math.min(Math.pow(10,s),100);o.debug(`timeout = ${u}`),setTimeout(()=>A(void 0,null,function*(){yield eE({originalTask:r,newTasks:t,vault:e,metadataCache:n,workspace:i,previousTries:s+1})}),u)});try{let[u,c,d]=yield tE(r,e),f=[...d.slice(0,u),...t.map(p=>p.toFileLineString()),...d.slice(u+1)];yield e.modify(c,f.join(`
|
||
|
|
`))}catch(u){if(u instanceof Ki){u.message&&JD(u.message),yield l();return}else if(u instanceof rd){yield l();return}else u instanceof Error&&nd(u.message)}});function tE(r,t){return A(this,null,function*(){if(zl===void 0)throw new Ki;let e=t.getAbstractFileByPath(r.path);if(!(e instanceof Kl.TFile))throw new Ki(`Tasks: No file found for task ${r.description}. Retrying ...`);if(!fY.includes(e.extension))throw new Error(`Tasks: Does not support files with the ${e.extension} file extension.`);let n=zl.getFileCache(e);if(n==null||n===null)throw new Ki(`Tasks: No file cache found for file ${e.path}. Retrying ...`);let i=n.listItems;if(i===void 0||i.length===0)throw new Ki(`Tasks: No list items found in file cache of ${e.path}. Retrying ...`);let a=(yield t.read(e)).split(`
|
||
|
|
`),o=mY(r,a,i,pY);if(o===void 0)throw new rd;return[o,e,a]})}function Sy(r,t){return A(this,null,function*(){try{let[e,n,i]=yield tE(r,t);return[e,n]}catch(e){e instanceof Ki?e.message&&JD(e.message):e instanceof Error&&nd(e.message)}})}function nE(r,t){return r<t.length}function mY(r,t,e,n){let i=hY(r,t);return i!==void 0||(i=gY(r,t),i!==void 0)?i:yY(r,t,e,n)}function hY(r,t){let e=r.taskLocation.lineNumber;if(nE(e,t)&&t[e]===r.originalMarkdown)return id().debug(`Found original markdown at original line number ${e}`),e}function gY(r,t){let e=[];for(let n=0;n<t.length;n++)t[n]===r.originalMarkdown&&e.push(n);if(e.length===1)return e[0]}function yY(r,t,e,n){let i,s=0;for(let a of e){let o=a.position.start.line;if(!nE(o,t))return;if(o<r.taskLocation.sectionStart||a.task===void 0)continue;let l=t[o];if(Ce.getInstance().includedIn(l)){if(s===r.taskLocation.sectionIndex){if(l===r.originalMarkdown)i=o;else{n(`Tasks: Unable to find task in file ${r.taskLocation.path}.
|
||
|
|
Expected task:
|
||
|
|
${r.originalMarkdown}
|
||
|
|
Found task:
|
||
|
|
${l}`);return}break}s++}}return i}gc();Ea();xc();Ut();Nc();In();var Ga=class{constructor(t){this.addGlobalFilterOnSave=t.addGlobalFilterOnSave,this.originalBlocking=t.originalBlocking,this.description=t.description,this.status=t.status,this.priority=t.priority,this.onCompletion=t.onCompletion,this.recurrenceRule=t.recurrenceRule,this.createdDate=t.createdDate,this.startDate=t.startDate,this.scheduledDate=t.scheduledDate,this.dueDate=t.dueDate,this.doneDate=t.doneDate,this.cancelledDate=t.cancelledDate,this.forwardOnly=t.forwardOnly,this.blockedBy=t.blockedBy,this.blocking=t.blocking}static fromTask(t,e){let n=Ce.getInstance().removeAsWordFrom(t.description),i=n!=t.description||!Ce.getInstance().includedIn(t.description),s="none";t.priority==="5"?s="lowest":t.priority==="4"?s="low":t.priority==="2"?s="medium":t.priority==="1"?s="high":t.priority==="0"&&(s="highest");let a=[];for(let l of t.dependsOn){let u=e.find(c=>c.id===l);!u||a.push(u)}let o=e.filter(l=>l.dependsOn.includes(t.id));return new Ga({addGlobalFilterOnSave:i,originalBlocking:o,description:n,status:t.status,priority:s,recurrenceRule:t.recurrence?t.recurrence.toText():"",onCompletion:t.onCompletion,createdDate:t.created.formatAsDate(),startDate:t.start.formatAsDate(),scheduledDate:t.scheduled.formatAsDate(),dueDate:t.due.formatAsDate(),doneDate:t.done.formatAsDate(),cancelledDate:t.cancelled.formatAsDate(),forwardOnly:!0,blockedBy:a,blocking:o})}applyEdits(t,e){return A(this,null,function*(){let n=this.description.trim();this.addGlobalFilterOnSave&&(n=Ce.getInstance().prependTo(n));let i=Ts(this.startDate,this.forwardOnly),s=Ts(this.scheduledDate,this.forwardOnly),a=Ts(this.dueDate,this.forwardOnly),o=Ts(this.cancelledDate,this.forwardOnly),l=Ts(this.createdDate,this.forwardOnly),u=Ts(this.doneDate,this.forwardOnly),c=null;this.recurrenceRule&&(c=Ct.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new tr({startDate:i,scheduledDate:s,dueDate:a})}));let d=this.onCompletion,f=[];for(let x of this.blockedBy){let O=yield bY(x,e);f.push(O)}let p=t.id,g=[],b=[];(this.blocking.toString()!==this.originalBlocking.toString()||this.blocking.length!==0)&&(t.id===""&&(p=Fl(e.filter(x=>x.id!=="").map(x=>x.id))),g=this.originalBlocking.filter(x=>!this.blocking.includes(x)),b=this.blocking.filter(x=>!this.originalBlocking.includes(x)));let v=new me(pe(U({},t),{description:n,status:t.status,priority:Fn.priorityValue(this.priority),onCompletion:d,recurrence:c,startDate:i,scheduledDate:s,dueDate:a,doneDate:u,createdDate:l,cancelledDate:o,dependsOn:f.map(x=>x.id),id:p}));for(let x of g){let O=LS(x,v);yield $n({originalTask:x,newTasks:O})}for(let x of b){let O=FS(x,v);yield $n({originalTask:x,newTasks:O})}let E=this.inferTodaysDate(this.status.type,u,o);return v.handleNewStatusWithRecurrenceInUsersOrder(this.status,E)})}inferTodaysDate(t,e,n){return t==="DONE"&&e!==null?e:t==="CANCELLED"&&n!==null?n:window.moment()}parseAndValidateRecurrence(){var e;if(!this.recurrenceRule)return{parsedRecurrence:"<i>not recurring</>",isRecurrenceValid:!0};let t=(e=Ct.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new tr({startDate:null,scheduledDate:null,dueDate:null})}))==null?void 0:e.toText();return t?this.startDate||this.scheduledDate||this.dueDate?{parsedRecurrence:t,isRecurrenceValid:!0}:{parsedRecurrence:"<i>due, scheduled or start date required</i>",isRecurrenceValid:!1}:{parsedRecurrence:"<i>invalid recurrence rule</i>",isRecurrenceValid:!1}}};function bY(r,t){return A(this,null,function*(){if(r.id!=="")return r;let e=t.filter(i=>i.id!==""),n=Pc(r,e.map(i=>i.id));return yield $n({originalTask:r,newTasks:n}),n})}vt();function rE(r,t,e){let n=r.slice();return n[7]=t[e].value,n[8]=t[e].label,n[9]=t[e].symbol,n[10]=t[e].accessKey,n[11]=t[e].accessKeyIndex,n}function TY(r){let t,e=r[8]+"",n;return{c(){t=re("span"),n=$e(e)},m(i,s){ce(i,t,s),B(t,n)},p:We,d(i){i&&le(t)}}}function vY(r){let t,e=r[8].substring(0,r[11])+"",n,i,s=r[8].substring(r[11],r[11]+1)+"",a,o,l=r[8].substring(r[11]+1)+"",u;return{c(){t=re("span"),n=$e(e),i=re("span"),a=$e(s),o=re("span"),u=$e(l),W(i,"
|
||
|
|
`);t.setLine(l,b)};new Br({app:n,task:c,onSaveSettings:s,onSubmit:d,allTasks:i}).open()};var My=require("obsidian");$r();Ut();ri();var NE=(r,t,e)=>{var c;if(r)return e instanceof My.MarkdownView;if(!(e instanceof My.MarkdownView))return;let n=(c=e.file)==null?void 0:c.path;if(n===void 0)return;let i=t.getCursor(),s=i.line,a=t.getLine(s),o=Ay(a,n),l=o.text.length>0,u=s>=t.lineCount()-1;if(l||u)t.setLine(s,o.text);else{let d={line:s,ch:0},f={line:s+1,ch:0};t.replaceRange("",d,f)}t.setCursor(FY(i,o))},Ay=(r,t)=>{let e=me.fromLine({line:r,taskLocation:Wt.fromUnknownPosition(new bt(t)),fallbackDate:null});if(e!==null){let n=e.toggleWithRecurrenceInUsersOrder().map(s=>s.toFileLineString()),i=n.length>0?n.length-1:0;return{text:n.join(`
|
||
|
|
`),moveTo:{line:i}}}else{let n=r.match(ke.taskRegex);if(n!==null){let i=n[3],a=Ge.getInstance().bySymbol(i).nextStatusSymbol;return{text:r.replace(ke.taskRegex,`$1$2 [${a}] $4`)}}else if(ke.listItemRegex.test(r)){let i=r.replace(ke.listItemRegex,"$1$2 [ ]");return{text:i,moveTo:{ch:i.length}}}else{let i=r.replace(ke.indentationRegex,"$1- [ ] ");return{text:i,moveTo:{ch:i.length}}}}},FY=(r,t)=>{var s;let e={line:0,ch:r.ch},n=U(U({},e),(s=t.moveTo)!=null?s:{}),i=t.text.split(`
|
||
|
|
`)[n.line].length;return{line:r.line+n.line,ch:Math.min(n.ch,i)}};var tb=require("obsidian");vt();var Qi=class{constructor(){this.hideToolbar=!1;this.hidePostponeButton=!1;this.hideTaskCount=!1;this.hideBacklinks=!1;this.hideEditButton=!1;this.hideUrgency=!0;this.hideTree=!0;this.shortMode=!1;this.explainQuery=!1}};function IE(r,t,e){let n=new Map([["backlink","hideBacklinks"],["edit button","hideEditButton"],["postpone button","hidePostponeButton"],["task count","hideTaskCount"],["toolbar","hideToolbar"],["tree","hideTree"],["urgency","hideUrgency"]]);for(let[i,s]of n.entries())if(t.startsWith(i))return r[s]=e,!0;return!1}Es();function js(r,t){let e=`Error: ${r}.
|
||
|
|
The error message was:
|
||
|
|
`,n="";return t instanceof Error?n+=t:n+="Unknown error",`${e}"${n}"`}As();var LY=Object.prototype.toString,za=Array.isArray||function(t){return LY.call(t)==="[object Array]"};function Ny(r){return typeof r=="function"}function UY(r){return za(r)?"array":typeof r}function Py(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function FE(r,t){return r!=null&&typeof r=="object"&&t in r}function YY(r,t){return r!=null&&typeof r!="object"&&r.hasOwnProperty&&r.hasOwnProperty(t)}var qY=RegExp.prototype.test;function WY(r,t){return qY.call(r,t)}var $Y=/\S/;function jY(r){return!WY($Y,r)}var HY={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function GY(r){return String(r).replace(/[&<>"'`=\/]/g,function(e){return HY[e]})}var BY=/\s*/,VY=/\s+/,LE=/\s*=/,zY=/\s*\}/,KY=/#|\^|\/|>|\{|&|=|!/;function QY(r,t){if(!r)return[];var e=!1,n=[],i=[],s=[],a=!1,o=!1,l="",u=0;function c(){if(a&&!o)for(;s.length;)delete i[s.pop()];else s=[];a=!1,o=!1}var d,f,p;function g(J){if(typeof J=="string"&&(J=J.split(VY,2)),!za(J)||J.length!==2)throw new Error("Invalid tags: "+J);d=new RegExp(Py(J[0])+"\\s*"),f=new RegExp("\\s*"+Py(J[1])),p=new RegExp("\\s*"+Py("}"+J[1]))}g(t||ur.tags);for(var b=new Xl(r),v,E,x,O,q,V;!b.eos();){if(v=b.pos,x=b.scanUntil(d),x)for(var Z=0,j=x.length;Z<j;++Z)O=x.charAt(Z),jY(O)?(s.push(i.length),l+=O):(o=!0,e=!0,l+=" "),i.push(["text",O,v,v+1]),v+=1,O===`
|
||
|
|
`&&(c(),l="",u=0,e=!1);if(!b.scan(d))break;if(a=!0,E=b.scan(KY)||"name",b.scan(BY),E==="="?(x=b.scanUntil(LE),b.scan(LE),b.scanUntil(f)):E==="{"?(x=b.scanUntil(p),b.scan(zY),b.scanUntil(f),E="&"):x=b.scanUntil(f),!b.scan(f))throw new Error("Unclosed tag at "+b.pos);if(E==">"?q=[E,x,v,b.pos,l,u,e]:q=[E,x,v,b.pos],u++,i.push(q),E==="#"||E==="^")n.push(q);else if(E==="/"){if(V=n.pop(),!V)throw new Error('Unopened section "'+x+'" at '+v);if(V[1]!==x)throw new Error('Unclosed section "'+V[1]+'" at '+v)}else E==="name"||E==="{"||E==="&"?o=!0:E==="="&&g(x)}if(c(),V=n.pop(),V)throw new Error('Unclosed section "'+V[1]+'" at '+b.pos);return ZY(XY(i))}function XY(r){for(var t=[],e,n,i=0,s=r.length;i<s;++i)e=r[i],e&&(e[0]==="text"&&n&&n[0]==="text"?(n[1]+=e[1],n[3]=e[3]):(t.push(e),n=e));return t}function ZY(r){for(var t=[],e=t,n=[],i,s,a=0,o=r.length;a<o;++a)switch(i=r[a],i[0]){case"#":case"^":e.push(i),n.push(i),e=i[4]=[];break;case"/":s=n.pop(),s[5]=i[2],e=n.length>0?n[n.length-1][4]:t;break;default:e.push(i)}return t}function Xl(r){this.string=r,this.tail=r,this.pos=0}Xl.prototype.eos=function(){return this.tail===""};Xl.prototype.scan=function(t){var e=this.tail.match(t);if(!e||e.index!==0)return"";var n=e[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};Xl.prototype.scanUntil=function(t){var e=this.tail.search(t),n;switch(e){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,e),this.tail=this.tail.substring(e)}return this.pos+=n.length,n};function Va(r,t){this.view=r,this.cache={".":this.view},this.parent=t}Va.prototype.push=function(t){return new Va(t,this)};Va.prototype.lookup=function(t){var e=this.cache,n;if(e.hasOwnProperty(t))n=e[t];else{for(var i=this,s,a,o,l=!1;i;){if(t.indexOf(".")>0)for(s=i.view,a=t.split("."),o=0;s!=null&&o<a.length;)o===a.length-1&&(l=FE(s,a[o])||YY(s,a[o])),s=s[a[o++]];else s=i.view[t],l=FE(i.view,t);if(l){n=s;break}i=i.parent}e[t]=n}return Ny(n)&&(n=n.call(this.view)),n};function dn(){this.templateCache={_cache:{},set:function(t,e){this._cache[t]=e},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}dn.prototype.clearCache=function(){typeof this.templateCache!="undefined"&&this.templateCache.clear()};dn.prototype.parse=function(t,e){var n=this.templateCache,i=t+":"+(e||ur.tags).join(":"),s=typeof n!="undefined",a=s?n.get(i):void 0;return a==null&&(a=QY(t,e),s&&n.set(i,a)),a};dn.prototype.render=function(t,e,n,i){var s=this.getConfigTags(i),a=this.parse(t,s),o=e instanceof Va?e:new Va(e,void 0);return this.renderTokens(a,o,n,t,i)};dn.prototype.renderTokens=function(t,e,n,i,s){for(var a="",o,l,u,c=0,d=t.length;c<d;++c)u=void 0,o=t[c],l=o[0],l==="#"?u=this.renderSection(o,e,n,i,s):l==="^"?u=this.renderInverted(o,e,n,i,s):l===">"?u=this.renderPartial(o,e,n,s):l==="&"?u=this.unescapedValue(o,e):l==="name"?u=this.escapedValue(o,e,s):l==="text"&&(u=this.rawValue(o)),u!==void 0&&(a+=u);return a};dn.prototype.renderSection=function(t,e,n,i,s){var a=this,o="",l=e.lookup(t[1]);function u(f){return a.render(f,e,n,s)}if(!!l){if(za(l))for(var c=0,d=l.length;c<d;++c)o+=this.renderTokens(t[4],e.push(l[c]),n,i,s);else if(typeof l=="object"||typeof l=="string"||typeof l=="number")o+=this.renderTokens(t[4],e.push(l),n,i,s);else if(Ny(l)){if(typeof i!="string")throw new Error("Cannot use higher-order sections without the original template");l=l.call(e.view,i.slice(t[3],t[5]),u),l!=null&&(o+=l)}else o+=this.renderTokens(t[4],e,n,i,s);return o}};dn.prototype.renderInverted=function(t,e,n,i,s){var a=e.lookup(t[1]);if(!a||za(a)&&a.length===0)return this.renderTokens(t[4],e,n,i,s)};dn.prototype.indentPartial=function(t,e,n){for(var i=e.replace(/[^ \t]/g,""),s=t.split(`
|
||
|
|
`),a=0;a<s.length;a++)s[a].length&&(a>0||!n)&&(s[a]=i+s[a]);return s.join(`
|
||
|
|
`)};dn.prototype.renderPartial=function(t,e,n,i){if(!!n){var s=this.getConfigTags(i),a=Ny(n)?n(t[1]):n[t[1]];if(a!=null){var o=t[6],l=t[5],u=t[4],c=a;l==0&&u&&(c=this.indentPartial(a,u,o));var d=this.parse(c,s);return this.renderTokens(d,e,n,c,i)}}};dn.prototype.unescapedValue=function(t,e){var n=e.lookup(t[1]);if(n!=null)return n};dn.prototype.escapedValue=function(t,e,n){var i=this.getConfigEscape(n)||ur.escape,s=e.lookup(t[1]);if(s!=null)return typeof s=="number"&&i===ur.escape?String(s):i(s)};dn.prototype.rawValue=function(t){return t[1]};dn.prototype.getConfigTags=function(t){return za(t)?t:t&&typeof t=="object"?t.tags:void 0};dn.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!za(t))return t.escape};var ur={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){Ql.templateCache=r},get templateCache(){return Ql.templateCache}},Ql=new dn;ur.clearCache=function(){return Ql.clearCache()};ur.parse=function(t,e){return Ql.parse(t,e)};ur.render=function(t,e,n,i){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+UY(t)+'" was given as the first argument for mustache#render(template, view, partials)');return Ql.render(t,e,n,i)};ur.escape=GY;ur.Scanner=Xl;ur.Context=Va;ur.Writer=dn;var Iy=ur;var $E=ko(WE());var Vr=class{constructor(t){this.instruction=t}get queryComponent(){return this._queryComponent}set queryComponent(t){this._queryComponent=t}get error(){return this._error}set error(t){this._error=t}isValid(){return this._queryComponent!==void 0}static fromObject(t,e){let n=new Vr(t);return n._queryComponent=e,n}static fromError(t,e){let n=new Vr(t);return n._error=e,n}};var Zl=class extends Vr{};function Jl(r,t){try{let e=r.map(([s])=>s),n=t.includes("return")?t:`return ${t}`,i=t&&new Function(...e,n);return i instanceof Function?Zl.fromObject(t,i):Zl.fromError(t,`Problem parsing expression "${t}"`)}catch(e){return Zl.fromError(t,js(`Failed parsing expression "${t}"`,e))}}function eu(r,t){let e=t.map(([n,i])=>i);return r(...e)}function Ly(r,t,e){try{return eu(r,t)}catch(n){return js(`Failed calculating expression "${e}"`,n)}}function Uy(r,t){Iy.escape=function(e){return e};try{let e=eq(r,t);return Iy.render(e,(0,$E.default)(t))}catch(e){let n="";throw e instanceof Error?n=`There was an error expanding one or more placeholders.
|
||
|
|
|
||
|
|
The error message was:
|
||
|
|
${e.message.replace(/ > /g,".").replace("Missing Mustache data property","Unknown property")}`:n="Unknown error expanding placeholders.",n+=`
|
||
|
|
|
||
|
|
The problem is in:
|
||
|
|
${r}`,Error(n)}}var JY=new RegExp(["\\{\\{","(.*?)","\\}\\}"].join(""),"g");function eq(r,t){return r.replace(JY,(e,n)=>{let i=tq(t),s=Jl(i,n);if(s.isValid()){let a=eu(s.queryComponent,i);if(a===null)throw Error(`Invalid placeholder result 'null'.
|
||
|
|
Check for missing file property in this expression:
|
||
|
|
{{${n}}}`);if(a!==void 0)return a}return e})}function tq(r){return Object.entries(r)}vt();function Yy(r){return qy(r,[])}function qy(r,t){return{query:{file:r,allTasks:t,searchCache:{}},preset:U({},te().presets)}}Xg();vt();var Ka=class{constructor(t=""){this.indentation=t}explainQuery(t){if(t.error!==void 0)return this.explainError(t);let e=[];return e.push(this.explainIgnoreGlobalQuery(t)),e.push(this.explainFilters(t)),e.push(this.explainGroups(t)),e.push(this.explainSorters(t)),e.push(this.explainLayout(t)),e.push(this.explainQueryLimits(t)),e.push(this.explainDebugSettings()),e.filter(n=>n!=="").join(`
|
||
|
|
`)}explainError(t){let e="";return e+=`Query has an error:
|
||
|
|
`,e+=t.error+`
|
||
|
|
`,e}explainIgnoreGlobalQuery(t){return t.ignoreGlobalQuery?this.indent(`ignore global query
|
||
|
|
`):""}explainFilters(t){return t.filters.length===0?this.indent(`No filters supplied. All tasks will match the query.
|
||
|
|
`):t.filters.map(e=>e.explainFilterIndented(this.indentation)).join(`
|
||
|
|
`)}explainGroups(t){return this.explainStatements(t.grouping.map(e=>e.statement))}explainSorters(t){return this.explainStatements(t.sorting.map(e=>e.statement))}explainLayout(t){return this.explainStatements(t.layoutStatements)}explainQueryLimits(t){function e(i){let s=`At most ${i} task`;return i!==1&&(s+="s"),s}let n=[];if(t.limit!==void 0){let i=e(t.limit)+`.
|
||
|
|
`;n.push(this.indent(i))}if(t.taskGroupLimit!==void 0){let i=e(t.taskGroupLimit)+` per group (if any "group by" options are supplied).
|
||
|
|
`;n.push(this.indent(i))}return n.join(`
|
||
|
|
`)}explainDebugSettings(){let t="",{debugSettings:e}=te();return e.ignoreSortInstructions&&(t+=this.indent(`NOTE: All sort instructions, including default sort order, are disabled, due to 'ignoreSortInstructions' setting.
|
||
|
|
`)),t}explainStatements(t){return t.length===0?"":t.map(e=>e.explainStatement(this.indentation)).join(`
|
||
|
|
|
||
|
|
`)+`
|
||
|
|
`}indent(t){return this.indentation+t}};un();var ze=class{constructor(t,e=[],n=""){this.description=t,this.symbol=n,this.children=e}static booleanAnd(t){return this.combineOrCreateExplanation("All of",t,"AND")}static booleanOr(t){return this.combineOrCreateExplanation("At least one of",t,"OR")}static booleanNot(t){return new ze("None of",t,"NOT")}static booleanXor(t){return new ze("Exactly one of",t,"XOR")}asString(t=""){if(this.children.length==0)return t+this.description;let e=t;this.symbol===""?e+=this.description:(e+=this.symbol,this.children.length>1&&(e+=` (${this.description})`),e+=":");let n=t+" ";for(let i=0;i<this.children.length;i++)e+=`
|
||
|
|
${this.children[i].asString(n)}`;return e}static combineOrCreateExplanation(t,e,n){if(e.length===2){let i=e[0],s=e[1];if(i.symbol===n&&s.symbol==="")return i.children.push(s),i}return new ze(t,e,n)}};var Qa=class{matchesAnyOf(t){return t.some(e=>this.matches(e))}};var Xa=class extends Qa{constructor(e){super();this.stringToFind=e}matches(e){return Xa.stringIncludesCaseInsensitive(e,this.stringToFind)}static stringIncludesCaseInsensitive(e,n){return e.toLocaleLowerCase().includes(n.toLocaleLowerCase())}explanation(e){return new ze(e)}};var Xi=class extends Qa{constructor(e){super();this.regex=e}static validateAndConstruct(e){let n=/^\/(.+)\/([^/]*)$/,i=e.match(n);if(i!==null){let s=new RegExp(i[1],i[2]);return new Xi(s)}else return null}matches(e){return e.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:
|
||
|
|
/pattern/flags
|
||
|
|
|
||
|
|
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(e){let i=nq(e,"using regex: ",this.regexAsString());return new ze(i)}regexAsString(){let e=`'${this.regex.source}' with `;switch(this.regex.flags.length){case 0:e+="no flags";break;case 1:e+=`flag '${this.regex.flags}'`;break;default:e+=`flags '${this.regex.flags}'`;break}return e}};function nq(r,t,e){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`${t.padEnd(s)}${e}`}var fn=class{constructor(t,e){this._rawInstruction=t,this._anyContinuationLinesRemoved=e.trim(),this._anyPlaceholdersExpanded=this._anyContinuationLinesRemoved}recordExpandedPlaceholders(t){this._anyPlaceholdersExpanded=t}get rawInstruction(){return this._rawInstruction}get anyContinuationLinesRemoved(){return this._anyContinuationLinesRemoved}get anyPlaceholdersExpanded(){return this._anyPlaceholdersExpanded}explainStatement(t){function e(a,o){o!==a&&(s+=` =>
|
||
|
|
${t}${o}`)}let n=this._rawInstruction.trim(),i=n.split(`
|
||
|
|
`).join(`
|
||
|
|
`+t),s=`${t}${i}`;return this._rawInstruction.includes(`
|
||
|
|
`)&&(s+=`
|
||
|
|
`+t),e(n,this._anyContinuationLinesRemoved),e(this._anyContinuationLinesRemoved,this._anyPlaceholdersExpanded),s}allLinesIdentical(){return this._rawInstruction===this._anyContinuationLinesRemoved&&this._rawInstruction===this._anyPlaceholdersExpanded}};var Er=class{constructor(t,e,n,i){this._statement=new fn(t,t),this.property=e,this.comparator=Er.maybeReverse(i,n)}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}static maybeReverse(t,e){return t?Er.makeReversedComparator(e):e}static makeReversedComparator(t){return(e,n,i)=>t(e,n,i)*-1}};Ll();var Zi=class{constructor(t,e,n,i){this._statement=new fn(t,t),this.property=e,this.grouper=n,this.reverse=i}setStatement(t){this._statement=t}get statement(){return this._statement}get instruction(){return this._statement.anyPlaceholdersExpanded}};var Be=class{canCreateFilterForLine(t){return Be.lineMatchesFilter(this.filterRegExp(),t)}static lineMatchesFilter(t,e){return t?t.test(e):!1}static getMatch(t,e){return t?e.match(t):null}fieldNameSingular(){return this.fieldName()}fieldNameSingularEscaped(){return Hi(this.fieldNameSingular())}supportsSorting(){return!1}createSorterFromLine(t){if(!this.supportsSorting())return null;let e=Be.getMatch(this.sorterRegExp(),t);if(e===null)return null;let n=!!e[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(t){let e=`sort by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}comparator(){throw Error(`comparator() unimplemented for ${this.fieldNameSingular()}`)}createSorter(t){return new Er(this.sorterInstruction(t),this.fieldNameSingular(),this.comparator(),t)}createNormalSorter(){return this.createSorter(!1)}createReverseSorter(){return this.createSorter(!0)}supportsGrouping(){return!1}createGrouperFromLine(t){if(!this.supportsGrouping())return null;let e=Be.getMatch(this.grouperRegExp(),t);if(e===null)return null;let n=!!e[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(t){let e=`group by ${this.fieldNameSingular()}`;return t&&(e+=" reverse"),e}grouper(){throw Error(`grouper() unimplemented for ${this.fieldNameSingular()}`)}createGrouper(t){return new Zi(this.grouperInstruction(t),this.fieldNameSingular(),this.grouper(),t)}createNormalGrouper(){return this.createGrouper(!1)}createReverseGrouper(){return this.createGrouper(!0)}};var Jt=class{constructor(t,e,n){this._statement=new fn(t,t),this.explanation=n,this.filterFunction=e}get statement(){return this._statement}setStatement(t){this._statement=t}get instruction(){return this._statement.anyPlaceholdersExpanded}explainFilterIndented(t){let e=this._statement.explainStatement(t);return this.onlyNeedsOneLineExplanation()?`${e}
|
||
|
|
`:`${e} =>
|
||
|
|
${this.explanation.asString(t+" ")}
|
||
|
|
`}simulateExplainFilter(){return this.onlyNeedsOneLineExplanation()?this.explanation:new ze(this.instruction+" =>",[this.explanation])}onlyNeedsOneLineExplanation(){return this.explanation.asString("")===this.instruction}};var Se=class{constructor(t){this.object=t}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(t){return new Se(Vr.fromObject(t.instruction,t))}static fromError(t,e){return new Se(Vr.fromError(t,e))}};var et=class extends Be{createFilterOrErrorMessage(t){let e=Be.getMatch(this.filterRegExp(),t);if(e===null)return Se.fromError(t,`do not understand query filter (${this.fieldName()})`);let n=e[1].toLowerCase(),i=e[2],s=null;if(n.includes("include"))s=new Xa(i);else if(n.includes("regex")){try{s=Xi.validateAndConstruct(i)}catch(l){let u=js("Parsing regular expression",l)+`
|
||
|
|
|
||
|
|
${Xi.helpMessage()}`;return Se.fromError(t,u)}if(s===null)return Se.fromError(t,`Invalid instruction: '${t}'
|
||
|
|
|
||
|
|
${Xi.helpMessage()}`)}if(s===null)return Se.fromError(t,`do not understand query filter (${this.fieldName()})`);let a=n.match(/not/)!==null,o=new Jt(t,this.getFilter(s,a),s.explanation(t));return Se.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(t,e){return n=>{let i=t.matches(this.value(n));return e?!i:i}}comparator(){return(t,e)=>this.value(t).localeCompare(this.value(e),void 0,{numeric:!0})}grouper(){return t=>[this.value(t)]}static escapeMarkdownCharacters(t){return t.replace(/\\/g,"\\\\").replace(/_/g,"\\_")}};var Di=class extends et{fieldName(){return"description"}value(t){return Ce.getInstance().removeAsSubstringFrom(t.description)}supportsSorting(){return!0}comparator(){return(t,e)=>{let n=Di.cleanDescription(t.description),i=Di.cleanDescription(e.description);return n.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(t){t=Ce.getInstance().removeAsSubstringFrom(t);let e=/^\[\[?([^\]]*)]]?/,n=t.match(e);if(n!==null){let i=n[1];t=i.substring(i.indexOf("|")+1)+t.replace(e,"")}return t=this.replaceFormatting(t,/^\*\*([^*]+)\*\*/),t=this.replaceFormatting(t,/^\*([^*]+)\*/),t=this.replaceFormatting(t,/^==([^=]+)==/),t=this.replaceFormatting(t,/^__([^_]+)__/),t=this.replaceFormatting(t,/^_([^_]+)_/),t}static replaceFormatting(t,e){let n=t.match(e);return n!==null&&(t=n[1]+t.replace(e,"")),t}};_g();wg();vs();var ad=class{findUnexpandedDateText(t){let e=["<%","YYYY-MM-DD"];for(let n of e)if(t.includes(n))return this.unexpandedDateTextMessage(n);return null}unexpandedDateTextMessage(t){return`Instruction contains unexpanded template text: "${t}" - 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/Daily+Agenda#Instruction+contains+unexpanded+template+text
|
||
|
|
`}};var od=class{constructor(t,e){this._instruction=t,this._filter=e}canCreateFilterForLine(t){return t.toLocaleLowerCase()===this._instruction.toLocaleLowerCase()}createFilterOrErrorMessage(t){return this.canCreateFilterForLine(t)?Se.fromFilter(new Jt(t,this._filter,new ze(t))):Se.fromError(t,`do not understand filter: ${t}`)}};var wn=class{constructor(){this._filters=[]}add(t,e){this._filters.push(new od(t,e))}canCreateFilterForLine(t){return this._filters.some(e=>e.canCreateFilterForLine(t))}createFilterOrErrorMessage(t){for(let e of this._filters){let n=e.createFilterOrErrorMessage(t);if(n.isValid())return n}return Se.fromError(t,`do not understand filter: ${t}`)}};var Mt=class extends Be{constructor(e=null){super();e!==null?this.filterInstructions=e:(this.filterInstructions=new wn,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(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){var f;let n=this.checkForUnexpandedTemplateText(e);if(n)return Se.fromError(e,n);let i=this.filterInstructions.createFilterOrErrorMessage(e);if(i.isValid())return i;let s=Be.getMatch(this.filterRegExp(),e);if(s===null)return Se.fromError(e,"do not understand query filter ("+this.fieldName()+" date)");let a=s[1],o=(f=s[2])==null?void 0:f.toLowerCase(),l=s[3],u=An.parseDateRange(l);if(!u.isValid()){let p=An.parseDate(a);p.isValid()&&(u=new on(p,p))}if(!u.isValid())return Se.fromError(e,"do not understand "+this.fieldName()+" date");let c=this.buildFilterFunction(o,u),d=Mt.buildExplanation(this.fieldNameForExplanation(),o,this.filterResultIfFieldMissing(),u);return Se.fromFilter(new Jt(e,c,d))}buildFilterFunction(e,n){let i;switch(e){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(e){return n=>e(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(e,n,i,s){let a=n,o="YYYY-MM-DD (dddd Do MMMM YYYY)",l;switch(n){case"before":case"on or after":l=s.start.format(o);break;case"after":case"on or before":l=s.end.format(o);break;case"in or before":a="on or before",l=s.end.format(o);break;case"in or after":a="on or after",l=s.start.format(o);break;default:if(!s.start.isSame(s.end)){let c=`${e} date is between:`,d=[new ze(`${s.start.format(o)} and`),new ze(`${s.end.format(o)} inclusive`)];return i&&d.push(new ze(`OR no ${e} date`)),new ze(c,d)}a="on",l=s.start.format(o);break}let u=`${e} date is ${a} ${l}`;return i&&(u+=` OR no ${e} date`),new ze(u)}fieldNameForExplanation(){return this.fieldName()}supportsSorting(){return!0}comparator(){return(e,n)=>er(this.date(e),this.date(n))}supportsGrouping(){return!0}grouper(){return e=>{let n=this.date(e);return n===null?["No "+this.fieldName()+" date"]:n.isValid()?[n.format("YYYY-MM-DD dddd")]:["%%0%% Invalid "+this.fieldName()+" date"]}}checkForUnexpandedTemplateText(e){return new ad().findUnexpandedDateText(e)}};var ld=class extends Mt{fieldName(){return"created"}date(t){return t.createdDate}filterResultIfFieldMissing(){return!1}};var ud=class extends Mt{fieldName(){return"done"}date(t){return t.doneDate}filterResultIfFieldMissing(){return!1}};var Za=class extends Mt{fieldName(){return"due"}date(t){return t.dueDate}filterResultIfFieldMissing(){
|
||
|
|
|
||
|
|
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 Se.fromError(e,l)}stringifySubExpressionsForErrorMessage(e){return Object.entries(e).map(([n,i])=>` '${n}': '${i}'
|
||
|
|
=> ${this.stringifySubExpressionStatus(i)}`).join(`
|
||
|
|
`)}stringifySubExpressionStatus(e){let n=ru(e);return n?n.error?`ERROR:
|
||
|
|
${n.error.split(`
|
||
|
|
`).map(s=>s.trim()).join(`
|
||
|
|
`)}`:"OK":`ERROR:
|
||
|
|
do not understand query`}helpMessageFromSimpleError(e,n){return`Could not interpret the following instruction as a Boolean combination:
|
||
|
|
${e}
|
||
|
|
|
||
|
|
The error message is:
|
||
|
|
${n}`}};var Sd=class extends et{fieldName(){return"filename"}value(t){let e=t.filename;return e===null?"":e+".md"}supportsSorting(){return!0}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;return e===null?["Unknown Location"]:["[["+e+"]]"]}}};var oo=class extends Be{canCreateFilterForLine(t){return!1}createFilterOrErrorMessage(t){return Se.fromError(t,"Filtering by urgency is not yet supported")}fieldName(){return"urgency"}filterRegExp(){throw Error(`filterRegExp() unimplemented for ${this.fieldName()}`)}supportsSorting(){return!0}comparator(){return(t,e)=>e.urgency-t.urgency}supportsGrouping(){return!0}grouper(){return t=>[`${t.urgency.toFixed(2)}`]}createGrouper(t){return super.createGrouper(!t)}grouperInstruction(t){return super.grouperInstruction(!t)}};var Dd=class extends et{constructor(){super()}fieldName(){return"status.name"}value(t){return t.status.name}supportsSorting(){return!0}supportsGrouping(){return!0}};In();var Xr=class extends Be{canCreateFilterForLine(t){let e=new RegExp(`^(?:${this.fieldNameSingularEscaped()})`,"i");return Be.lineMatchesFilter(e,t)}createFilterOrErrorMessage(t){let e=Be.getMatch(this.filterRegExp(),t);if(e===null)return this.helpMessage(t);let n=e[1].toLowerCase(),i=e[2],s=zt[i.toUpperCase()];if(!s)return this.helpMessage(t);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(t)}return Se.fromFilter(new Jt(t,a,new ze(t)))}filterRegExp(){return new RegExp(`^(?:${this.fieldNameSingularEscaped()}) (is|is not) ([^ ]+)$`,"i")}helpMessage(t){let e=Object.values(zt).filter(i=>i!=="EMPTY").join(" "),n=`Invalid ${this.fieldNameSingular()} instruction: '${t}'.
|
||
|
|
Allowed options: 'is' and 'is not' (without quotes).
|
||
|
|
Allowed values: ${e}
|
||
|
|
Note: values are case-insensitive,
|
||
|
|
so 'in_progress' works too, for example.
|
||
|
|
Example: ${this.fieldNameSingular()} is not NON_TASK`;return Se.fromError(t,n)}fieldName(){return"status.type"}value(t){return t.status.type}supportsSorting(){return!0}comparator(){return(t,e)=>{let n=Xr.groupName(t),i=Xr.groupName(e);return n.localeCompare(i,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return t=>[Xr.groupName(t)]}static groupName(t){return t.status.typeGroupText}};var Ed=class extends et{fieldName(){return"recurrence"}value(t){return t.recurrence!==null?t.recurrence.toText():""}supportsGrouping(){return!0}grouper(){return t=>t.recurrence!==null?[t.recurrence.toText()]:["None"]}};var Od=class extends et{fieldName(){return"folder"}value(t){return t.file.folder}supportsGrouping(){return!0}grouper(){return t=>[et.escapeMarkdownCharacters(this.value(t))]}};var xd=class extends et{fieldName(){return"root"}value(t){return t.file.root}supportsGrouping(){return!0}grouper(){return t=>[et.escapeMarkdownCharacters(this.value(t))]}};var Rd=class extends et{fieldName(){return"backlink"}value(t){let e=t.getLinkText({isFilenameUnique:!0});return e===null?"Unknown Location":e}createFilterOrErrorMessage(t){return Se.fromError(t,"backlink field does not support filtering")}canCreateFilterForLine(t){return!1}supportsGrouping(){return!0}grouper(){return t=>{let e=t.filename;if(e===null)return["Unknown Location"];let n=t.precedingHeader;return n===null?["[["+e+"]]"]:[`[[${e}#${n}|${e} > ${n}]]`]}}};var Cd=class extends Mt{fieldName(){return"cancelled"}date(t){return t.cancelledDate}filterResultIfFieldMissing(){return!1}};var Md=class extends cr{constructor(){super(),this._filters.add("is blocking",(t,e)=>t.isBlocking(e.allTasks)),this._filters.add("is not blocking",(t,e)=>!t.isBlocking(e.allTasks)),this._filters.add("is blocked",(t,e)=>t.isBlocked(e.allTasks)),this._filters.add("is not blocked",(t,e)=>!t.isBlocked(e.allTasks))}fieldName(){return"blocking"}};var Ad=class extends et{constructor(){super();this.filterInstructions=new wn;this.filterInstructions.add("has id",e=>e.id.length>0),this.filterInstructions.add("no id",e=>e.id.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let n=this.filterInstructions.createFilterOrErrorMessage(e);return n.isValid()?n:super.createFilterOrErrorMessage(e)}fieldName(){return"id"}value(e){return e.id}supportsSorting(){return!0}supportsGrouping(){return!0}};var Pd=class extends Be{constructor(){super();this.filterInstructions=new wn;this.filterInstructions.add("has depends on",e=>e.dependsOn.length>0),this.filterInstructions.add("no depends on",e=>e.dependsOn.length===0)}canCreateFilterForLine(e){return this.filterInstructions.canCreateFilterForLine(e)?!0:super.canCreateFilterForLine(e)}createFilterOrErrorMessage(e){let n=this.filterInstructions.createFilterOrErrorMessage(e);return n.isValid()?n:Se.fromError(e,"Unknown instruction")}fieldName(){return"blocked by"}filterRegExp(){return null}};var Nd=class extends cr{fieldName(){return"random"}supportsSorting(){return!0}comparator(){return(t,e)=>this.sortKey(t)-this.sortKey(e)}sortKey(t){let e=i=>{let s=0,a=9;for(;s<i.length;)a=Math.imul(a^i.charCodeAt(s++),387420489);return a^a>>>9},n=window.moment().format("Y-MM-DD");return e(n+" "+t.description)}};var Jy=[()=>new Dd,()=>new Xr,()=>new Ji,()=>new yd,()=>new Hs,()=>new gd,()=>new Cd,()=>new ld,()=>new hd,()=>new md,()=>new Za,()=>new ud,()=>new Ja,()=>new Od,()=>new xd,()=>new Rd,()=>new Di,()=>new Gs,()=>new pd,()=>new cd,()=>new Sd,()=>new oo,()=>new Ed,()=>new fd,()=>new Ad,()=>new Pd,()=>new Md,()=>new Nd,()=>new wd];function ru(r){for(let t of Jy){let e=t();if(e.canCreateFilterForLine(r))return e.createFilterOrErrorMessage(r)}return null}function i1(r){let t=/^sort by /i;if(r.match(t)===null)return null;for(let e of Jy){let i=e().createSorterFromLine(r);if(i)return i}return null}function s1(r){let t=/^group by /i;if(r.match(t)===null)return null;for(let e of Jy){let i=e().createGrouperFromLine(r);if(i)return i}return null}var Id=class{constructor(t,e
|
||
|
|
`;return t}toString(){let t=`
|
||
|
|
`;for(let e of this.groupHeadings)t+=`${"#".repeat(Math.min(4+e.nestingLevel,6))} ${e.displayName}
|
||
|
|
|
||
|
|
`;return t+=this.tasksAsStringOfLines(),t}};var zs=class{constructor(t,e,n){this._groups=new Array;this._totalTaskCount=0;this._totalTaskCount=e.length,this._groupers=t;let s=new Yd(t,e,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 t="";for(let e of this.groups)t+=e.toString();return t}addTaskGroups(t){for(let[e,n]of t){let i=new qd(e,n);this.addTaskGroup(i)}}addTaskGroup(t){this._groups.push(t)}sortTaskGroups(){let t=(e,n)=>{let i=e.groups,s=n.groups;for(let a=0;a<i.length;a++){let o=this._groupers[a],l=i[a].localeCompare(s[a],void 0,{numeric:!0});if(l!==0)return o.reverse?-l:l}return 0};this._groups.sort(t)}setGroupsHeadings(t){let e=new Fd(t,this._groupers);for(let n of this._groups)n.setGroupHeadings(e.getHeadingsForTaskGroup(n.groups))}applyTaskLimit(t){this._groupers.length!==0&&(this._groups.forEach(e=>{e.applyTaskLimit(t)}),this.recalculateTotalTaskCount())}recalculateTotalTaskCount(){let t=[];this._groups.forEach(n=>{t=[...t,...n.tasks]});let e=[...new Set(t)];this._totalTaskCount=e.length}};var Oi=class{constructor(t,e){this.tasksFile=t,this.allTasks=[...e],this._queryContext=this.tasksFile?qy(this.tasksFile,this.allTasks):void 0}static fromAllTasks(t){return new Oi(void 0,t)}get queryPath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}queryContext(){return this._queryContext}};function a1(r){return`task${r!==1?"s":""}`}var xi=class{constructor(t,e,n){this.totalTasksCountBeforeLimit=0;this._searchErrorMessage=void 0;this.taskGroups=t,this.totalTasksCountBeforeLimit=e,this._tasksFile=n}get searchErrorMessage(){return this._searchErrorMessage}set searchErrorMessage(t){this._searchErrorMessage=t}get totalTasksCount(){return this.taskGroups.totalTasksCount()}totalTasksCountDisplayText(){let t=this.totalTasksCount,e=this.totalTasksCountBeforeLimit;return t===e?`${t} ${a1(t)}`:`${t} of ${e} ${a1(e)}`}get groups(){return this.taskGroups.groups}static fromError(t){let e=new xi(new zs([],[],Oi.fromAllTasks([])),0,void 0);return e._searchErrorMessage=t,e}asMarkdown(){let t="";return t+=this.taskGroups.groups.map(e=>this.toString(e)).join(""),t}toString(t){let e=`
|
||
|
|
`;for(let n of t.groupHeadings)e+=`${"#".repeat(Math.min(4+n.nestingLevel,6))} ${n.displayName}
|
||
|
|
|
||
|
|
`;return e+=this.tasksAsStringOfLines(t.tasks),e}tasksAsStringOfLines(t){let e="";for(let n of t)e+=this.toFileLineString(n)+`
|
||
|
|
`;return e}toFileLineString(t){return`- [${t.status.symbol}] ${t.toString()}`}applyFilter(t){if(this._searchErrorMessage)return xi.fromError(this._searchErrorMessage);let e=this.taskGroups.groups.flatMap(a=>a.tasks),n=new Oi(this._tasksFile,e),i=a=>t.filterFunction(a,n),s=[...new Set(e.filter(i))];return new xi(new zs(this.taskGroups.groupers,s,n),this.totalTasksCountBeforeLimit,this._tasksFile)}};function o1(r){return r.endsWith("\\")}function l1(r){return r.endsWith("\\\\")}function Nq(r){return r.replace(/^[ \t]*/,"")}function Iq(r){return r.replace(/[ \t]*\\$/,"")}function Fq(r,t){let e=r;return t&&(e=Nq(r)),l1(e)?e=e.slice(0,-1):o1(r)&&(e=Iq(e)),e}function Wd(r){let t=[],e=!1,n="",i="",s=r+`
|
||
|
|
`;for(let a of s.split(`
|
||
|
|
`)){let o=Fq(a,e);e?(n+=`
|
||
|
|
`+a,i+=" "+o):(n=a,i=o),l1(a)?e=!1:e=o1(a),e||(i.trim()!==""&&t.push(new fn(n,i)),n="",i="")}return t}function u1(r){return Wd(r).map(t=>t.anyContinuationLinesRemoved)}var lo=class{static by(t,e,n){let i=this.defaultSorters().map(a=>a.comparator),s=[];for(let a of t)s.push(a.comparator);return e.sort(lo.makeCompositeComparator([...s,...i],n))}static defaultSorters(){return[new Xr().createNormalSorter(),new oo().createNormalSorter(),new Za().createNormalSorter(),new Hs().createNormalSorter(),new Ja().createNormalSorter()]}static makeCompositeComparator(t,e){return(n,i)=>{for(let s of t){let a=s(n,i,e);if(a!==0)return a}return 0}}};var c1=0,pn=class{constructor(t,e=void 0){this.statements=[];this._limit=void 0;this._taskGroupLimit=void 0;this._taskLayoutOptions=new Wr;this._queryLayoutOptions=new Qi;this.layoutStatements=[];this._filters=[];this._error=void 0;this._sorting=[];this._grouping=[];this._ignoreGlobalQuery=!1;this.hideOptionsRegexp=/^(hide|show) +(.*)/i;this.shortModeRegexp=/^short/i;this.fullModeRegexp=/^full/i;this.explainQueryRegexp=/^explain/i;this.ignoreGlobalQueryRegexp=/^ignore global query/i;this.logger=cn.getLogger("tasks.Query");this.limitRegexp=/^limit (groups )?(to )?(\d+)( tasks?)?/i;this.commentRegexp=/^#.*/;this.presetRegexp=/^preset +(.*)/i;this._queryId=this.generateQueryId(10),this.source=t,this.tasksFile=e;let n=Wd(t);for(let i of n){let s=this.expandPlaceholders(i,e);if(this.error!==void 0)return;this.statements.push(...s)}for(let i of this.statements)try{if(this.parseLine(i),this.error!==void 0)return}catch(s){let a;s instanceof Error?a=s.message:a="Unknown error",this.setError(a,i);return}}removeIllegalGlobalQueryInstructions(){this._ignoreGlobalQuery=!1}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}get queryId(){return this._queryId}parseLine(t){let e=t.anyPlaceholdersExpanded;switch(!0){case this.presetRegexp.test(e):this.parsePreset(e,t);break;case this.shortModeRegexp.test(e):this._queryLayoutOptions.shortMode=!0,this.saveLayoutStatement(t);break;case this.fullModeRegexp.test(e):this._queryLayoutOptions.shortMode=!1,this.saveLayoutStatement(t);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,t):break;case this.parseGroupBy(e,t):break;case this.hideOptionsRegexp.test(e):this.parseHideOptions(t);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}
|
||
|
|
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
`}expandPlaceholders(t,e){let n=t.anyContinuationLinesRemoved;if(n.includes("{{")&&n.includes("}}")&&this.tasksFile===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}`,[t];if(this.commentRegexp.test(n))return[t];let s=n;if(e){let a=Yy(e),o="";try{let u=0;for(;s!==o&&u<10;)o=s,s=Uy(o,a),u++;s!==n&&(s=Wd(s).map(c=>c.anyContinuationLinesRemoved).join(`
|
||
|
|
`))}catch(l){return l instanceof Error?this._error=l.message:this._error="Internal error. expandPlaceholders() threw something other than Error.",[t]}}return this.createStatementsFromExpandedPlaceholders(s,t)}createStatementsFromExpandedPlaceholders(t,e){let n=t.split(`
|
||
|
|
`).map(i=>i.trim()).filter(i=>i.length>0);return n.length===1?(e.recordExpandedPlaceholders(n[0]),[e]):n.map((i,s)=>{let a=`: statement ${s+1} after expansion of placeholder`,o=new fn(e.rawInstruction+a,e.anyContinuationLinesRemoved+a);return o.recordExpandedPlaceholders(i),o})}append(t){return this.source===""?t:t.source===""?this:new pn(`${this.source}
|
||
|
|
${t.source}`,this.tasksFile)}explainQuery(){return new Ka().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(t){this._filters.push(t)}get sorting(){return this._sorting}get grouping(){return this._grouping}get error(){return this._error}setError(t,e){this._error=pn.generateErrorMessage(e,t)}static generateErrorMessage(t,e){return t.allLinesIdentical()?`${e}
|
||
|
|
Problem line: "${t.rawInstruction}"`:`${e}
|
||
|
|
Problem statement:
|
||
|
|
${t.explainStatement(" ")}
|
||
|
|
`}get ignoreGlobalQuery(){return this._ignoreGlobalQuery}applyQueryToTasks(t){this.debug(`[search] Executing query: ${this.formatQueryForLogging()}`);let e=new Oi(this.tasksFile,t),n;try{this.filters.forEach(l=>{n=l.statement,t=t.filter(u=>l.filterFunction(u,e))}),n=void 0;let{debugSettings:i}=te(),s=i.ignoreSortInstructions?t:lo.by(this.sorting,t,e),a=s.slice(0,this.limit),o=new zs(this.grouping,a,e);return this._taskGroupLimit!==void 0&&o.applyTaskLimit(this._taskGroupLimit),new xi(o,s.length,this.tasksFile)}catch(i){let a=js("Search failed",i);return n&&(a=pn.generateErrorMessage(n,a)),xi.fromError(a)}}parseHideOptions(t){let e=t.anyPlaceholdersExpanded,n=e.match(this.hideOptionsRegexp);if(n===null)return;let i=n[1].toLowerCase()==="hide",s=n[2].toLowerCase();if(IE(this._queryLayoutOptions,s,i)){this.saveLayoutStatement(t);return}if(AS(this._taskLayoutOptions,s,!i)){this.saveLayoutStatement(t);return}this.setError("do not understand hide/show option",new fn(e,e))}saveLayoutStatement(t){this.layoutStatements.push(t)}parseFilter(t,e){var i;let n=ru(t);return n!=null?(n.filter?(n.filter.setStatement(e),this._filters.push(n.filter)):this.setError((i=n.error)!=null?i:"Unknown error",e),!0):!1}parseLimit(t){let e=t.match(this.limitRegexp);if(e===null){this.setError("do not understand query limit",new fn(t,t));return}let n=Number.parseInt(e[3],10);e[1]!==void 0?this._taskGroupLimit=n:this._limit=n}parseSortBy(t,e){let n=i1(t);return n?(n.setStatement(e),this._sorting.push(n),!0):!1}parseGroupBy(t,e){let n=s1(t);return n?(n.setStatement(e),this._grouping.push(n),!0):!1}parsePreset(t,e){let n=this.presetRegexp.exec(t);if(n){let i=n[1].trim(),{presets:s}=te(),a=s[i];if(!a){this.setError(BS(i,s),e);return}let o=u1(a);for(let l of o){let u=new fn(e.rawInstruction,e.anyContinuationLinesRemoved);if(u.recordExpandedPlaceholders(l),l.includes("{{")&&l.includes("}}")&&this.tasksFile){let c=Yy(this.tasksFile),d=Uy(l,c);u.recordExpandedPlaceholders(d)}this.parseLine(u)}}}generateQueryId(t){return c1+=1,c1.toString().padStart(t,"0")}debug(t,e){this.logger.debugWithId(this._queryId,`"${this.filePath}": ${t}`,e)}warn(t,e){this.logger.warnWithId(this._queryId,`"${this.filePath}": ${t}`,e)}};var eb=[{name:"TQ_show_toolbar",type:"checkbox",display:"toolbar",handler:"showAndHide"},{name:"TQ_explain",type:"checkbox",display:"explain",handler:"instruction",trueValue:"explain",falseValue:""},{name:"TQ_short_mode",type:"checkbox",display:"short mode",handler:"instruction",trueValue:"short mode",falseValue:"full mode"},{name:"TQ_show_tree",type:"checkbox",display:"tree",handler:"showAndHide"},{name:"TQ_show_tags",type:"checkbox",display:"tags",handler:"showAndHide"},{name:"TQ_show_id",type:"checkbox",display:"id",handler:"showAndHide"},{name:"TQ_show_depends_on",type:"checkbox",display:"depends on",handler:"showAndHide"},{name:"TQ_show_priority",type:"checkbox",display:"priority",handler:"showAndHide"},{name:"TQ_show_recurrence_rule",type:"checkbox",display:"recurrence rule",handler:"showAndHide"},{name:"TQ_show_on_completion",type:"checkbox",display:"on completion",handler:"showAndHide"},{name:"TQ_show_created_date",type:"checkbox",display:"created date",handler:"showAndHide"},{name:"TQ_show_start_date",type:"checkbox",display:"start date",handler:"showAndHide"},{name:"TQ_show_scheduled_date",type:"checkbox",display:"scheduled date",handler:"showAndHide"},{name:"TQ_show_due_date",type:"checkbox",display:"due date",handler:"showAndHide"},{name:"TQ_show_cancelled_date",type:"checkbox",display:"cancelled date",handler:"showAndHide"},{name:"TQ_show_done_date",type:"checkbox",display:"done date",handler:"showAndHide"},{name:"TQ_show_urgency",type:"checkbox",display:"urgency",handler:"showAndHide"},{name:"TQ_show_backlink",type:"checkbox",display:"backlink",handler:"showAndHide"},{name:"TQ_show_edit_button",type:"checkbox",display:"edit button",handler:"showAndHide"},{name:"TQ_show_postpone_button",type:"checkbox",display:"postpone button",handler:"showAndHide"},{name:"TQ_show_task_count",type:"checkbox",display:"task count",handler:"showAndHide"},{nam
|
||
|
|
`):""}generateInstruction(t,e){let n=t.hasProperty(e.name),i=t.property(e.name);switch(e.handler){case"instruction":return n&&(i?e.trueValue:e.falseValue)||"";case"showAndHide":return n&&(i?"show "+e.display:"hide "+e.display)||"";case"addValue":return n&&i||"";default:throw new Error("Unknown handler type: "+e.handler+".")}}query(t){return new pn(this.source(t),t)}allPropertyNames(){return eb.map(t=>t.name)}allPropertyNamesSorted(){return this.allPropertyNames().sort((t,e)=>t.localeCompare(e))}propertyType(t){var e,n;return(n=(e=eb.find(i=>i.name===t))==null?void 0:e.type)!=null?n:void 0}metaBindPluginWidgets(){return"\ntoolbar: `INPUT[toggle:TQ_show_toolbar]`\nshort mode: `INPUT[toggle:TQ_short_mode]`\ntree: `INPUT[toggle:TQ_show_tree]`\ntags: `INPUT[toggle:TQ_show_tags]`\nid: `INPUT[toggle:TQ_show_id]` depends on: `INPUT[toggle:TQ_show_depends_on]`\npriority: `INPUT[toggle:TQ_show_priority]`\nrecurrence rule: `INPUT[toggle:TQ_show_recurrence_rule]` on completion: `INPUT[toggle:TQ_show_on_completion]`\nstart date: `INPUT[toggle:TQ_show_start_date]` scheduled date: `INPUT[toggle:TQ_show_scheduled_date]` due date: `INPUT[toggle:TQ_show_due_date]`\ncreated date: `INPUT[toggle:TQ_show_created_date]` cancelled date: `INPUT[toggle:TQ_show_cancelled_date]` done date: `INPUT[toggle:TQ_show_done_date]`\nurgency: `INPUT[toggle:TQ_show_urgency]`\nbacklink: `INPUT[toggle:TQ_show_backlink]`\nedit button: `INPUT[toggle:TQ_show_edit_button]` postpone button: `INPUT[toggle:TQ_show_postpone_button]`\ntask count: `INPUT[toggle:TQ_show_task_count]`\nextra instructions: `INPUT[textArea:TQ_extra_instructions]`\nexplain: `INPUT[toggle:TQ_explain]`\n"}};function d1(r,t){return A(this,null,function*(){yield r.fileManager.processFrontMatter(t,e=>{let n=new Ri().allPropertyNamesSorted(),i=!1;n.forEach(s=>{s in e||(e[s]=null,i=!0)}),i?new tb.Notice("Properties updated successfully."):new tb.Notice("All supported properties are already present.")})})}var $d=class{get app(){return this.plugin.app}constructor({plugin:t}){this.plugin=t,t.addCommand({id:"edit-task",name:"Create or edit task",icon:"pencil",editorCheckCallback:(e,n,i)=>PE(e,n,i,this.app,this.plugin.getTasks(),()=>A(this,null,function*(){return yield this.plugin.saveSettings()}))}),t.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:NE}),t.addCommand({id:"add-query-file-defaults-properties",name:"Add all Query File Defaults properties",icon:"settings",checkCallback:e=>{let n=this.app.workspace.getActiveFile();return!n||n.extension!=="md"?!1:(e||this.ensureQueryFileDefaultsFrontmatter(n).catch(console.error),!0)}})}ensureQueryFileDefaultsFrontmatter(t){return A(this,null,function*(){let{app:e}=this;yield d1(e,t)})}};var Ci=class{constructor(t=Ci.empty){this._source=t}static getInstance(){return Ci.instance||(Ci.instance=new Ci),Ci.instance}set(t){this._source=t}reset(){this._source=Ci.empty}query(t=void 0){let e=new pn(this._source,t);return e.removeIllegalGlobalQueryInstructions(),e}hasInstructions(){return this._source.trim()!==Ci.empty}},Gn=Ci;Gn.empty="";As();var jd=class{constructor({obsidianEvents:t}){this.logger=cn.getLogger("tasks.Events");this.obsidianEvents=t}onCacheUpdate(t){this.logger.debug("TasksEvents.onCacheUpdate()");let e="obsidian-tasks-plugin:cache-update";return this.obsidianEvents.on(e,t)}triggerCacheUpdate(t){this.logger.debug("TasksEvents.triggerCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:cache-update",t)}onRequestCacheUpdate(t){this.logger.debug("TasksEvents.onRequestCacheUpdate()");let e="obsidian-tasks-plugin:request-cache-update";return this.obsidianEvents.on(e,t)}triggerRequestCacheUpdate(t){this.logger.debug("TasksEvents.triggerRequestCacheUpdate()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:request-cache-update",t)}onReloadOpenSearchResults(t){this.logger.debug("TasksEvents.onReloadOpenSearchResults()");let e="obsidian-tasks-plugin:reload-open-search-results";return this.obsidianEvents.on(e,t)}triggerReloadOpenSearchResults(){this.logger.debug("TasksEvents.triggerReloadOpenSearch
|
||
|
|
<span class='flatpickr-weekday'>
|
||
|
|
`+y.join("</span><span class='flatpickr-weekday'>")+`
|
||
|
|
</span>
|
||
|
|
`}}function k(){e.calendarContainer.classList.add("hasWeeks");var h=Ve("div","flatpickr-weekwrapper");h.appendChild(Ve("span","flatpickr-weekday",e.l10n.weekAbbreviation));var y=Ve("div","flatpickr-weeks");return h.appendChild(y),{weekWrapper:h,weekNumbers:y}}function w(h,y){y===void 0&&(y=!0);var D=y?h:h-e.currentMonth;D<0&&e._hidePrevMonthArrow===!0||D>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=D,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,at("onYearChange"),P()),G(),at("onMonthChange"),mu())}function R(h,y){if(h===void 0&&(h=!0),y===void 0&&(y=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,y===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var D=Zd(e.config),I=D.hours,z=D.minutes,ne=D.seconds;p(I,z,ne)}e.redraw(),h&&at("onChange")}function N(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),at("onClose")}function Y(){e.config!==void 0&&at("onDestroy");for(var h=e._handlers.length;h--;)e._handlers[h].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var y=e.calendarContainer.parentNode;if(y.lastChild&&y.removeChild(y.lastChild),y.parentNode){for(;y.firstChild;)y.parentNode.insertBefore(y.firstChild,y);y.parentNode.removeChild(y)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type="text",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove("flatpickr-input"),e.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(D){try{delete e[D]}catch(I){}})}function L(h){return e.calendarContainer.contains(h)}function S(h){if(e.isOpen&&!e.config.inline){var y=Dn(h),D=L(y),I=y===e.input||y===e.altInput||e.element.contains(y)||h.path&&h.path.indexOf&&(~h.path.indexOf(e.input)||~h.path.indexOf(e.altInput)),z=!I&&!D&&!L(h.relatedTarget),ne=!e.config.ignoredFocusElements.some(function(Oe){return Oe.contains(y)});z&&ne&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==""&&e.input.value!==void 0&&l(),e.close(),e.config&&e.config.mode==="range"&&e.selectedDates.length===1&&e.clear(!1))}}function $(h){if(!(!h||e.config.minDate&&h<e.config.minDate.getFullYear()||e.config.maxDate&&h>e.config.maxDate.getFullYear())){var y=h,D=e.currentYear!==y;e.currentYear=y||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),D&&(e.redraw(),at("onYearChange"),P())}}function de(h,y){var D;y===void 0&&(y=!0);var I=e.parseDate(h,void 0,y);if(e.config.minDate&&I&&En(I,e.config.minDate,y!==void 0?y:!e.minDateHasTime)<0||e.config.maxDate&&I&&En(I,e.config.maxDate,y!==void 0?y:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(I===void 0)return!1;for(va
|
||
|
|
`);if(p===void 0)return!1;let g=null;for(let v=0;v<p.length;v=v+1)if(p[v]!==""){g=p[v];break}return g===null?!1:Ce.getInstance().includedIn(g)});if(i.length===0)return;let s=e.sourcePath,a=e.getSectionInfo(t);if(a===null)return;let o=a.text.split(`
|
||
|
|
`),l=0,u=[];for(let f=a.lineStart;f<=a.lineEnd;f++){let p=o[f];if(p===void 0)continue;let g=null,b=me.fromLine({line:p,taskLocation:new Wt(new bt(s),f,a.lineStart,l,g),fallbackDate:null});b!==null&&(u.push(b),l++)}let c=new Jr({obsidianApp:this.app,obsidianComponent:n,taskLayoutOptions:new Wr,queryLayoutOptions:new Qi});for(let f=0;f<i.length;f++){let p=u[f],g=i[f];if(p===void 0||g===void 0)continue;let b=(d=g.getAttr("data-line"))!=null?d:"0",v=Number.parseInt(b,10),E=Ze("li",t);yield c.renderTaskLine({li:E,task:p,taskIndex:v,isTaskInQueryFile:!0});let x=g.childNodes;for(let V=0;V<x.length;V=V+1){let Z=x[V],j=Z.nodeName.toLowerCase();j==="div"?E.prepend(Z):(j==="ul"||j==="ol")&&E.append(Z)}let O=g.querySelectorAll("[data-footnote-id]"),q=E.querySelectorAll("[data-footnote-id]");if(O.length===q.length)for(let V=0;V<O.length;V++)q[V].replaceWith(O[V]);g.replaceWith(E)}})}};var L1=require("@codemirror/view"),U1=require("obsidian");Ut();var Y1=()=>L1.ViewPlugin.fromClass(fb),fb=class{constructor(t){this.view=t,this.handleClickEvent=this.handleClickEvent.bind(this),this.view.dom.addEventListener("click",this.handleClickEvent)}destroy(){this.view.dom.removeEventListener("click",this.handleClickEvent)}handleClickEvent(t){let{target:e}=t;if(!e||!(e instanceof HTMLInputElement)||e.type!=="checkbox")return!1;let n=e.closest("ul.plugin-tasks-query-result, div.callout-content");if(n){if(n.matches("div.callout-content")){let p=`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(p),new U1.Notice(p,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(e),a=i.doc.lineAt(s),o=me.fromLine({line:a.text,taskLocation:Wt.fromUnknownPosition(new bt("")),fallbackDate:null});if(o===null)return!1;t.preventDefault();let l=o.toggleWithRecurrenceInUsersOrder(),u=l.map(p=>p.toFileLineString()).join(i.lineBreak),c=a.to;if(u===""){let p=a.number<i.doc.lines?i.doc.line(a.number+1):null;p&&(c=p.from)}let d=i.update({changes:{from:a.from,to:c,insert:u}});if(this.view.dispatch(d),l.length===1){let p=l[0].status.symbol!==" ";setTimeout(()=>{e.checked=p},1)}return!0}};var Ai=require("obsidian"),$1=require("obsidian");function q1(r,t,e,n=void 0){let i="";t.isEmpty()||(i+=`Only tasks containing the global filter '${t.get()}'.
|
||
|
|
|
||
|
|
`);let s=new Ka(" ");function a(c,d){return`${c}:
|
||
|
|
|
||
|
|
${s.explainQuery(d)}`}let o=new pn(r,n),l=new Ri().query(n);if(!(o.ignoreGlobalQuery||l.ignoreGlobalQuery)&&e.hasInstructions()){let c=e.query(n);i+=a("Explanation of the global query",c)+`
|
||
|
|
`}return l.source!==""&&(i+=a("Explanation of the Query File Defaults (from properties/frontmatter in the query's file)",l)+`
|
||
|
|
`),i+=a("Explanation of this Tasks code block query",o),i}function nf(r,t,e){let i=new Ri().query(e).append(new pn(r,e));return i.ignoreGlobalQuery?i:t.query(e).append(i)}Bi();var ei=require("obsidian");function uu(r,t,e){t&&r.push(Wq(e))}function Wq(r){return`tasks-layout-hide-${r}`}var rf=class{constructor(t){t?this.queryLayoutOptions=t:this.queryLayoutOptions=new Qi}getHiddenClasses(){let t=[],e=[[this.queryLayoutOptions.hideUrgency,"urgency"],[this.queryLayoutOptions.hideBacklinks,"backlinks"],[this.queryLayoutOptions.hideEditButton,"edit-button"],[this.queryLayoutOptions.hidePostponeButton,"postpone-button"]];for(let[n,i]of e)uu(t,n,i);return this.queryLayoutOptions.shortMode&&t.push("tasks-layout-short-mode"),t}};Es();var sf=class{constructor(t){t?this.taskLayoutOptions=t:this.taskLayoutOptions=new Wr}generateHiddenClasses(){let t=[];return this.taskLayoutOptions.toggleableComponents.forEach(e=>{uu(t,!this.taskLayoutOptions.isShown(e),e)}),uu(t,!this.taskLayoutOptions.areTagsShown(),"tags"),t}};var pb=require("obsidian");var ss=class extends rs{constructor(t,e,n=Zr){super(n);let i=(u,c,d,f,p,g)=>{var x;let b=!1,v=uo(e);if(v){let{postponedDate:O}=g(e,v,d,f);(x=e[v])!=null&&x.isSame(O,"day")&&(b=!0)}let E=p(e,f,d);c.setChecked(b).setTitle(E).onClick(()=>ss.postponeOnClickCallback(u,e,f,d,g,n))},s=T1,a=p1;this.addItem(u=>i(t,u,"days",0,s,a)),this.addItem(u=>i(t,u,"day",1,s,a)),this.addSeparator();let o=rb,l=nb;o(e,1,"day")!==s(e,1,"day")&&this.addItem(u=>i(t,u,"day",1,o,l)),this.addItem(u=>i(t,u,"days",2,o,l)),this.addItem(u=>i(t,u,"days",3,o,l)),this.addItem(u=>i(t,u,"days",4,o,l)),this.addItem(u=>i(t,u,"days",5,o,l)),this.addItem(u=>i(t,u,"days",6,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"week",1,o,l)),this.addItem(u=>i(t,u,"weeks",2,o,l)),this.addItem(u=>i(t,u,"weeks",3,o,l)),this.addItem(u=>i(t,u,"month",1,o,l)),this.addSeparator(),this.addItem(u=>i(t,u,"days",2,v1,m1))}static postponeOnClickCallback(o,l,u,c){return A(this,arguments,function*(t,e,n,i,s=nb,a=Zr){var g;let d=uo(e);if(d===null){let b="\u26A0\uFE0F Postponement requires a date: due, scheduled or start.";return new pb.Notice(b,1e4)}let{postponedDate:f,postponedTask:p}=s(e,d,i,n);(g=e[d])!=null&&g.isSame(f,"day")||(yield a(e,p),ss.postponeSuccessCallback(t,d,f))})}static postponeSuccessCallback(t,e,n){t.style.pointerEvents="none";let i=y1(n,e);new pb.Notice(i,2e3)}};un();Ut();var yo=class{constructor(t){this.addedListItems=new Set;this.getters=t}get filePath(){return this.getters.tasksFile().path}renderQuery(t,e){return A(this,null,function*(){this.beginRender();let i=this.getters.query().error;t==="Warm"&&i===void 0?yield this.renderQuerySearchResults(e):i?this.renderErrorMessage(i):this.renderLoadingMessage()})}renderQuerySearchResults(t){return A(this,null,function*(){if(this.explainQuery(),t.searchErrorMessage!==void 0){this.renderErrorMessage(t.searchErrorMessage);return}yield this.renderSearchResults(t)})}explainQuery(){if(this.getters.query().queryLayoutOptions.explainQuery){let t=q1(this.getters.source(),Ce.getInstance(),Gn.getInstance(),this.getters.tasksFile());this.renderExplanation(t)}}renderSearchResults(t){return A(this,null,function*(){this.renderSearchResultsHeader(t),yield this.addAllTaskGroups(t.taskGroups);let e=t.totalTasksCount;this.getters.query().debug(`[render] ${e} tasks displayed`),this.renderSearchResultsFooter(t)})}addAllTaskGroups(t){return A(this,null,function*(){for(let e of t.groups)yield this.addGroupHeadings(e.groupHeadings),this.addedListItems.clear(),yield this.addTaskList(e.tasks)})}addTaskList(t){return A(this,null,function*(){this.beginTaskList();try{this.getters.query().queryLayoutOptions.hideTree?yield this.addFlatTaskList(t):yield this.addTreeTaskList(t)}finally{this.endTaskList()}})}addFlatTaskList(t){return A(this,null,function*(){for(let[e,n]of t.entries())n instanceof me&&(this.beginListItem(),yield this.addTask(n,e))})}addTreeTaskList(t){return A(this,null,function*(){for(let[e,n]of t.entries())this.alreadyAdded(n)||this.willBeAddedLater(n,t)||(this.beginListItem(),n instanceof me?yield this.addTask
|
||
|
|
`)}beginRender(){this.markdownLines.length=0,this.taskIndentationLevel=0}renderSearchResultsHeader(e){}renderSearchResultsFooter(e){}renderLoadingMessage(){}renderExplanation(e){e&&this.markdownLines.push(e)}renderErrorMessage(e){}beginTaskList(){this.taskIndentationLevel+=1}endTaskList(){this.taskIndentationLevel-=1,this.taskIndentationLevel===0&&this.addEmptyLine()}addEmptyLine(){this.markdownLines.push("")}beginListItem(){}addTask(e,n){return this.markdownLines.push(this.formatTask(e)),Promise.resolve()}formatTask(e){return`${this.listItemIndentation()}- [${e.status.symbol}] ${e.toString()}`}addListItem(e,n){return this.markdownLines.push(this.formatListItem(e)),Promise.resolve()}formatListItem(e){let n=e.statusCharacter?`[${e.statusCharacter}] `:"";return`${this.listItemIndentation()}- ${n}${e.description}`}listItemIndentation(){let e=Math.max(0,this.taskIndentationLevel-1);return" ".repeat(e)}addGroupHeading(e){let n="#".repeat(Math.min(4+e.nestingLevel,6));return this.markdownLines.push(`${n} ${e.displayName}`),this.addEmptyLine(),Promise.resolve()}};var lf=class{constructor(t,e,n,i,s,a,o,l){this._filterString="";switch(this.source=e,this._tasksFile=n,this.queryResult=new pn("").applyQueryToTasks([]),this.filteredQueryResult=this.queryResult,t){case"block-language-tasks":this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break;default:this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break}let u={source:()=>this.source,tasksFile:()=>this._tasksFile,query:()=>this.query};this.htmlRenderer=new af(i,s,a,o,l,u),this.markdownRenderer=new of(u)}get filterString(){return this._filterString}makeQueryFromSourceAndTasksFile(){return nf(this.source,Gn.getInstance(),this.tasksFile)}get tasksFile(){return this._tasksFile}setTasksFile(t){this._tasksFile=t,this.rereadQueryFromFile()}rereadQueryFromFile(){this.query=this.makeQueryFromSourceAndTasksFile()}get filePath(){return this.tasksFile.path}render(t,e,n){return A(this,null,function*(){this.performSearch(e),this.addToolbar(n),yield this.renderQueryResult(t,this.filteredQueryResult,n)})}performSearch(t){let e=new Ps(`Search: ${this.query.queryId} - ${this.filePath}`);e.start(),this.queryResult=this.query.applyQueryToTasks(t),this.filterResults(),e.finish()}renderQueryResult(t,e,n){return A(this,null,function*(){let i=new Ps(`Render: ${this.query.queryId} - ${this.filePath}`);i.start(),this.htmlRenderer.content=n,yield this.htmlRenderer.renderQuery(t,e),i.finish()})}addToolbar(t){if(this.query.queryLayoutOptions.hideToolbar)return;let e=Ze("div",t);e.classList.add("plugin-tasks-toolbar"),this.addSearchBox(e,t),this.addCopyButton(e)}addSearchBox(t,e){let n=Ze("label",t);(0,ei.setIcon)(n,"lucide-filter");let i=Ze("input",n);i.value=this._filterString,i.placeholder="Filter by description...",(0,ei.setTooltip)(i,"Filter results");let s=()=>A(this,null,function*(){let a=i.value;yield this.applySearchBoxFilterAndRerender(a,e)});i.addEventListener("input",(0,ei.debounce)(s,500,!0))}applySearchBoxFilterAndRerender(t,e){return A(this,null,function*(){for(this._filterString=t,this.filterResults();e.firstElementChild!==e.lastElementChild;){let n=e.lastChild;if(n===null)break;n.remove()}yield this.renderQueryResult("Warm",this.filteredQueryResult,e)})}filterResults(){let{filter:t,error:e}=new Di().createFilterOrErrorMessage("description includes "+this._filterString);if(e){this.filteredQueryResult=this.queryResult;return}this.filteredQueryResult=this.queryResult.applyFilter(t)}addCopyButton(t){let e=Ze("button",t);(0,ei.setIcon)(e,"lucide-copy"),(0,ei.setTooltip)(e,"Copy results"),e.addEventListener("click",()=>A(this,null,function*(){let n=yield this.resultsAsMarkdown();yield navigator.clipboard.writeText(n),new ei.Notice("Results copied to clipboard")}))}resultsAsMarkdown(){return A(this,null,function*(){return yield this.markdownRenderer.renderQuery("Warm",this.filteredQueryResult),this.markdownRenderer.markdown})}};var uf=class{constructor({plugin:t,events:e}){this.addQueryRenderChild=this._addQueryRenderChild.bind(this);this.app=t.app,th
|
||
|
|
`,this._markdown+=`${e}
|
||
|
|
`}addRow(t){let e=this.makeRowText(t);this._markdown+=`${e}
|
||
|
|
`}addRowIfNew(t){let e=this.makeRowText(t);this._markdown.includes(e)||(this._markdown+=`${e}
|
||
|
|
`)}makeRowText(t){let e="|";return t.forEach(n=>{e+=` ${n} |`}),e}};Ni();un();In();_r();$r();function j1(r,t){return r.findIndex(e=>e.symbol===t)}function Pi(r){return r===""?r:"`"+(r!==" "?r:"space")+"`"}function Gq(r,t){let e=Te.getTypeForUnknownSymbol(r.symbol);if(r.type===e||e==="TODO"&&r.symbol!==" ")return;let n=Pi(r.symbol),i=Pi(e);t.push(M.t("reports.statusRegistry.messages.notConventionalType",{symbol:n,type:i}))}function Bq(r,t,e){let n=t.nextStatusSymbol,i=j1(r,n);if(i===-1){let a=Pi(n);e.push(M.t("reports.statusRegistry.messages.nextSymbolUnknown",{symbol:a}));return}if(t.type!=="DONE")return;let s=r[i];if(s){if(s.type!=="TODO"&&s.type!=="IN_PROGRESS"){let a="https://publish.obsidian.md/tasks/Getting+Started/Statuses/Recurring+Tasks+and+Custom+Statuses",o=Pi(s.type),l=[M.t("reports.statusRegistry.messages.wrongTypeAfterDone.line1",{nextType:o}),M.t("reports.statusRegistry.messages.wrongTypeAfterDone.line2"),M.t("reports.statusRegistry.messages.wrongTypeAfterDone.line3",{helpURL:a})].join("<br>");e.push(l)}}else e.push(M.t("reports.statusRegistry.messages.cannotFindNextStatus"))}function Vq(r,t,e){let n=[];if(t.symbol===Te.EMPTY.symbol)return n.push(M.t("reports.statusRegistry.messages.emptySymbol")),n;if(j1(r,t.symbol)!=e){let s=Pi(t.symbol);return n.push(M.t("reports.statusRegistry.messages.duplicateSymbol",{symbol:s})),n}return Gq(t,n),Bq(r,t,n),n}function H1(r){let t=new cf([M.t("reports.statusRegistry.columnHeadings.statusSymbol"),M.t("reports.statusRegistry.columnHeadings.nextStatusSymbol"),M.t("reports.statusRegistry.columnHeadings.statusName"),M.t("reports.statusRegistry.columnHeadings.statusType"),M.t("reports.statusRegistry.columnHeadings.problems")]),e=it.allStatuses(r);return e.forEach((n,i)=>{t.addRow([Pi(n.symbol),Pi(n.nextStatusSymbol),n.name,Pi(n.type),Vq(e,n,i).join("<br>")])}),t.markdown}function G1(r){let t=new Ge;return it.applyToStatusRegistry(r,t),t.registeredStatuses.map((n,i)=>{let s=Ce.getInstance(),a=s.isEmpty()?"":s.get()+" ",o=`Sample task ${i+1}`,l=`status symbol=${Pi(n.symbol)}`,u=`status name='${n.name}'`;return`- [${n.symbol}] ${a}${o}: ${l} ${u}`})}function B1(r,t,e,n){let s=H1(r),a=t.mermaidDiagram(!0),o=G1(r);return`# ${e}
|
||
|
|
|
||
|
|
## ${M.t("reports.statusRegistry.about.title")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.about.createdBy",{version:n})}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.about.updateReport.line1")}
|
||
|
|
|
||
|
|
- ${M.t("reports.statusRegistry.about.updateReport.line2")}
|
||
|
|
- ${M.t("reports.statusRegistry.about.updateReport.line3")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.about.deleteFileAnyTime")}
|
||
|
|
|
||
|
|
## ${M.t("reports.statusRegistry.statusSettings.title")}
|
||
|
|
|
||
|
|
<!--
|
||
|
|
${M.t("reports.statusRegistry.statusSettings.comment.line1")}
|
||
|
|
${M.t("reports.statusRegistry.statusSettings.comment.line2")}
|
||
|
|
${M.t("reports.statusRegistry.statusSettings.comment.line3")}
|
||
|
|
-->
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.statusSettings.theseAreStatusValues")}
|
||
|
|
|
||
|
|
${s}
|
||
|
|
## ${M.t("reports.statusRegistry.loadedSettings.title")}
|
||
|
|
|
||
|
|
<!-- ${M.t("reports.statusRegistry.loadedSettings.switchToLivePreview")} -->
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.loadedSettings.settingsActuallyUsed")}
|
||
|
|
${a}
|
||
|
|
|
||
|
|
## ${M.t("reports.statusRegistry.sampleTasks.title")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.sampleTasks.line1")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.sampleTasks.line2")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.sampleTasks.line3")}
|
||
|
|
|
||
|
|
> [!Tip] ${M.t("reports.statusRegistry.sampleTasks.tip.line1")}
|
||
|
|
> ${M.t("reports.statusRegistry.sampleTasks.tip.line2",{url:"https://publish.obsidian.md/tasks/How+To/Style+custom+statuses"})}
|
||
|
|
|
||
|
|
${o.join(`
|
||
|
|
`)}
|
||
|
|
|
||
|
|
## ${M.t("reports.statusRegistry.searchSampleTasks.title")}
|
||
|
|
|
||
|
|
${M.t("reports.statusRegistry.searchSampleTasks.line1")}
|
||
|
|
|
||
|
|
\`\`\`tasks
|
||
|
|
path includes {{query.file.path}}
|
||
|
|
group by status.type
|
||
|
|
group by status.name
|
||
|
|
sort by function task.lineNumber
|
||
|
|
hide postpone button
|
||
|
|
short mode
|
||
|
|
\`\`\`
|
||
|
|
`}Ni();function V1(){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 z1(){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 K1(){return[[" ","To Do","x","TODO"],["/","In Progress","x","IN_PROGRESS"],["x","Done"," ","DONE"],["-","Cancelled"," ","CANCELLED"],[">","Rescheduled","x","TODO"],["<","Scheduled","x","TODO"],["!","Important","x","TODO"],["?","Question","x","TODO"],["i","Infomation","x","TODO"],["S","Amount","x","TODO"],["*","Star","x","TODO"],["b","Bookmark","x","TODO"],["\u201C","Quote","x","TODO"],["n","Note","x","TODO"],["l","Location","x","TODO"],["I","Idea","x","TODO"],["p","Pro","x","TODO"],["c","Con","x","TODO"],["u","Up","x","TODO"],["d","Down","x","TODO"]]}function Q1(){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 X1(){return[[" ","Unchecked","x","TODO"],["x","Regular"," ","DONE"],["X","Checked"," ","DONE"],["-","Dropped"," ","CANCELLED"],[">","Forward","x","TODO"],["<","Migrated","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 Z1(){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 J1(){
|
||
|
|
`)+`
|
||
|
|
|
||
|
|
`+M.t("modals.customStatusModal.fixErrorsBeforeSaving");new Cr.Notice(d);return}this.saved=!0,this.close()})),u)),l.addExtraButton(u=>(u.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.saved=!1,this.close()}),u))})}onOpen(){this.display()}static setValidationError(e){e.inputEl.addClass("tasks-settings-is-invalid")}static removeValidationError(e){e.inputEl.removeClass("tasks-settings-is-invalid")}static setValid(e,n){n.length===0?Bn.removeValidationError(e):Bn.setValidationError(e)}};var hb=require("obsidian");function tO(r,t,e){if(t===e||!Object.prototype.hasOwnProperty.call(r,t))return U({},r);let n={};for(let[i,s]of Object.entries(r))i===t?n[e]=s:n[i]=s;return n}var cu=class{constructor(t,e,n){this.originalName=t,this.isValid=e,this.errorMessage=n}},df=class{validateRenames(t){let e={};for(let[n,i]of Object.entries(t)){let s={};for(let[a,o]of Object.entries(t))a!==n&&(s[o]="");e[n]=this.validateRename(s,"",i)}return e}validateRename(t,e,n){if(!n||n.trim()==="")return new cu(e,!1,"Preset name cannot be empty or all whitespace");for(let i of Object.keys(t))if(i!==e&&i.trim()===n.trim())return new cu(e,!1,"A preset with this name already exists");return new cu(e,!0,null)}addPreset(t){let e=this.generateUniqueKey(t),n=U({},t);return n[e]="",{presets:n,newKey:e}}renamePreset(t,e,n){return!n||n.trim()===""||(n=n.trim(),this.wouldCreateDuplicateKey(t,e,n))?null:tO(t,e,n)}deletePreset(t,e){let n=U({},t);return delete n[e],n}updatePresetValue(t,e,n){let i=U({},t);return i[e]=n,i}wouldCreateDuplicateKey(t,e,n){let i=n.trim();if(e.trim()===i)return!1;for(let s of Object.keys(t))if(s!==e&&s.trim()===i)return!0;return!1}generateUniqueKey(t){let e="new_key",n=1;for(;Object.prototype.hasOwnProperty.call(t,`${e}_${n}`);)n++;return`${e}_${n}`}reorderPreset(t,e,n){let i=Object.keys(t),s=i.indexOf(e);if(s===-1||n<0||n>=i.length)return null;if(s===n)return U({},t);let a=[...i];a.splice(s,1),a.splice(n,0,e);let o={};for(let l of a)o[l]=t[l];return o}};Ni();vt();var ff=class{constructor(t,e){this.presetsSettingsService=new df;this.nameFields=new Map;this.plugin=t,this.events=e}renderPresetsSettings(t){let e=t.createDiv(),n=te(),i=()=>{e.empty(),this.nameFields.clear(),Object.entries(n.presets).forEach(([s,a])=>{this.renderPresetItem(e,n,s,a,i)})};i(),this.createAddNewPresetButton(t,n,i)}renderPresetItem(t,e,n,i,s){let a=t.createDiv({cls:"tasks-presets-wrapper"}),o=new hb.Setting(a);o.settingEl.addClass("tasks-presets-setting"),a.setAttribute("data-preset-key",n),o.addText(l=>{l.setPlaceholder("Name").setValue(n),l.inputEl.addClass("tasks-presets-key"),this.nameFields.set(n,{inputEl:l.inputEl,originalKey:n});let u=n;l.inputEl.addEventListener("input",d=>{u=d.target.value,this.validateAllInputs()});let c=()=>A(this,null,function*(){if(u&&u!==n){let d=this.presetsSettingsService.renamePreset(e.presets,n,u);d&&(yield this.savePresetsSettings(d,e,s))}});l.inputEl.addEventListener("blur",c),l.inputEl.addEventListener("keydown",d=>A(this,null,function*(){d.key==="Enter"&&(d.preventDefault(),l.inputEl.blur())}))}),o.addTextArea(l=>(l.inputEl.addClass("tasks-presets-value"),l.setPlaceholder("Query or filter text...").setValue(i),this.setupAutoResizingTextarea(l),l.onChange(u=>A(this,null,function*(){let c=this.presetsSettingsService.updatePresetValue(e.presets,n,u);yield this.savePresetsSettings(c,e,null)})))),o.addExtraButton(l=>{l.extraSettingsEl.addClass("tasks-presets-drag-handle"),l.setIcon("grip-vertical").setTooltip("Drag to reorder"),l.extraSettingsEl.style.cursor="grab",l.extraSettingsEl.addEventListener("mousedown",u=>{a.draggable=!0,l.extraSettingsEl.style.cursor="grabbing"}),l.extraSettingsEl.addEventListener("mouseup",u=>{l.extraSettingsEl.style.cursor="grab"})}),o.addExtraButton(l=>{l.extraSettingsEl.addClass("tasks-presets-delete-button"),l.setIcon("cross").setTooltip("Delete").onClick(()=>A(this,null,function*(){let u=this.presetsSettingsService.deletePreset(e.presets,n);yield this.savePresetsSettings(u,e,s)}))}),this.setupDragAndDrop(a,n,e,s),o.infoEl.remove()}setupDragAndDrop(t,e,n,i){t.addEventListener("dragstart",s=>{s.d
|
||
|
|
|
||
|
|
This message has been written to the console.
|
||
|
|
`,1e4)}var pf=class extends as.EditorSuggest{constructor(e,n,i){super(e);this.settings=n,this.plugin=i,e.scope.register([],"Tab",()=>{var a;let s=(a=this.context)==null?void 0:a.editor;return s?(s.exec("indentMore"),!1):!0})}onTrigger(e,n,i){if(!this.settings.autoSuggestInEditor||i===void 0)return null;let s=n.getLine(e.line);return!jS(s,e,n)||this.grabSuggestions(n,i,s).length===0?null:{start:{line:e.line,ch:0},end:{line:e.line,ch:s.length},query:s}}getSuggestions(e){return e.file===void 0?[]:this.grabSuggestions(e.editor,e.file,e.query).map(i=>pe(U({},i),{context:e}))}grabSuggestions(e,n,i){var c,d,f;let s=e.getCursor(),a=this.plugin.getTasks(),o=a.find(p=>p.taskLocation.path==n.path&&p.taskLocation.lineNumber==s.line),l=this.getMarkdownFileInfo(e),u=this.canSaveEdits(l);return(f=(d=(c=Yl()).buildSuggestions)==null?void 0:d.call(c,i,s.ch,this.settings,a,u,o))!=null?f:[]}getMarkdownFileInfo(e){return e.cm.state.field(as.editorInfoField)}canSaveEdits(e){return e instanceof as.MarkdownView}renderSuggestion(e,n){n.setText(e.displayText)}selectSuggestion(e,n){return A(this,null,function*(){var u,c,d;let i=e.context.editor;if(e.suggestionType==="empty"){this.close();let f=new KeyboardEvent("keydown",{code:"Enter",key:"Enter"});(c=(u=i==null?void 0:i.cm)==null?void 0:u.contentDOM)==null||c.dispatchEvent(f);return}if(e.taskItDependsOn!=null){let f=Pc(e.taskItDependsOn,this.plugin.getTasks().map(p=>p.id));if(e.appendText+=` ${f.id}`,e.taskItDependsOn!==f)if(e.context.file.path==f.path){let p=e.taskItDependsOn.originalMarkdown,g={line:e.taskItDependsOn.lineNumber,ch:0},b={line:e.taskItDependsOn.lineNumber,ch:p.length},v=e.context.editor.getRange(g,b);if(v!==p){let E=`Error adding new ID, due to mismatched data in Tasks memory and the editor:
|
||
|
|
task line in memory: '${e.taskItDependsOn.originalMarkdown}'
|
||
|
|
|
||
|
|
task line in editor: '${v}'
|
||
|
|
|
||
|
|
file: '${f.path}'
|
||
|
|
`;Xq(E);return}e.context.editor.replaceRange(f.toFileLineString(),g,b)}else $n({originalTask:e.taskItDependsOn,newTasks:f})}let s=e.context.editor.getCursor(),a={line:s.line,ch:(d=e.insertAt)!=null?d:s.ch},o=e.insertSkip?{line:s.line,ch:a.ch+e.insertSkip}:void 0;e.context.editor.replaceRange(e.appendText,a,o),e.context.editor.setCursor({line:s.line,ch:a.ch+e.appendText.length});let l=this.getMarkdownFileInfo(e.context.editor);this.canSaveEdits(l)&&(yield l.save())})}};Aa();var rO=(r,t,e)=>{let n,i=new Promise((l,u)=>{n=l}),s=l=>{let u=l.map(c=>c.toFileLineString()).join(`
|
||
|
|
`);n(u)},a=Ba({line:"",path:""});return new Br({app:r,task:a,onSaveSettings:e,onSubmit:s,allTasks:t}).open(),i};function iO(r,t,e,n){let i,s=new Promise((u,c)=>{i=u}),a=u=>{let c=u.map(d=>d.toFileLineString()).join(`
|
||
|
|
`);i(c)},o=Ba({line:t!=null?t:"",path:""});return new Br({app:r,task:o,onSaveSettings:n,onSubmit:a,allTasks:e}).open(),s}var sO=r=>{let t=r.app,e=()=>A(void 0,null,function*(){return yield r.saveSettings()});return{createTaskLineModal:()=>rO(t,r.getTasks(),e),editTaskLineModal:n=>iO(t,n,r.getTasks(),e),executeToggleTaskDoneCommand:(n,i)=>Ay(n,i).text}};un();Mf();var mf=class extends hf.Plugin{get apiV1(){return sO(this)}onload(){return A(this,null,function*(){yield tT(),cn.registerConsoleLogger(),ny("info",M.t("main.loadingPlugin",{name:this.manifest.name,version:this.manifest.version})),yield this.loadSettings();let{loggingOptions:e}=te();cn.configure(e),pr.getInstance().setGetFirstLinkpathDestFn((i,s)=>{let a=(0,hf.getLinkpath)(i.link),o=this.app.metadataCache.getFirstLinkpathDest(a,s);return o?o.path:null});let n=new jd({obsidianEvents:this.app.workspace});this.addSettingTab(new du({plugin:this,events:n})),ZD({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace}),yield this.loadTaskStatuses(),this.cache=new Ns({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace,events:n}),this.inlineRenderer=new tf({plugin:this,app:this.app}),this.queryRenderer=new uf({plugin:this,events:n}),this.setObsidianPropertiesTypes(),this.registerEditorExtension(Y1()),this.registerEditorSuggest(new pf(this.app,te(),this)),new $d({plugin:this})})}loadTaskStatuses(){return A(this,null,function*(){let{statusSettings:e}=te();it.applyToStatusRegistry(e,Ge.getInstance())})}onunload(){var e;ny("info",M.t("main.unloadingPlugin",{name:this.manifest.name,version:this.manifest.version})),(e=this.cache)==null||e.unload()}loadSettings(){return A(this,null,function*(){let e=yield this.loadData();st(e),e=te(),Ce.getInstance().set(e.globalFilter),Ce.getInstance().setRemoveGlobalFilter(e.removeGlobalFilter),Gn.getInstance().set(e.globalQuery),yield this.loadTaskStatuses()})}saveSettings(){return A(this,null,function*(){yield this.saveData(te())})}getTasks(){return this.cache===void 0?[]:this.cache.getTasks()}getState(){return this.cache===void 0?"Cold":this.cache.getState()}setObsidianPropertiesTypes(){var e;try{let n=this.app.metadataTypeManager,i=n.getAllProperties(),s=new Ri;for(let a of s.allPropertyNamesSorted()){let o=s.propertyType(a);((e=i[a])==null?void 0:e.type)!==o&&n.setType(a,o)}}catch(n){console.error("setObsidianPropertiesTypes error",n)}}};
|
||
|
|
/*!
|
||
|
|
* 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
|
||
|
|
*/
|
||
|
|
|
||
|
|
/* nosourcemap */
|