Files

504 lines
778 KiB
JavaScript
Raw Permalink Normal View History

2025-12-29 13:38:39 +08:00
/*
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 Kx=Object.create;var Bo=Object.defineProperty,Qx=Object.defineProperties,Zx=Object.getOwnPropertyDescriptor,Xx=Object.getOwnPropertyDescriptors,Jx=Object.getOwnPropertyNames,Yu=Object.getOwnPropertySymbols,eO=Object.getPrototypeOf,$f=Object.prototype.hasOwnProperty,Ib=Object.prototype.propertyIsEnumerable;var Nb=(r,t,e)=>t in r?Bo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,F=(r,t)=>{for(var e in t||(t={}))$f.call(t,e)&&Nb(r,e,t[e]);if(Yu)for(var e of Yu(t))Ib.call(t,e)&&Nb(r,e,t[e]);return r},de=(r,t)=>Qx(r,Xx(t));var ha=(r,t)=>{var e={};for(var n in r)$f.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&Yu)for(var n of Yu(r))t.indexOf(n)<0&&Ib.call(r,n)&&(e[n]=r[n]);return e};var Z=(r,t)=>()=>(r&&(t=r(r=0)),t);var x=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Fb=(r,t)=>{for(var e in t)Bo(r,e,{get:t[e],enumerable:!0})},Lb=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Jx(t))!$f.call(r,i)&&i!==e&&Bo(r,i,{get:()=>t[i],enumerable:!(n=Zx(t,i))||n.enumerable});return r};var Vo=(r,t,e)=>(e=r!=null?Kx(eO(r)):{},Lb(t||!r||!r.__esModule?Bo(e,"default",{value:r,enumerable:!0}):e,r)),Ub=r=>Lb(Bo({},"__esModule",{value:!0}),r);var I=(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 Te,zo,Yb,tO,nO,$b,Wb,Ko,qb,rO,Wu,iO,Kb,ga,sO,aO,qf,oO,lO,uO,jf,qu,cO,ba,Yr,Ta,ju,Qb,jb,va,Hu,Hb,Gb,Hf,Bb,Wf,Gf,dO,ya,Bf,fO,Vf,Vb,zb,$u,pO,bs,yt,T$,v$,_$,w$,k$,S$,D$,E$,x$,O$,R$,C$,M$,A$,Zb=Z(()=>{Te=r=>typeof r=="string",zo=()=>{let r,t,e=new Promise((n,i)=>{r=n,t=i});return e.resolve=r,e.reject=t,e},Yb=r=>r==null?"":""+r,tO=(r,t,e)=>{r.forEach(n=>{t[n]&&(e[n]=t[n])})},nO=/###/g,$b=r=>r&&r.indexOf("###")>-1?r.replace(nO,"."):r,Wb=r=>!r||Te(r),Ko=(r,t,e)=>{let n=Te(t)?t.split("."):t,i=0;for(;i<n.length-1;){if(Wb(r))return{};let s=$b(n[i]);!r[s]&&e&&(r[s]=new e),Object.prototype.hasOwnProperty.call(r,s)?r=r[s]:r={},++i}return Wb(r)?{}:{obj:r,k:$b(n[i])}},qb=(r,t,e)=>{let{obj:n,k:i}=Ko(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=Ko(r,a,Object);for(;o.obj===void 0&&a.length;)s=`${a[a.length-1]}.${s}`,a=a.slice(0,a.length-1),o=Ko(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},rO=(r,t,e,n)=>{let{obj:i,k:s}=Ko(r,t,Object);i[s]=i[s]||[],i[s].push(e)},Wu=(r,t)=>{let{obj:e,k:n}=Ko(r,t);if(!!e&&!!Object.prototype.hasOwnProperty.call(e,n))return e[n]},iO=(r,t,e)=>{let n=Wu(r,e);return n!==void 0?n:Wu(t,e)},Kb=(r,t,e)=>{for(let n in t)n!=="__proto__"&&n!=="constructor"&&(n in r?Te(r[n])||r[n]instanceof String||Te(t[n])||t[n]instanceof String?e&&(r[n]=t[n]):Kb(r[n],t[n],e):r[n]=t[n]);return r},ga=r=>r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),sO={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},aO=r=>Te(r)?r.replace(/[&<>"'\/]/g,t=>sO[t]):r,qf=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}},oO=[" ",",","?","!",";"],lO=new qf(20),uO=(r,t,e)=>{t=t||"",e=e||"";let n=oO.filter(a=>t.indexOf(a)<0&&e.indexOf(a)<0);if(n.length===0)return!0;let i=lO.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},jf=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},qu=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 rT,nT=Z(()=>{rT={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 sT,iT=Z(()=>{sT={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:""},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 Nt(Nt({},t[0]),t[1])}function nu(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=Xl(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 cS(r);var e=t[1];switch(e.toUpperCase()){case"RRULE":case"EXRULE":return cS(r);case"DTSTART":return nu(r);default:throw new Error("Unsupported RFC prop ".concat(e," in ").concat(r))}}function cS(r){var t=r.replace(/^RRULE:/i,""),e=nu(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=Pe[o.toUpperCase()];break;case"WKST":e.wkst=er[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=r2(o),u=a.toLowerCase();e[u]=l;break;case"BYWEEKDAY":case"BYDAY":e.byweekday=i2(o);break;case"DTSTART":case"TZID":var c=nu(r);e.tzid=c.tzid,e.dtstart=c.dtstart;break;case"UNTIL":e.until=Xl(o);break;case"BYEASTER":e.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+a+"'")}}),e}function r2(r){if(r.indexOf(",")!==-1){var t=r.split(",");return t.map(dS)}return dS(r)}function dS(r){return/^[+-]?\d+$/.test(r)?Number(r):r}function i2(r){var t=r.split(",");return t.map(function(e){if(e.length===2)return er[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=er[s].weekday;return new ft(a,i)})}var Jg=Z(()=>{Br();_i();As();Ht();Jn()});var Fs,Kc=Z(()=>{Ht();Fs=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=Ya(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:Qk(this.date,this.tzid)},r}()});function iu(r){for(var t=[],e="",n=Object.keys(r),i=Object.keys(tu),s=0;s<n.length;s++)if(n[s]!=="tzid"&&!!Fe(i,n[s])){var a=n[s].toUpperCase(),o=r[n[s]],l="";if(!(!Je(o)||Pt(o)&&!o.length)){switch(a){case"FREQ":l=oe.FREQUENCIES[r.freq];break;case"WKST":On(o)?l=new ft(o).toString():l=o.toString();break;case"BYWEEKDAY":a="BYDAY",l=Gk(o).map(function(p){return p instanceof ft?p:Pt(p)?new ft(p[0],p[1]):new ft(p)}).toString();break;case"DTSTART":e=s2(o,r.tzid);break;case"UNTIL":l=Ya(o,!r.tzid);break;default:if(Pt(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 b=p[0],T=p[1];return"".concat(b,"=").concat(T.toString())}).join(";"),f="";return d!==""&&(f="RRULE:".concat(d)),[e,f].filter(function(p){return!!p}).join(`
`)}function s2(r,t){return r?"DTSTART"+new Fs(new Date(r),t).toString():""}var ey=Z(()=>{Jn();rn();As();Ht();Kc()});function a2(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 fS,pS=Z(()=>{Bc();Ht();rn();fS=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?Gc(e):zg(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(!a2(e[f],c[f]))return!0}return!1},a=this[t];if(t==="all")n=this.all;else if(Pt(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 vi(t,e),o=0;o<this.all.length&&u.accept(this.all[o]);o++);n=u.getValue(),this._cacheAdd(t,n,e)}return Pt(n)?zg(n):n instanceof Date?Gc(n):n},r}()});var mS,hS,o2,l2,Bi,Gt,gS,yS,u2,c2,Vi,Bt,bS,TS,vS,_S,ty,wS=Z(()=>{Br();rn();mS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ie(1,31),!0),Ie(2,28),!0),Ie(3,31),!0),Ie(4,30),!0),Ie(5,31),!0),Ie(6,30),!0),Ie(7,31),!0),Ie(8,31),!0),Ie(9,30),!0),Ie(10,31),!0),Ie(11,30),!0),Ie(12,31),!0),Ie(1,7),!0),hS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Ie(1,31),!0),Ie(2,29),!0),Ie(3,31),!0),Ie(4,30),!0),Ie(5,31),!0),Ie(6,30),!0),Ie(7,31),!0),Ie(8,31),!0),Ie(9,30),!0),Ie(10,31),!0),Ie(11,30),!0),Ie(12,31),!0),Ie(1,7),!0),o2=Xn(1,29),l2=Xn(1,30),Bi=Xn(1,31),Gt=Xn(1,32),gS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Gt,!0),l2,!0),Gt,!0),Bi,!0),Gt,!0),Bi,!0),Gt,!0),Gt,!0),Bi,!0),Gt,!0),Bi,!0),Gt,!0),Gt.slice(0,7),!0),yS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Gt,!0),o2,!0),Gt,!0),Bi,!0),Gt,!0),Bi,!0),Gt,!0),Gt,!0),Bi,!0),Gt,!0),Bi,!0),Gt,!0),Gt.slice(0,7),!0),u2=Xn(-28,0),c2=Xn(-29,0),Vi=Xn(-30,0),Bt=Xn(-31,0),bS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Bt,!0),c2,!0),Bt,!0),Vi,!0),Bt,!0),Vi,!0),Bt,!0),Bt,!0),Vi,!0),Bt,!0),Vi,!0),Bt,!0),Bt.slice(0,7),!0),TS=Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q([],Bt,!0),u2,!0),Bt,!0),Vi,!0),Bt,!0),Vi,!0),Bt,!0),Bt,!0),Vi,!0),Bt,!0),Vi,!0),Bt,!0),Bt.slice(0,7),!0),vS=[0,31,60,91,121,152,182,213,244,274,305,335,366],_S=[0,31,59,90,120,151,181,212,243,273,304,334,365],ty=function(){for(var r=[],t=0;t<55;t++)r=r.concat(Xn(7));return r}()});function kS(r,t){var e=Gr(r,1,1),n=Ua(r)?366:365,i=Ua(r+1)?366:365,s=Zl(e),a=bi(e),o=Nt(Nt({yearlen:n,nextyearlen:i,yearordinal:s,yearweekday:a},d2(r)),{wnomask:null});if(Rn(t.byweekno))return o;o.wnomask=Ie(0,n+7);var l,u,c=l=jt(7-a+t.wkst,7);c>=4?(c=0,u=o.yearlen+jt(a-t.wkst,7)):u=n-c;for(var d=Math.floor(u/7),f=jt(u,7),p=Math.floor(d+f/4),b=0;b<t.byweekno.length;b++){var T=t.byweekno[b];if(T<0&&(T+=p+1),T>0&&T<=p){var v=void 0;T>1?(v=c+(T-1)*7,c!==l&&(v-=7-l)):v=c;for(var O=0;O<7&&(o.wnomask[v]=1,v++,o.wdaymask[v]!==t.wkst);O++);}}if(Fe(t.byweekno,1)){var v=c+p*7;if(c!==l&&(v-=7-l),v<n)for(var b=0;b<7&&(o.wnomask[v]=1,v+=1,o.wdaymask[v]!==t.wkst);b++);}if(c){var E=void 0;if(Fe(t.byweekno,-1))E=-1;else{var P=bi(Gr(r-1,1,1)),Y=jt(7-P.valueOf()+t.wkst,7),j=Ua(r-1)?366:365,ae=void 0;Y>=4?(Y=0,ae=j+jt(P-t.wkst,7)):ae=n-c,E=Math.floor(52+jt(ae,7)/4)}if(Fe(t.byweekno,E))for(var v=0;v<c;v++)o.wnomask[v]=1}return o}function d2(r){var t=Ua(r)?366:365,e=Gr(r,1,1),n=bi(e);return t===365?{mmask:mS,mdaymask:yS,nmdaymask:TS,wdaymask:ty.slice(n),mrange:_S}:{mmask:hS,mdaymask:gS,nmdaymask:bS,wdaymask:ty.slice(n),mrange:vS}}var SS=Z(()=>{Br();Ht();rn();wS()});function DS(r,t,e,n,i,s){var a={lastyear:r,lastmonth:t,nwdaymask:[]},o=[];if(s.freq===oe.YEARLY)if(Rn(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(Rn(o))return a;a.nwdaymask=Ie(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,b=s.bynweekday[f],T=b[0],v=b[1];v<0?(p=d+(v+1)*7,p-=jt(i[p]-T,7)):(p=c+(v-1)*7,p+=jt(7-i[p]+T,7)),c<=p&&p<=d&&(a.nwdaymask[p]=1)}return a}var ES=Z(()=>{Jn();rn()});function xS(r,t){t===void 0&&(t=0);var e=r%
`),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 w2(r){r.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function LS(r,t){return w2(t),r.split(",").map(function(e){return Xl(e)})}var FS,iy=Z(()=>{Br();Jn();ay();Ht();rn();Jg();FS={dtstart:null,cache:!1,unfold:!1,forceset:!1,compatible:!1,tzid:null}});function US(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 YS(r,t){if(!(r instanceof oe))throw new TypeError(String(r)+" is not RRule instance");Fe(t.map(String),String(r))||t.push(r)}function $S(r,t){if(!(r instanceof Date))throw new TypeError(String(r)+" is not Date instance");Fe(t.map(Number),Number(r))||(t.push(r),Ti(t))}function WS(r,t,e){var n=!e||e.toUpperCase()==="UTC",i=n?"".concat(r,":"):"".concat(r,";TZID=").concat(e,":"),s=t.map(function(a){return Ya(a.valueOf(),n)}).join(",");return"".concat(i).concat(s)}var sy,ay=Z(()=>{Br();Jn();Ht();rn();IS();iy();ey();sy=function(r){$a(t,r);function t(e){e===void 0&&(e=!1);var n=r.call(this,{},e)||this;return n.dtstart=US.apply(n,["dtstart"]),n.tzid=US.apply(n,["tzid"]),n._rrule=[],n._rdate=[],n._exrule=[],n._exdate=[],n}return t.prototype._iter=function(e){return NS(e,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},t.prototype.rrule=function(e){YS(e,this._rrule)},t.prototype.exrule=function(e){YS(e,this._exrule)},t.prototype.rdate=function(e){$S(e,this._rdate)},t.prototype.exdate=function(e){$S(e,this._exdate)},t.prototype.rrules=function(){return this._rrule.map(function(e){return Zc(e.toString())})},t.prototype.exrules=function(){return this._exrule.map(function(e){return Zc(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(iu({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(WS("RDATE",this._rdate,this.tzid())),this._exdate.length&&e.push(WS("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 qS=Z(()=>{Jn();ay();iy();_i();As();Ht()});var Dt,Xc=Z(()=>{"use strict";qS();Dt=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 Dt({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(de(F({},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=Dt.nextAfterMonths(t,n,e,s[1])));let a=i.match(/every( \d+)? year(s)?(.*)?/);return a!==null&&(n=Dt.nextAfterYears(t,n,e,a[1])),Dt.addTimezone(n)}static nextAfterMonths(t,e,n,i){let s=1;for(i!==void 0&&(s=Number.parseInt(i.trim(),10));Dt.isSkippingTooManyMonths(t,e,s);)e=Dt.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));Dt.isSkippingTooManyYears(t,e,s);)e=Dt.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 jS(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 su,Jc,zr,Ls=Z(()=>{"use strict";su=(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))(su||{}),Jc=Object.values(su),zr=class{constructor(){this.visible={};this.tagsVisible=!0;Jc.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 R2(r,t,e){let n=W2(t.substring(0,e),[["(",")"],["[","]"]])=="("?")":"]",i=r?n+" ":" ",s=r&&t.length>e&&t.charAt(e)===n?1:0;return{postfix:i,insertSkip:s}}function C2(r,t,e){let n=[],i=e.line;Ws(n,i,r.dueDateSymbol,"due date"),Ws(n,i,r.startDateSymbol,"start date"),Ws(n,i,r.scheduledDateSymbol,"scheduled date"),M2(n,r,e),Ws(n,i,r.recurrenceSymbol,"recurring (repeat)"),A2(n,r,e),ZS(t)&&(Ws(n,i,r.idSymbol,"id"),Ws(n,i,r.dependsOnSymbol,"depends on id")),Ws(n,i,r.onCompletionSymbol,"on completion");let s=P2(n,e);return s.length===0&&e.settings.autoSuggestMinMatch===0?n:s}function Ws(r,t,e,n){t.includes(e)||r.push({displayText:`${e} ${n}`,appendText:`${e} `})}function M2(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 A2(r,t,e){if(!e.line.includes(t.createdDateSymbol)){let i=xn.parseDate("today",!0).format(fe.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 P2(r,t){let e=Va(/([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 XS(r,t){let e=`${t}`,n=`${r} ${t}`;return{displayText:e,appendText:n}}function N2(r,t){let n=`${xn.parseDate(t,!0).format(fe.dateFormat)}`,i=`${t} (${n})`,s=`${r} ${n}`;return{displayText:i,appendText:s}}function I2(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=Va(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=o&&o.length>1?xn.parseDate(Yc(o),!0):null;if(l!=null&&l.isValid()){let c=l.format(fe.dateFormat);ad(e,a,[c],XS,i)}let u=dy(n,o,t,!0);ad(e,a,u,N2,i)}return i}function F2(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=Va(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=Dt.fromText({recurrenceRuleText:l,occurrence:new Zn({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:fy(s[0],t)}),s[0]==p)return[]}}let u=t.settings.autoSuggestMaxItems/2,c=dy(e,l,u,!1);c.length===0&&l.trim().length===0&&(c=e.slice(0,u)),ad(t,s,c,(f,p)=>{let b=`${p}`,T=`${f} ${p}`;return{displayText:b,appendText:T}},n)}return n}function L2(r,t,e){let n=["delete","keep"],i=[],s=new RegExp(`(${r})\\s*([0-9a-zA-Z ]*)`,"ug"),a=Va(s,e);if(a&&a.length>=2){let o=a[2];if(o.length<e.settings.autoSuggestMinMatch)return[];let l=dy(n,o,t,!0);ad(e,a,l,XS,i)}return i}function U2(r,t,e){let n=[],i=new RegExp(`(${r})\\s*(${Us.source})?`,"ug"),s=Va(i,e);if(s&&s[0].trim().length<=r.length){let a=lu(t.map(o=>o.id));n.push({suggestionType:"match",displayText:"generate unique id",appendText:`${r} ${a}`+e.postfix,insertAt:s.index,insertSkip:fy(s[0],e)})}return n}function Y2(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 rD(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)}: ${H2(o)}`).join(`
`)}`}return e}var nD,gy=Z(()=>{"use strict";nD={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 postpone, edit and backinks
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 ld,iD=Z(()=>{"use strict";ld=class{constructor(t=!1,e=!1,n=!1){this.ignoreSortInstructions=t,this.showTaskHiddenData=e,this.recordTimings=n}}});var et,za=Z(()=>{"use strict";Er();et=class{constructor(){this.coreStatuses=[ge.TODO.configuration,ge.DONE.configuration],this.customStatuses=[ge.IN_PROGRESS.configuration,ge.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 ge(t);return e.findIndex(i=>new ge(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){et.deleteAllCustomStatuses(t),new et().customStatuses.forEach(n=>{et.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.`):et.addStatus(t.customStatuses,ge.createFromImportedValue(i))}),n}static allStatuses(t){return t.coreStatuses.concat(t.customStatuses)}static applyToStatusRegistry(t,e){e.clearStatuses(),et.allStatuses(t).forEach(n=>{e.add(n)})}}});var aD,sD=Z(()=>{aD=[{index:9999,internalName:"INTERNAL_TESTING_ENABLED_BY_DEFAULT",displayName:"Test Item. Used to validate the Feature Framework.",description:"Description",enabledByDefault:!0,stable:!1}]});var ki,oD=Z(()=>{"use strict";sD();ki=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 aD.forEach(e=>{t=[...t,new ki(e.internalName,e.index,e.description,e.displayName,e.enabledByDefault,e.stable)]}),t}static get settingsFlags(){let t={};return ki.values.forEach(e=>{t[e.internalName]=e.enabledByDefault}),t}static fromString(t){for(let e of ki.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 yy(r,t){for(let e in r)t[e]===void 0&&(t[e]=r[e])}function du(){return xr[re().taskFormat]}function B2(r){let t=F({},r);return"includes"in t&&!("presets"in t)&&(t.presets=t.includes,delete t.includes),t}var xr,by,Si,re,nt,qs,lD,At=Z(()=>{"use strict";py();ou();hy();Cn();Er();tD();hy();Ui();gy();iD();za();oD();xr={tasksPluginEmoji:{getDisplayName:()=>M.t("settings.format.displayName.tasksEmojiFormat"),taskSerializer:new Ys(au),buildSuggestions:cy(au,uy,!1)},dataview:{getDisplayName:()=>M.t("settings.format.displayName.dataview"),taskSerializer:new od,buildSuggestions:JS(cy(my,uy,!0),[["(",")"],["[","]"]])}},by={presets:nD,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 et,features:ki.settingsFlags,generalSettings:{},headingOpened:{},debugSettings:new ld,loggingOptions:{minLevels:{"":"info",tasks:"info","tasks.Cache":"info","tasks.Events":"info","tasks.File":"info","tasks.Query":"info","tasks.Task":"info"}}},Si=F({},by);re=()=>(yy(ki.settingsFlags,Si.features),yy(by.loggingOptions.minLevels,Si.loggingOptions.minLevels),yy(by.debugSettings,Si.debugSettings),Si.statusSettings.customStatuses.forEach((r,t,e)=>{var i,s;let n=ge.getTypeFromStatusTypeString(r.type);e[t]=new gt((i=r.symbol)!=null?i:" ",r.name,(s=r.nextStatusSymbol)!=null?s:"x",r.availableAsCommand,n)}),F({},Si)),nt=r=>{let t=B2(r);return Si=F(F({},Si),t),re()},qs=(r,t)=>(Si.generalSettings[r]=t,re()),lD=r=>{var t;return(t=Si.features[r])!=null?t:!1}});function ud(r){let e={"<":"&lt;",">":"&gt;","&":"&amp;",'"':"&quot;"}[r];return e!==void 0?e:r}funct
\`\`\`${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;
${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=uD(t.name),i=t.type;if(e){let s=ud(t.symbol),a=ud(t.nextStatusSymbol),o=`[${s}] -> [${a}]`,l=`'${n}'`,u=`(${i})`;return`["${l}<br>${o}<br>${u}"]:::${i}`}else return`["${n}"]:::${i}`}}});var Qr,dD=Z(()=>{"use strict";Qr=class{constructor(t,e){this.name=t,this.sortOrder=e}get groupText(){return this.name!==""?`%%${this.sortOrder}%% ${this.name}`:""}}});var fD,Ft,cd=Z(()=>{"use strict";fD=require("obsidian");dD();li();Ft=class{constructor(t){this._date=null;this._date=t}get moment(){return this._date}formatAsDate(t=""){return this.format(fe.dateFormat,t)}formatAsDateAndTime(t=""){return this.format(fe.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 Qr("Overdue",1):e.isSame(t,"day")?new Qr("Today",2):e.isValid()?new Qr("Future",3):new Qr("Invalid date",0):new Qr("Undated",4)}get fromNow(){let t=this.moment;if(!t)return new Qr("",0);let e=this.fromNowOrder(t);return new Qr(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 fD.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 hD=x((pD,mD)=>{(function(r){var t=Object.hasOwnProperty,e=Array.isArray?Array.isArray:function(y){return Object.prototype.toString.call(y)==="[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 y=Object.getOwnPropertyNames(m);return y.push.apply(y,Object.getOwnPropertySymbols(m)),y}: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,y){var _="(node) warning: possible EventEmitter memory leak detected. "+m+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(_+=" Event name: "+y+"."),typeof process!="undefined"&&process.emitWarning){var w=new Error(_);w.name="MaxListenersExceededWarning",w.emitter=this,w.count=m,process.emitWarning(w)}else console.error(_),console.trace&&console.trace()}var p=function(m,y,_){var w=arguments.length;switch(w){case 0:return[];case 1:return[m];case 2:return[m,y];case 3:return[m,y,_];default:for(var S=new Array(w);w--;)S[w]=arguments[w];return S}};function b(m,y){for(var _={},w,S=m.length,C=y?y.length:0,L=0;L<S;L++)w=m[L],_[w]=L<C?y[L]:r;return _}function T(m,y,_){this._emitter=m,this._target=y,this._listeners={},this._listenersCount=0;var w,S;if((_.on||_.off)&&(w=_.on,S=_.off),y.addEventListener?(w=y.addEventListener,S=y.removeEventListener):y.addListener?(w=y.addListener,S=y.removeListener):y.on&&(w=y.on,S=y.off),!w&&!S)throw Error("target does not implement any known event API");if(typeof w!="function")throw TypeError("on method must be a function");if(typeof S!="function")throw TypeError("off method must be a function");this._on=w,this._off=S;var C=m._observers;C?C.push(this):m
`),this.dateFromFileName=new Ka(()=>Lt.fromPath(this.filePath))}parseFileContent(){if(this.listItems===void 0)return this.tasks;let t=new mt(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=Gs.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 Ut(t,a,n.position.start.line,i,Gs.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=pe.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 pe(de(F({},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=nr.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 Gs=class{constructor({metadataCache:t,vault:e,workspace:n,events:i}){this.logger=an.getLogger("tasks.Cache");this.notifySubscribersDebounced=(0,TD.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 Gu,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",()=>I(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}=re(),e=this.vault.on("create",s=>{s instanceof Qa.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 Qa.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 Qa.TFile&&(this.logger.debug(`Cache.subscribeToVault.renamedEventReference() ${s.path}`),this.tasksMutex.runExclusive(()=>{let o=this.metadataCache.getFileCache(s),l=new mt(s.path,o!=null?o:void 0),u=new Ka(()=>Lt.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 Qa.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 Vy=require("obsidian");var wE=require("obsidian");function tt(){}function Ey(r){return r()}function vD(){return Object.create(null)}function zt(r){r.forEach(Ey)}function yd(r){return typeof r=="function"}function Zr(r,t){return r!=r?t==t:r!==t||r&&typeof r=="object"||typeof r=="function"}function _D(r){return Object.keys(r).length===0}var wD=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global,pu=class{constructor(t){this.options=t,this._listeners="WeakMap"in wD?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)pu.entries.set(i.target,i),(n=this._listeners.get(i.target))===null||n===void 0||n(i)})}};pu.entries="WeakMap"in wD?new WeakMap:void 0;var kD=!1;function K2(){kD=!0}function Q2(){kD=!1}function z(r,t){r.appendChild(t)}function Ee(r,t,e){r.insertBefore(t,e||null)}function _e(r){r.parentNode&&r.parentNode.removeChild(r)}function zs(r,t){for(let e=0;e<r.length;e+=1)r[e]&&r[e].d(t)}function ue(r){return document.createElement(r)}function Z2(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function Ve(r){return document.createTextNode(r)}function xe(){return Ve(" ")}function bd(){return Ve("")}function We(r,t,e,n){return r.addEventListener(t,e,n),()=>r.removeEventListener(t,e,n)}function SD(r){return function(t){return t.preventDefault(),r.call(this,t)}}function B(r,t,e){e==null?r.removeAttribute(t):r.getAttribute(t)!==e&&r.setAttribute(t,e)}function DD(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 X2(r){return Array.from(r.childNodes)}function ir(r,t){t=""+t,r.data!==t&&(r.data=t)}function mn(r,t){r.value=t==null?"":t}function xy(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 ED(r){let t=r.querySelector(":checked");return t&&t.__value}var hd;function J2(){if(hd===void 0){hd=!1;try{typeof window!="undefined"&&window.parent&&window.parent.document}catch(r){hd=!0}}return hd}function xD(r,t){getComputedStyle(r).position==="static"&&(r.style.position="relative");let n=ue("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=J2(),s;return i?(n.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",s=We(window,"message",a=>{a.source===n.contentWindow&&t()})):(n.src="about:blank",n.onload=()=>{s=We(n.contentWindow,"resize",t),t()}),z(r,n),()=>{(i||s&&n.contentWindow)&&s(),_e(n)}}function Ei(r,t,e){r.classList[e?"add":"remove"](t)}var eo=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=Z2(e.nodeName):this.e=ue(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)Ee(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(_e)}};var mu;function fu(r){mu=r}function eU(){if(!mu)throw new Error("Function called outside component initialization");return mu}function Oy(r){eU().$$.on_mount.push(r)}var Xa=[];var ot=[],Ja=[],Sy=[],tU=Promi
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.
`;Ed(c);return}let u=Math.min(Math.pow(10,s),100);o.debug(`timeout = ${u}`),setTimeout(()=>I(void 0,null,function*(){yield dE({originalTask:r,newTasks:t,vault:e,metadataCache:n,workspace:i,previousTries:s+1})}),u)});try{let[u,c,d]=yield fE(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 Xi){u.message&&cE(u.message),yield l();return}else if(u instanceof xd){yield l();return}else u instanceof Error&&Ed(u.message)}});function fE(r,t){return I(this,null,function*(){if(vu===void 0)throw new Xi;let e=t.getAbstractFileByPath(r.path);if(!(e instanceof _u.TFile))throw new Xi(`Tasks: No file found for task ${r.description}. Retrying ...`);if(!NU.includes(e.extension))throw new Error(`Tasks: Does not support files with the ${e.extension} file extension.`);let n=vu.getFileCache(e);if(n==null||n===null)throw new Xi(`Tasks: No file cache found for file ${e.path}. Retrying ...`);let i=n.listItems;if(i===void 0||i.length===0)throw new Xi(`Tasks: No list items found in file cache of ${e.path}. Retrying ...`);let a=(yield t.read(e)).split(`
`),o=FU(r,a,i,IU);if(o===void 0)throw new xd;return[o,e,a]})}function jy(r,t){return I(this,null,function*(){try{let[e,n,i]=yield fE(r,t);return[e,n]}catch(e){e instanceof Xi?e.message&&cE(e.message):e instanceof Error&&Ed(e.message)}})}function pE(r,t){return r<t.length}function FU(r,t,e,n){let i=LU(r,t);return i!==void 0||(i=UU(r,t),i!==void 0)?i:YU(r,t,e,n)}function LU(r,t){let e=r.taskLocation.lineNumber;if(pE(e,t)&&t[e]===r.originalMarkdown)return Od().debug(`Found original markdown at original line number ${e}`),e}function UU(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 YU(r,t,e,n){let i,s=0;for(let a of e){let o=a.position.start.line;if(!pE(o,t))return;if(o<r.taskLocation.sectionStart||a.task===void 0)continue;let l=t[o];if(Ae.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}$c();ja();Xc();It();id();Cn();var ao=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=Ae.getInstance().removeAsWordFrom(t.description),i=n!=t.description||!Ae.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 ao({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 I(this,null,function*(){let n=this.description.trim();this.addGlobalFilterOnSave&&(n=Ae.getInstance().prependTo(n));let i=Cs(this.startDate,this.forwardOnly),s=Cs(this.scheduledDate,this.forwardOnly),a=Cs(this.dueDate,this.forwardOnly),o=Cs(this.cancelledDate,this.forwardOnly),l=Cs(this.createdDate,this.forwardOnly),u=Cs(this.doneDate,this.forwardOnly),c=null;this.recurrenceRule&&(c=Dt.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Zn({startDate:i,scheduledDate:s,dueDate:a})}));let d=this.onCompletion,f=[];for(let E of this.blockedBy){let P=yield $U(E,e);f.push(P)}let p=t.id,b=[],T=[];(this.blocking.toString()!==this.originalBlocking.toString()||this.blocking.length!==0)&&(t.id===""&&(p=lu(e.filter(E=>E.id!=="").map(E=>E.id))),b=this.originalBlocking.filter(E=>!this.blocking.includes(E)),T=this.blocking.filter(E=>!this.originalBlocking.includes(E)));let v=new pe(de(F({},t),{description:n,status:t.status,priority:Mn.priorityValue(this.priority),onCompletion:d,recurrence:c,startDate:i,scheduledDate:s,dueDate:a,doneDate:u,createdDate:l,cancelledDate:o,dependsOn:f.map(E=>E.id),id:p}));for(let E of b){let P=zS(E,v);yield Nn({originalTask:E,newTasks:P})}for(let E of T){let P=VS(E,v);yield Nn({originalTask:E,newTasks:P})}let O=this.inferTodaysDate(this.status.type,u,o);return v.handleNewStatusWithRecurrenceInUsersOrder(this.status,O)})}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=Dt.fromText({recurrenceRuleText:this.recurrenceRule,occurrence:new Zn({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 $U(r,t){return I(this,null,function*(){if(r.id!=="")return r;let e=t.filter(i=>i.id!==""),n=rd(r,e.map(i=>i.id));return yield Nn({originalTask:r,newTasks:n}),n})}At();function WU(r){let t,e=Yt("Recurs",r[2])+"",n,i,s,a,o,l,u,c,d;return{c(){t=ue("label"),n=xe(),i=ue("input"),s=xe(),a=ue("code"),o=Ve(r[4]),l=xe(),u=new eo(!1),B(t,"for","recurrence"),B(i,"id","recurrence"),B(i,"type","text"),B(i,"class","tasks-modal-date-input"),B(i,"placeholder","Try 'every day when done'"),B(i,"accesskey",r[2]),Ei(i,"tasks-modal-error",!r[1]),u.a=null,B(a,"class","tasks-modal-parsed-date")},m(f,p){Ee(f,t,p),t.innerHTML=e,Ee(f,n,p),E
`);t.setLine(o,b)};new ei({app:n,task:u,onSubmit:c,allTasks:i}).open()};var zy=require("obsidian");Kr();It();li();var SE=(r,t,e)=>{var c;if(r)return e instanceof zy.MarkdownView;if(!(e instanceof zy.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=Ky(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(eY(i,o))},Ky=(r,t)=>{let e=pe.fromLine({line:r,taskLocation:Ut.fromUnknownPosition(new mt(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(fe.taskRegex);if(n!==null){let i=n[3],a=$e.getInstance().bySymbol(i).nextStatusSymbol;return{text:r.replace(fe.taskRegex,`$1- [${a}] $4`)}}else if(fe.listItemRegex.test(r)){let i=r.replace(fe.listItemRegex,"$1$2 [ ]");return{text:i,moveTo:{ch:i.length}}}else{let i=r.replace(fe.indentationRegex,"$1- ");return{text:i,moveTo:{ch:i.length}}}}},eY=(r,t)=>{var s;let e={line:0,ch:r.ch},n=F(F({},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 bb=require("obsidian");At();var Ji=class{constructor(){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 DE(r,t,e){let n=new Map([["backlink","hideBacklinks"],["edit button","hideEditButton"],["postpone button","hidePostponeButton"],["task count","hideTaskCount"],["tree","hideTree"],["urgency","hideUrgency"]]);for(let[i,s]of n.entries())if(t.startsWith(i))return r[s]=e,!0;return!1}Ls();function ea(r,t){let e=`Error: ${r}.
The error message was:
`,n="";return t instanceof Error?n+=t:n+="Unknown error",`${e}"${n}"`}js();var tY=Object.prototype.toString,uo=Array.isArray||function(t){return tY.call(t)==="[object Array]"};function Zy(r){return typeof r=="function"}function nY(r){return uo(r)?"array":typeof r}function Qy(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function EE(r,t){return r!=null&&typeof r=="object"&&t in r}function rY(r,t){return r!=null&&typeof r!="object"&&r.hasOwnProperty&&r.hasOwnProperty(t)}var iY=RegExp.prototype.test;function sY(r,t){return iY.call(r,t)}var aY=/\S/;function oY(r){return!sY(aY,r)}var lY={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};function uY(r){return String(r).replace(/[&<>"'`=\/]/g,function(e){return lY[e]})}var cY=/\s*/,dY=/\s+/,xE=/\s*=/,fY=/\s*\}/,pY=/#|\^|\/|>|\{|&|=|!/;function mY(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 b(J){if(typeof J=="string"&&(J=J.split(dY,2)),!uo(J)||J.length!==2)throw new Error("Invalid tags: "+J);d=new RegExp(Qy(J[0])+"\\s*"),f=new RegExp("\\s*"+Qy(J[1])),p=new RegExp("\\s*"+Qy("}"+J[1]))}b(t||lr.tags);for(var T=new ku(r),v,O,E,P,Y,j;!T.eos();){if(v=T.pos,E=T.scanUntil(d),E)for(var ae=0,H=E.length;ae<H;++ae)P=E.charAt(ae),oY(P)?(s.push(i.length),l+=P):(o=!0,e=!0,l+=" "),i.push(["text",P,v,v+1]),v+=1,P===`
`&&(c(),l="",u=0,e=!1);if(!T.scan(d))break;if(a=!0,O=T.scan(pY)||"name",T.scan(cY),O==="="?(E=T.scanUntil(xE),T.scan(xE),T.scanUntil(f)):O==="{"?(E=T.scanUntil(p),T.scan(fY),T.scanUntil(f),O="&"):E=T.scanUntil(f),!T.scan(f))throw new Error("Unclosed tag at "+T.pos);if(O==">"?Y=[O,E,v,T.pos,l,u,e]:Y=[O,E,v,T.pos],u++,i.push(Y),O==="#"||O==="^")n.push(Y);else if(O==="/"){if(j=n.pop(),!j)throw new Error('Unopened section "'+E+'" at '+v);if(j[1]!==E)throw new Error('Unclosed section "'+j[1]+'" at '+v)}else O==="name"||O==="{"||O==="&"?o=!0:O==="="&&b(E)}if(c(),j=n.pop(),j)throw new Error('Unclosed section "'+j[1]+'" at '+T.pos);return gY(hY(i))}function hY(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 gY(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 ku(r){this.string=r,this.tail=r,this.pos=0}ku.prototype.eos=function(){return this.tail===""};ku.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};ku.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 lo(r,t){this.view=r,this.cache={".":this.view},this.parent=t}lo.prototype.push=function(t){return new lo(t,this)};lo.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=EE(s,a[o])||rY(s,a[o])),s=s[a[o++]];else s=i.view[t],l=EE(i.view,t);if(l){n=s;break}i=i.parent}e[t]=n}return Zy(n)&&(n=n.call(this.view)),n};function un(){this.templateCache={_cache:{},set:function(t,e){this._cache[t]=e},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}un.prototype.clearCache=function(){typeof this.templateCache!="undefined"&&this.templateCache.clear()};un.prototype.parse=function(t,e){var n=this.templateCache,i=t+":"+(e||lr.tags).join(":"),s=typeof n!="undefined",a=s?n.get(i):void 0;return a==null&&(a=mY(t,e),s&&n.set(i,a)),a};un.prototype.render=function(t,e,n,i){var s=this.getConfigTags(i),a=this.parse(t,s),o=e instanceof lo?e:new lo(e,void 0);return this.renderTokens(a,o,n,t,i)};un.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};un.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(uo(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(Zy(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}};un.prototype.renderInverted=function(t,e,n,i,s){var a=e.lookup(t[1]);if(!a||uo(a)&&a.length===0)return this.renderTokens(t[4],e,n,i,s)};un.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(`
`)};un.prototype.renderPartial=function(t,e,n,i){if(!!n){var s=this.getConfigTags(i),a=Zy(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)}}};un.prototype.unescapedValue=function(t,e){var n=e.lookup(t[1]);if(n!=null)return n};un.prototype.escapedValue=function(t,e,n){var i=this.getConfigEscape(n)||lr.escape,s=e.lookup(t[1]);if(s!=null)return typeof s=="number"&&i===lr.escape?String(s):i(s)};un.prototype.rawValue=function(t){return t[1]};un.prototype.getConfigTags=function(t){return uo(t)?t:t&&typeof t=="object"?t.tags:void 0};un.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!uo(t))return t.escape};var lr={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){wu.templateCache=r},get templateCache(){return wu.templateCache}},wu=new un;lr.clearCache=function(){return wu.clearCache()};lr.parse=function(t,e){return wu.parse(t,e)};lr.render=function(t,e,n,i){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+nY(t)+'" was given as the first argument for mustache#render(template, view, partials)');return wu.render(t,e,n,i)};lr.escape=uY;lr.Scanner=ku;lr.Context=lo;lr.Writer=un;var Xy=lr;var AE=Vo(ME());var ti=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 ti(t);return n._queryComponent=e,n}static fromError(t,e){let n=new ti(t);return n._error=e,n}};var Su=class extends ti{};function Du(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?Su.fromObject(t,i):Su.fromError(t,`Problem parsing expression "${t}"`)}catch(e){return Su.fromError(t,ea(`Failed parsing expression "${t}"`,e))}}function Eu(r,t){let e=t.map(([n,i])=>i);return r(...e)}function eb(r,t,e){try{return Eu(r,t)}catch(n){return ea(`Failed calculating expression "${e}"`,n)}}function tb(r,t){Xy.escape=function(e){return e};try{let e=bY(r,t);return Xy.render(e,(0,AE.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 yY=new RegExp(["\\{\\{","(.*?)","\\}\\}"].join(""),"g");function bY(r,t){return r.replace(yY,(e,n)=>{let i=TY(t),s=Du(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 TY(r){return Object.entries(r)}At();function nb(r){return rb(r,[])}function rb(r,t){return{query:{file:r,allTasks:t,searchCache:{}},preset:F({},re().presets)}}gy();At();var co=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}=re();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}};sn();var He=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 He("None of",t,"NOT")}static booleanXor(t){return new He("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 He(t,e,n)}};var fo=class{matchesAnyOf(t){return t.some(e=>this.matches(e))}};var po=class extends fo{constructor(e){super();this.stringToFind=e}matches(e){return po.stringIncludesCaseInsensitive(e,this.stringToFind)}static stringIncludesCaseInsensitive(e,n){return e.toLocaleLowerCase().includes(n.toLocaleLowerCase())}explanation(e){return new He(e)}};var es=class extends fo{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 es(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=vY(e,"using regex: ",this.regexAsString());return new He(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 vY(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 cn=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 Ar=class{constructor(t,e,n,i){this._statement=new cn(t,t),this.property=e,this.comparator=Ar.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?Ar.makeReversedComparator(e):e}static makeReversedComparator(t){return(e,n,i)=>t(e,n,i)*-1}};uu();var ts=class{constructor(t,e,n,i){this._statement=new cn(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 qe=class{canCreateFilterForLine(t){return qe.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 zi(this.fieldNameSingular())}supportsSorting(){return!1}createSorterFromLine(t){if(!this.supportsSorting())return null;let e=qe.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 Ar(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=qe.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 ts(this.grouperInstruction(t),this.fieldNameSingular(),this.grouper(),t)}createNormalGrouper(){return this.createGrouper(!1)}createReverseGrouper(){return this.createGrouper(!0)}};var Kt=class{constructor(t,e,n){this._statement=new cn(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 He(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(ti.fromObject(t.instruction,t))}static fromError(t,e){return new Se(ti.fromError(t,e))}};var Xe=class extends qe{createFilterOrErrorMessage(t){let e=qe.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 po(i);else if(n.includes("regex")){try{s=es.validateAndConstruct(i)}catch(l){let u=ea("Parsing regular expression",l)+`
${es.helpMessage()}`;return Se.fromError(t,u)}if(s===null)return Se.fromError(t,`Invalid instruction: '${t}'
${es.helpMessage()}`)}if(s===null)return Se.fromError(t,`do not understand query filter (${this.fieldName()})`);let a=n.match(/not/)!==null,o=new Kt(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 ta=class extends Xe{fieldName(){return"description"}value(t){return Ae.getInstance().removeAsSubstringFrom(t.description)}supportsSorting(){return!0}comparator(){return(t,e)=>{let n=ta.cleanDescription(t.description),i=ta.cleanDescription(e.description);return n.localeCompare(i,void 0,{numeric:!0})}}static cleanDescription(t){t=Ae.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}};Wg();qg();Ms();var Rd=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 Cd=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 Kt(t,this._filter,new He(t))):Se.fromError(t,`do not understand filter: ${t}`)}};var bn=class{constructor(){this._filters=[]}add(t,e){this._filters.push(new Cd(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 Et=class extends qe{constructor(e=null){super();e!==null?this.filterInstructions=e:(this.filterInstructions=new bn,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=qe.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=xn.parseDateRange(l);if(!u.isValid()){let p=xn.parseDate(a);p.isValid()&&(u=new nn(p,p))}if(!u.isValid())return Se.fromError(e,"do not understand "+this.fieldName()+" date");let c=this.buildFilterFunction(o,u),d=Et.buildExplanation(this.fieldNameForExplanation(),o,this.filterResultIfFieldMissing(),u);return Se.fromFilter(new Kt(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 He(`${s.start.format(o)} and`),new He(`${s.end.format(o)} inclusive`)];return i&&d.push(new He(`OR no ${e} date`)),new He(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 He(u)}fieldNameForExplanation(){return this.fieldName()}supportsSorting(){return!0}comparator(){return(e,n)=>Qn(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 Rd().findUnexpandedDateText(e)}};var Md=class extends Et{fieldName(){return"created"}date(t){return t.createdDate}filterResultIfFieldMissing(){return!1}};var Ad=class extends Et{fieldName(){return"done"}date(t){return t.doneDate}filterResultIfFieldMissing(){return!1}};var mo=class extends Et{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 Vd=class extends Xe{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 ko=class extends qe{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 zd=class extends Xe{constructor(){super()}fieldName(){return"status.name"}value(t){return t.status.name}supportsSorting(){return!0}supportsGrouping(){return!0}};Cn();var si=class extends qe{canCreateFilterForLine(t){let e=new RegExp(`^(?:${this.fieldNameSingularEscaped()})`,"i");return qe.lineMatchesFilter(e,t)}createFilterOrErrorMessage(t){let e=qe.getMatch(this.filterRegExp(),t);if(e===null)return this.helpMessage(t);let n=e[1].toLowerCase(),i=e[2],s=Vt[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 Kt(t,a,new He(t)))}filterRegExp(){return new RegExp(`^(?:${this.fieldNameSingularEscaped()}) (is|is not) ([^ ]+)$`,"i")}helpMessage(t){let e=Object.values(Vt).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=si.groupName(t),i=si.groupName(e);return n.localeCompare(i,void 0,{numeric:!0})}}supportsGrouping(){return!0}grouper(){return t=>[si.groupName(t)]}static groupName(t){return t.status.typeGroupText}};var Kd=class extends Xe{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 Qd=class extends Xe{fieldName(){return"folder"}value(t){return t.file.folder}supportsGrouping(){return!0}grouper(){return t=>[Xe.escapeMarkdownCharacters(this.value(t))]}};var Zd=class extends Xe{fieldName(){return"root"}value(t){return t.file.root}supportsGrouping(){return!0}grouper(){return t=>[Xe.escapeMarkdownCharacters(this.value(t))]}};var Xd=class extends Xe{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 Jd=class extends Et{fieldName(){return"cancelled"}date(t){return t.cancelledDate}filterResultIfFieldMissing(){return!1}};var ef=class extends ur{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 tf=class extends Xe{constructor(){super();this.filterInstructions=new bn;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 nf=class extends qe{constructor(){super();this.filterInstructions=new bn;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 rf=class extends ur{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 gb=[()=>new zd,()=>new si,()=>new ns,()=>new $d,()=>new na,()=>new Yd,()=>new Jd,()=>new Md,()=>new Ud,()=>new Ld,()=>new mo,()=>new Ad,()=>new ho,()=>new Qd,()=>new Zd,()=>new Xd,()=>new ta,()=>new ra,()=>new Fd,()=>new Pd,()=>new Vd,()=>new ko,()=>new Kd,()=>new Id,()=>new tf,()=>new nf,()=>new ef,()=>new rf,()=>new Bd];function Ru(r){for(let t of gb){let e=t();if(e.canCreateFilterForLine(r))return e.createFilterOrErrorMessage(r)}return null}function zE(r){let t=/^sort by /i;if(r.match(t)===null)return null;for(let e of gb){let i=e().createSorterFromLine(r);if(i)return i}return null}function KE(r){let t=/^group by /i;if(r.match(t)===null)return null;for(let e of gb){let i=e().createGrouperFromLine(r);if(i)return i}return null}var sf=class{constructor(t,e
`;return t}toString(){let t=`
`;t+=`Group names: [${this.groups}]
`;for(let e of this.groupHeadings)t+=`${"#".repeat(4+e.nestingLevel)} [${e.property}] ${e.displayName}
`;return t+=this.tasksAsStringOfLines(),t}};var So=class{constructor(t,e,n){this._groups=new Array;this._totalTaskCount=0;this._totalTaskCount=e.length,this._groupers=t;let s=new uf(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="";t+=`Groupers (if any):
`;for(let n of this._groupers){let i=n.reverse?" reverse":"";t+=`- ${n.property}${i}
`}for(let n of this.groups)t+=n.toString(),t+=`
---
`;return t+=`
${this.totalTasksCount()} tasks
`,t}addTaskGroups(t){for(let[e,n]of t){let i=new cf(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 af(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 ss=class{constructor(t,e){this.tasksFile=t,this.allTasks=[...e],this._queryContext=this.tasksFile?rb(this.tasksFile,this.allTasks):void 0}static fromAllTasks(t){return new ss(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 QE(r){return`task${r!==1?"s":""}`}var aa=class{constructor(t,e){this.totalTasksCountBeforeLimit=0;this._searchErrorMessage=void 0;this.taskGroups=t,this.totalTasksCountBeforeLimit=e}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} ${QE(t)}`:`${t} of ${e} ${QE(e)}`}get groups(){return this.taskGroups.groups}static fromError(t){let e=new aa(new So([],[],ss.fromAllTasks([])),0);return e._searchErrorMessage=t,e}};function ZE(r){return r.endsWith("\\")}function XE(r){return r.endsWith("\\\\")}function XY(r){return r.replace(/^[ \t]*/,"")}function JY(r){return r.replace(/[ \t]*\\$/,"")}function e$(r,t){let e=r;return t&&(e=XY(r)),XE(e)?e=e.slice(0,-1):ZE(r)&&(e=JY(e)),e}function df(r){let t=[],e=!1,n="",i="",s=r+`
`;for(let a of s.split(`
`)){let o=e$(a,e);e?(n+=`
`+a,i+=" "+o):(n=a,i=o),XE(a)?e=!1:e=ZE(a),e||(i.trim()!==""&&t.push(new cn(n,i)),n="",i="")}return t}function JE(r){return df(r).map(t=>t.anyContinuationLinesRemoved)}var Do=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(Do.makeCompositeComparator([...s,...i],n))}static defaultSorters(){return[new si().createNormalSorter(),new ko().createNormalSorter(),new mo().createNormalSorter(),new na().createNormalSorter(),new ho().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 ex=0,Ln=class{constructor(t,e=void 0){this.statements=[];this._limit=void 0;this._taskGroupLimit=void 0;this._taskLayoutOptions=new zr;this._queryLayoutOptions=new Ji;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=an.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=df(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=nb(e),o="";try{let u=0;for(;s!==o&&u<10;)o=s,s=tb(o,a),u++;s!==n&&(s=df(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 cn(e.rawInstruction+a,e.anyContinuationLinesRemoved+a);return o.recordExpandedPlaceholders(i),o})}append(t){return this.source===""?t:t.source===""?this:new Ln(`${this.source}
${t.source}`,this.tasksFile)}explainQuery(){return new co().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=Ln.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 ss(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}=re(),s=i.ignoreSortInstructions?t:Do.by(this.sorting,t,e),a=s.slice(0,this.limit),o=new So(this.grouping,a,e);return this._taskGroupLimit!==void 0&&o.applyTaskLimit(this._taskGroupLimit),new aa(o,s.length)}catch(i){let a=ea("Search failed",i);return n&&(a=Ln.generateErrorMessage(n,a)),aa.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(DE(this._queryLayoutOptions,s,i)){this.saveLayoutStatement(t);return}if(jS(this._taskLayoutOptions,s,!i)){this.saveLayoutStatement(t);return}this.setError("do not understand hide/show option",new cn(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 cn(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=zE(t);return n?(n.setStatement(e),this._sorting.push(n),!0):!1}parseGroupBy(t,e){let n=KE(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}=re(),a=s[i];if(!a){this.setError(rD(i,s),e);return}let o=JE(a);for(let l of o){let u=new cn(e.rawInstruction,e.anyContinuationLinesRemoved);if(u.recordExpandedPlaceholders(l),l.includes("{{")&&l.includes("}}")&&this.tasksFile){let c=nb(this.tasksFile),d=tb(l,c);u.recordExpandedPlaceholders(d)}this.parseLine(u)}}}generateQueryId(t){return ex+=1,ex.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 yb=[{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"},{name:"TQ_extra_instructions",type:"text",handler:"addValue"}],Ci=class{source(t){return t?yb.map(n=
`):""}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 Ln(this.source(t),t)}allPropertyNames(){return yb.map(t=>t.name)}allPropertyNamesSorted(){return this.allPropertyNames().sort((t,e)=>t.localeCompare(e))}propertyType(t){var e,n;return(n=(e=yb.find(i=>i.name===t))==null?void 0:e.type)!=null?n:void 0}metaBindPluginWidgets(){return"\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 tx(r,t){return I(this,null,function*(){yield r.fileManager.processFrontMatter(t,e=>{let n=new Ci().allPropertyNamesSorted(),i=!1;n.forEach(s=>{s in e||(e[s]=null,i=!0)}),i?new bb.Notice("Properties updated successfully."):new bb.Notice("All supported properties are already present.")})})}var ff=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)=>kE(e,n,i,this.app,this.plugin.getTasks())}),t.addCommand({id:"toggle-done",name:"Toggle task done",icon:"check-in-circle",editorCheckCallback:SE}),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 I(this,null,function*(){let{app:e}=this;yield tx(e,t)})}};var as=class{constructor(t=as.empty){this._source=t}static getInstance(){return as.instance||(as.instance=new as),as.instance}set(t){this._source=t}query(t=void 0){let e=new Ln(this._source,t);return e.removeIllegalGlobalQueryInstructions(),e}hasInstructions(){return this._source.trim()!==as.empty}},fr=as;fr.empty="";js();var pf=class{constructor({obsidianEvents:t}){this.logger=an.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.triggerReloadOpenSearchResults()"),this.obsidianEvents.trigger("obsidian-tasks-plugin:reload-open-search-results")}onReloadVault(t){this.logger.debug("TasksEvents.on
<span class='flatpickr-weekday'>
`+g.join("</span><span class='flatpickr-weekday'>")+`
</span>
`}}function w(){e.calendarContainer.classList.add("hasWeeks");var h=je("div","flatpickr-weekwrapper");h.appendChild(je("span","flatpickr-weekday",e.l10n.weekAbbreviation));var g=je("div","flatpickr-weeks");return h.appendChild(g),{weekWrapper:h,weekNumbers:g}}function S(h,g){g===void 0&&(g=!0);var k=g?h:h-e.currentMonth;k<0&&e._hidePrevMonthArrow===!0||k>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=k,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,Ze("onYearChange"),R()),K(),Ze("onMonthChange"),pa())}function C(h,g){if(h===void 0&&(h=!0),g===void 0&&(g=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,g===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var k=_f(e.config),A=k.hours,G=k.minutes,X=k.seconds;p(A,G,X)}e.redraw(),h&&Ze("onChange")}function L(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),Ze("onClose")}function $(){e.config!==void 0&&Ze("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 g=e.calendarContainer.parentNode;if(g.lastChild&&g.removeChild(g.lastChild),g.parentNode){for(;g.firstChild;)g.parentNode.insertBefore(g.firstChild,g);g.parentNode.removeChild(g)}}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(k){try{delete e[k]}catch(A){}})}function D(h){return e.calendarContainer.contains(h)}function N(h){if(e.isOpen&&!e.config.inline){var g=vn(h),k=D(g),A=g===e.input||g===e.altInput||e.element.contains(g)||h.path&&h.path.indexOf&&(~h.path.indexOf(e.input)||~h.path.indexOf(e.altInput)),G=!A&&!k&&!D(h.relatedTarget),X=!e.config.ignoredFocusElements.some(function(ve){return ve.contains(g)});G&&X&&(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 W(h){if(!(!h||e.config.minDate&&h<e.config.minDate.getFullYear()||e.config.maxDate&&h>e.config.maxDate.getFullYear())){var g=h,k=e.currentYear!==g;e.currentYear=g||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)),k&&(e.redraw(),Ze("onYearChange"),R())}}function ce(h,g){var k;g===void 0&&(g=!0);var A=e.parseDate(h,void 0,g);if(e.config.minDate&&A&&_n(A,e.config.minDate,g!==void 0?g:!e.minDateHasTime)<0||e.config.maxDate&&A&&_n(A,e.config.maxDate,g!==void 0?g:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(A===void 0)return!1;for(var G=
`);if(p===void 0)return!1;let b=null;for(let v=0;v<p.length;v=v+1)if(p[v]!==""){b=p[v];break}return b===null?!1:Ae.getInstance().includedIn(b)});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 b=null,T=pe.fromLine({line:p,taskLocation:new Ut(new mt(s),f,a.lineStart,l,b),fallbackDate:null});T!==null&&(u.push(T),l++)}let c=new Ai({obsidianApp:this.app,obsidianComponent:n,parentUlElement:t,taskLayoutOptions:new zr,queryLayoutOptions:new Ji});for(let f=0;f<i.length;f++){let p=u[f],b=i[f];if(p===void 0||b===void 0)continue;let T=(d=b.getAttr("data-line"))!=null?d:"0",v=Number.parseInt(T,10),O=yield c.renderTaskLine({task:p,taskIndex:v,isTaskInQueryFile:!0}),E=b.childNodes;for(let j=0;j<E.length;j=j+1){let ae=E[j],H=ae.nodeName.toLowerCase();H==="div"?O.prepend(ae):(H==="ul"||H==="ol")&&O.append(ae)}let P=b.querySelectorAll("[data-footnote-id]"),Y=O.querySelectorAll("[data-footnote-id]");if(P.length===Y.length)for(let j=0;j<P.length;j++)Y[j].replaceWith(P[j]);b.replaceWith(O)}})}};var xx=require("@codemirror/view"),Ox=require("obsidian");It();var Rx=()=>xx.ViewPlugin.fromClass(Rb),Rb=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 Ox.Notice(p,45e3)}return!1}let{state:i}=this.view,s=this.view.posAtDOM(e),a=i.doc.lineAt(s),o=pe.fromLine({line:a.text,taskLocation:Ut.fromUnknownPosition(new mt("")),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 Pi=require("obsidian"),Mx=require("obsidian");function Cx(r,t,e,n=void 0){let i="";t.isEmpty()||(i+=`Only tasks containing the global filter '${t.get()}'.
`);let s=new co(" ");function a(c,d){return`${c}:
${s.explainQuery(d)}`}let o=new Ln(r,n),l=new Ci().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 Ef(r,t,e){let i=new Ci().query(e).append(new Ln(r,e));return i.ignoreGlobalQuery?i:t.query(e).append(i)}Qi();sn();function Iu(r,t,e){t&&r.push(s$(e))}function s$(r){return`tasks-layout-hide-${r}`}var xf=class{constructor(t){t?this.queryLayoutOptions=t:this.queryLayoutOptions=new Ji}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)Iu(t,n,i);return this.queryLayoutOptions.shortMode&&t.push("tasks-layout-short-mode"),t}};Ls();var Of=class{constructor(t){t?this.taskLayoutOptions=t:this.taskLayoutOptions=new zr}generateHiddenClasses(){let t=[];return this.taskLayoutOptions.toggleableComponents.forEach(e=>{Iu(t,!this.taskLayoutOptions.isShown(e),e)}),Iu(t,!this.taskLayoutOptions.areTagsShown(),"tags"),t}};It();var Cb=require("obsidian");var cs=class extends os{constructor(t,e,n=ai){super(n);let i=(u,c,d,f,p,b)=>{var E;let T=!1,v=Ro(e);if(v){let{postponedDate:P}=b(e,v,d,f);(E=e[v])!=null&&E.isSame(P,"day")&&(T=!0)}let O=p(e,f,d);c.setChecked(T).setTitle(O).onClick(()=>cs.postponeOnClickCallback(u,e,f,d,b,n))},s=yx,a=dx;this.addItem(u=>i(t,u,"days",0,s,a)),this.addItem(u=>i(t,u,"day",1,s,a)),this.addSeparator();let o=Eb,l=Db;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,bx,fx))}static postponeOnClickCallback(o,l,u,c){return I(this,arguments,function*(t,e,n,i,s=Db,a=ai){var b;let d=Ro(e);if(d===null){let T="\u26A0\uFE0F Postponement requires a date: due, scheduled or start.";return new Cb.Notice(T,1e4)}let{postponedDate:f,postponedTask:p}=s(e,d,i,n);(b=e[d])!=null&&b.isSame(f,"day")||(yield a(e,p),cs.postponeSuccessCallback(t,d,f))})}static postponeSuccessCallback(t,e,n){t.style.pointerEvents="none";let i=hx(n,e);new Cb.Notice(i,2e3)}};var Rf=class{constructor(t,e,n,i,s,a,o=Ai.obsidianMarkdownRenderer){switch(this.source=e,this._tasksFile=n,this.renderMarkdown=i,this.obsidianComponent=s,this.obsidianApp=a,this.textRenderer=o,t){case"block-language-tasks":this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break;default:this.query=this.makeQueryFromSourceAndTasksFile(),this.queryType="tasks";break}}makeQueryFromSourceAndTasksFile(){return Ef(this.source,fr.getInstance(),this.tasksFile)}get tasksFile(){return this._tasksFile}setTasksFile(t){this._tasksFile=t,this.rereadQueryFromFile()}rereadQueryFromFile(){this.query=this.makeQueryFromSourceAndTasksFile()}get filePath(){var t,e;return(e=(t=this.tasksFile)==null?void 0:t.path)!=null?e:void 0}render(t,e,n,i){return I(this,null,function*(){t==="Warm"&&this.query.error===void 0?yield this.renderQuerySearchResults(e,t,n,i):this.query.error!==void 0?this.renderErrorMessage(n,this.query.error):this.renderLoadingMessage(n)})}renderQuerySearchResults(t,e,n,i){return I(this,null,function*(){let s=this.explainAndPerformSearch(e,t,n);if(s.searchErrorMessage!==void 0){this.renderErrorMessage(n,s.searchErrorMessage);return}yield this.renderSearchResults(s,n,i)})}explainAndPerformSearch(t,e,n){let i=new Hs(`Search: ${this.query.queryId} - ${this.filePath}`);i.start(),this.query.debug(`[render] Render called: plugin state: ${t}; searching ${e.length} tasks`),this.query.queryLayoutOptions.explainQuery&&this.createExplanation(n);let s=this.query.applyQueryToTasks(e);return i.finish(),s}renderSearchResults(t,e,n){return I(this,null,function*(){let i=new Hs(`Render: ${this.query.queryId} - ${this.filePath}`);i.start(),yield this.addAllTaskGroups(t.taskGroups,e,n);let s=t.totalTasksCount;this.addTaskCount(e,t),this.query.debug(`[render] ${s} tasks
`,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}};Ui();sn();Cn();Er();Kr();function Ax(r,t){return r.findIndex(e=>e.symbol===t)}function Ni(r){return r===""?r:"`"+(r!==" "?r:"space")+"`"}function c$(r,t){let e=ge.getTypeForUnknownSymbol(r.symbol);if(r.type===e||e==="TODO"&&r.symbol!==" ")return;let n=Ni(r.symbol),i=Ni(e);t.push(M.t("reports.statusRegistry.messages.notConventionalType",{symbol:n,type:i}))}function d$(r,t,e){let n=t.nextStatusSymbol,i=Ax(r,n);if(i===-1){let a=Ni(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=Ni(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 f$(r,t,e){let n=[];if(t.symbol===ge.EMPTY.symbol)return n.push(M.t("reports.statusRegistry.messages.emptySymbol")),n;if(Ax(r,t.symbol)!=e){let s=Ni(t.symbol);return n.push(M.t("reports.statusRegistry.messages.duplicateSymbol",{symbol:s})),n}return c$(t,n),d$(r,t,n),n}function Px(r){let t=new Mf([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=et.allStatuses(r);return e.forEach((n,i)=>{t.addRow([Ni(n.symbol),Ni(n.nextStatusSymbol),n.name,Ni(n.type),f$(e,n,i).join("<br>")])}),t.markdown}function Nx(r){let t=new $e;return et.applyToStatusRegistry(r,t),t.registeredStatuses.map((n,i)=>{let s=Ae.getInstance(),a=s.isEmpty()?"":s.get()+" ",o=`Sample task ${i+1}`,l=`status symbol=${Ni(n.symbol)}`,u=`status name='${n.name}'`;return`- [${n.symbol}] ${a}${o}: ${l} ${u}`})}function Ix(r,t,e,n){let s=Px(r),a=t.mermaidDiagram(!0),o=Nx(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
\`\`\`
`}Ui();function Fx(){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 Lx(){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 Ux(){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 Yx(){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 $x(){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 Wx(){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 qx(){
`)+`
`+M.t("modals.customStatusModal.fixErrorsBeforeSaving");new Fr.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?Un.removeValidationError(e):Un.setValidationError(e)}};var Ab=require("obsidian");function Hx(r,t,e){if(t===e||!Object.prototype.hasOwnProperty.call(r,t))return F({},r);let n={};for(let[i,s]of Object.entries(r))i===t?n[e]=s:n[i]=s;return n}var Fu=class{constructor(t,e,n){this.originalName=t,this.isValid=e,this.errorMessage=n}},Af=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 Fu(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 Fu(e,!1,"A preset with this name already exists");return new Fu(e,!0,null)}addPreset(t){let e=this.generateUniqueKey(t),n=F({},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:Hx(t,e,n)}deletePreset(t,e){let n=F({},t);return delete n[e],n}updatePresetValue(t,e,n){let i=F({},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 F({},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}};Ui();At();var Pf=class{constructor(t,e){this.presetsSettingsService=new Af;this.nameFields=new Map;this.plugin=t,this.events=e}renderPresetsSettings(t){let e=t.createDiv(),n=re(),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 Ab.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=()=>I(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=>I(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=>I(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(()=>I(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 Nf=class extends ds.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!eD(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=>de(F({},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=du()).buildSuggestions)==null?void 0:d.call(c,i,s.ch,this.settings,a,u,o))!=null?f:[]}getMarkdownFileInfo(e){return e.cm.state.field(ds.editorInfoField)}canSaveEdits(e){return e instanceof ds.MarkdownView}renderSuggestion(e,n){n.setText(e.displayText)}selectSuggestion(e,n){return I(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=rd(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,b={line:e.taskItDependsOn.lineNumber,ch:0},T={line:e.taskItDependsOn.lineNumber,ch:p.length},v=e.context.editor.getRange(b,T);if(v!==p){let O=`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}'
`;g$(O);return}e.context.editor.replaceRange(f.toFileLineString(),b,T)}else Nn({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())})}};za();var Bx=(r,t)=>{let e,n=new Promise((o,l)=>{e=o}),i=o=>{let l=o.map(u=>u.toFileLineString()).join(`
`);e(l)},s=oo({line:"",path:""});return new ei({app:r,task:s,onSubmit:i,allTasks:t}).open(),n};function Vx(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=oo({line:t!=null?t:"",path:""});return new ei({app:r,task:a,onSubmit:s,allTasks:e}).open(),i}var zx=r=>{let t=r.app;return{createTaskLineModal:()=>Bx(t,r.getTasks()),editTaskLineModal:e=>Vx(t,e,r.getTasks()),executeToggleTaskDoneCommand:(e,n)=>Ky(e,n).text}};sn();Qf();var If=class extends Ff.Plugin{get apiV1(){return zx(this)}onload(){return I(this,null,function*(){yield fT(),an.registerConsoleLogger(),_y("info",M.t("main.loadingPlugin",{name:this.manifest.name,version:this.manifest.version})),yield this.loadSettings();let{loggingOptions:e}=re();an.configure(e),yr.getInstance().setGetFirstLinkpathDestFn((i,s)=>{let a=(0,Ff.getLinkpath)(i.link),o=this.app.metadataCache.getFirstLinkpathDest(a,s);return o?o.path:null});let n=new pf({obsidianEvents:this.app.workspace});this.addSettingTab(new Lu({plugin:this,events:n})),uE({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace}),yield this.loadTaskStatuses(),this.cache=new Gs({metadataCache:this.app.metadataCache,vault:this.app.vault,workspace:this.app.workspace,events:n}),this.inlineRenderer=new Df({plugin:this,app:this.app}),this.queryRenderer=new Cf({plugin:this,events:n}),this.setObsidianPropertiesTypes(),this.registerEditorExtension(Rx()),this.registerEditorSuggest(new Nf(this.app,re(),this)),new ff({plugin:this})})}loadTaskStatuses(){return I(this,null,function*(){let{statusSettings:e}=re();et.applyToStatusRegistry(e,$e.getInstance())})}onunload(){var e;_y("info",M.t("main.unloadingPlugin",{name:this.manifest.name,version:this.manifest.version})),(e=this.cache)==null||e.unload()}loadSettings(){return I(this,null,function*(){let e=yield this.loadData();nt(e),e=re(),Ae.getInstance().set(e.globalFilter),Ae.getInstance().setRemoveGlobalFilter(e.removeGlobalFilter),fr.getInstance().set(e.globalQuery),yield this.loadTaskStatuses()})}saveSettings(){return I(this,null,function*(){yield this.saveData(re())})}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 Ci;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 */