From 105a6a66953a7e50b1f28c0b45daeae8dc302055 Mon Sep 17 00:00:00 2001 From: aleidk Date: Tue, 8 Aug 2023 18:53:20 -0400 Subject: [PATCH] add obsidian files --- .obsidian/app.json | 1 + .obsidian/appearance.json | 4 + .obsidian/community-plugins.json | 6 + .obsidian/core-plugins-migration.json | 29 + .obsidian/core-plugins.json | 20 + .obsidian/graph.json | 22 + .obsidian/hotkeys.json | 1 + .../obsidian-excalidraw-plugin/data.json | 413 + .../obsidian-excalidraw-plugin/main.js | 81 + .../obsidian-excalidraw-plugin/manifest.json | 11 + .../obsidian-excalidraw-plugin/styles.css | 384 + .obsidian/plugins/obsidian-git/data.json | 53 + .obsidian/plugins/obsidian-git/main.js | 44183 ++++++++++++++++ .obsidian/plugins/obsidian-git/manifest.json | 9 + .obsidian/plugins/obsidian-git/styles.css | 507 + .obsidian/plugins/obsidian-kanban/main.js | 114 + .../plugins/obsidian-kanban/manifest.json | 10 + .obsidian/plugins/obsidian-kanban/styles.css | 1 + .../plugins/obsidian-style-settings/data.json | 4 + .../plugins/obsidian-style-settings/main.js | 9848 ++++ .../obsidian-style-settings/manifest.json | 10 + .../obsidian-style-settings/styles.css | 243 + .obsidian/themes/Catppuccin/manifest.json | 7 + .obsidian/themes/Catppuccin/theme.css | 3820 ++ .obsidian/workspace.json | 156 + notes/foo.md | 0 26 files changed, 59937 insertions(+) create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins-migration.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/styles.css create mode 100644 .obsidian/plugins/obsidian-git/data.json create mode 100644 .obsidian/plugins/obsidian-git/main.js create mode 100644 .obsidian/plugins/obsidian-git/manifest.json create mode 100644 .obsidian/plugins/obsidian-git/styles.css create mode 100644 .obsidian/plugins/obsidian-kanban/main.js create mode 100644 .obsidian/plugins/obsidian-kanban/manifest.json create mode 100644 .obsidian/plugins/obsidian-kanban/styles.css create mode 100644 .obsidian/plugins/obsidian-style-settings/data.json create mode 100644 .obsidian/plugins/obsidian-style-settings/main.js create mode 100644 .obsidian/plugins/obsidian-style-settings/manifest.json create mode 100644 .obsidian/plugins/obsidian-style-settings/styles.css create mode 100644 .obsidian/themes/Catppuccin/manifest.json create mode 100644 .obsidian/themes/Catppuccin/theme.css create mode 100644 .obsidian/workspace.json create mode 100644 notes/foo.md diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..fa4bd4a --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,4 @@ +{ + "accentColor": "", + "cssTheme": "Catppuccin" +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..bf1a414 --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,6 @@ +[ + "obsidian-excalidraw-plugin", + "obsidian-kanban", + "obsidian-git", + "obsidian-style-settings" +] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..5c13490 --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,29 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..e21a18d --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": false +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json new file mode 100644 index 0000000..bea81cb --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -0,0 +1,413 @@ +{ + "folder": "Excalidraw", + "embedUseExcalidrawFolder": false, + "templateFilePath": "Excalidraw/Template.excalidraw", + "scriptFolderPath": "Excalidraw/Scripts", + "compress": false, + "autosave": true, + "autosaveInterval": 15000, + "autosaveIntervalDesktop": 15000, + "autosaveIntervalMobile": 10000, + "drawingFilenamePrefix": "Drawing ", + "drawingEmbedPrefixWithFilename": true, + "drawingFilnameEmbedPostfix": " ", + "drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss", + "useExcalidrawExtension": true, + "previewImageType": "SVG", + "allowImageCache": true, + "displayExportedImageIfAvailable": false, + "previewMatchObsidianTheme": false, + "width": "400", + "dynamicStyling": "colorful", + "isLeftHanded": false, + "iframeMatchExcalidrawTheme": true, + "matchTheme": false, + "matchThemeAlways": false, + "matchThemeTrigger": false, + "defaultMode": "normal", + "defaultPenMode": "never", + "allowPinchZoom": false, + "allowWheelZoom": false, + "zoomToFitOnOpen": true, + "zoomToFitOnResize": true, + "zoomToFitMaxLevel": 2, + "linkPrefix": "📍", + "urlPrefix": "🌐", + "parseTODO": false, + "todo": "☐", + "done": "🗹", + "hoverPreviewWithoutCTRL": false, + "linkOpacity": 1, + "openInAdjacentPane": false, + "openInMainWorkspace": true, + "showLinkBrackets": true, + "allowCtrlClick": true, + "forceWrap": false, + "pageTransclusionCharLimit": 200, + "wordWrappingDefault": 0, + "removeTransclusionQuoteSigns": true, + "iframelyAllowed": true, + "pngExportScale": 1, + "exportWithTheme": true, + "exportWithBackground": true, + "exportPaddingSVG": 10, + "keepInSync": false, + "autoexportSVG": false, + "autoexportPNG": false, + "autoExportLightAndDark": false, + "autoexportExcalidraw": false, + "embedType": "excalidraw", + "embedWikiLink": true, + "syncExcalidraw": false, + "experimentalFileType": false, + "experimentalFileTag": "✏️", + "experimentalLivePreview": true, + "experimentalEnableFourthFont": false, + "experimantalFourthFont": "Virgil", + "fieldSuggester": true, + "compatibilityMode": false, + "drawingOpenCount": 0, + "library": "deprecated", + "library2": { + "type": "excalidrawlib", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.14", + "libraryItems": [] + }, + "imageElementNotice": true, + "mdSVGwidth": 500, + "mdSVGmaxHeight": 800, + "mdFont": "Virgil", + "mdFontColor": "Black", + "mdBorderColor": "Black", + "mdCSS": "", + "scriptEngineSettings": {}, + "defaultTrayMode": true, + "previousRelease": "1.9.14", + "showReleaseNotes": true, + "showNewVersionNotification": true, + "mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js", + "latexBoilerplate": "\\color{blue}", + "taskboneEnabled": false, + "taskboneAPIkey": "", + "pinnedScripts": [], + "customPens": [ + { + "type": "default", + "freedrawOnly": false, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": 0, + "penOptions": { + "highlighter": false, + "constantPressure": false, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 0.6, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "easeOutSine", + "start": { + "cap": true, + "taper": 0, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": 0, + "easing": "linear" + } + } + } + }, + { + "type": "highlighter", + "freedrawOnly": true, + "strokeColor": "#FFC47C", + "backgroundColor": "#FFC47C", + "fillStyle": "solid", + "strokeWidth": 2, + "roughness": null, + "penOptions": { + "highlighter": true, + "constantPressure": true, + "hasOutline": true, + "outlineWidth": 4, + "options": { + "thinning": 1, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "linear", + "start": { + "taper": 0, + "cap": true, + "easing": "linear" + }, + "end": { + "taper": 0, + "cap": true, + "easing": "linear" + } + } + } + }, + { + "type": "finetip", + "freedrawOnly": false, + "strokeColor": "#3E6F8D", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0.5, + "roughness": 0, + "penOptions": { + "highlighter": false, + "hasOutline": false, + "outlineWidth": 1, + "constantPressure": true, + "options": { + "smoothing": 0.4, + "thinning": -0.5, + "streamline": 0.4, + "easing": "linear", + "start": { + "taper": 5, + "cap": false, + "easing": "linear" + }, + "end": { + "taper": 5, + "cap": false, + "easing": "linear" + } + } + } + }, + { + "type": "fountain", + "freedrawOnly": false, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "roughness": 0, + "penOptions": { + "highlighter": false, + "constantPressure": false, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "smoothing": 0.2, + "thinning": 0.6, + "streamline": 0.2, + "easing": "easeInOutSine", + "start": { + "taper": 150, + "cap": true, + "easing": "linear" + }, + "end": { + "taper": 1, + "cap": true, + "easing": "linear" + } + } + } + }, + { + "type": "marker", + "freedrawOnly": true, + "strokeColor": "#B83E3E", + "backgroundColor": "#FF7C7C", + "fillStyle": "dashed", + "strokeWidth": 2, + "roughness": 3, + "penOptions": { + "highlighter": false, + "constantPressure": true, + "hasOutline": true, + "outlineWidth": 4, + "options": { + "thinning": 1, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "linear", + "start": { + "taper": 0, + "cap": true, + "easing": "linear" + }, + "end": { + "taper": 0, + "cap": true, + "easing": "linear" + } + } + } + }, + { + "type": "thick-thin", + "freedrawOnly": true, + "strokeColor": "#CECDCC", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": null, + "penOptions": { + "highlighter": true, + "constantPressure": true, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 1, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "linear", + "start": { + "taper": 0, + "cap": true, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": true, + "easing": "linear" + } + } + } + }, + { + "type": "thin-thick-thin", + "freedrawOnly": true, + "strokeColor": "#CECDCC", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": null, + "penOptions": { + "highlighter": true, + "constantPressure": true, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 1, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "linear", + "start": { + "cap": true, + "taper": true, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": true, + "easing": "linear" + } + } + } + }, + { + "type": "default", + "freedrawOnly": false, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": 0, + "penOptions": { + "highlighter": false, + "constantPressure": false, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 0.6, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "easeOutSine", + "start": { + "cap": true, + "taper": 0, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": 0, + "easing": "linear" + } + } + } + }, + { + "type": "default", + "freedrawOnly": false, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": 0, + "penOptions": { + "highlighter": false, + "constantPressure": false, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 0.6, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "easeOutSine", + "start": { + "cap": true, + "taper": 0, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": 0, + "easing": "linear" + } + } + } + }, + { + "type": "default", + "freedrawOnly": false, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 0, + "roughness": 0, + "penOptions": { + "highlighter": false, + "constantPressure": false, + "hasOutline": false, + "outlineWidth": 1, + "options": { + "thinning": 0.6, + "smoothing": 0.5, + "streamline": 0.5, + "easing": "easeOutSine", + "start": { + "cap": true, + "taper": 0, + "easing": "linear" + }, + "end": { + "cap": true, + "taper": 0, + "easing": "linear" + } + } + } + } + ], + "numberOfCustomPens": 0, + "pdfScale": 4, + "pdfBorderBox": true, + "pdfGapSize": 20, + "pdfLockAfterImport": true, + "pdfNumColumns": 1, + "pdfImportScale": 0.3 +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js new file mode 100644 index 0000000..228170a --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -0,0 +1,81 @@ +"use strict";var obsidian_module=require("obsidian");var LZString=function(){var r=String.fromCharCode,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",e={};function t(r,o){if(!e[r]){e[r]={};for(var n=0;n>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null==o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;e>=1}else{for(t=1,e=0;e>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[c]}else for(t=s[c],e=0;e>=1;0==--l&&(l=Math.pow(2,h),h++),s[p]=f++,c=String(a)}if(""!==c){if(Object.prototype.hasOwnProperty.call(u,c)){if(c.charCodeAt(0)<256){for(e=0;e>=1}else{for(t=1,e=0;e>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[c]}else for(t=s[c],e=0;e>=1;0==--l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;e>=1;for(;;){if(m<<=1,v==o-1){d.push(n(m));break}v++}return d.join("")},decompress:function(r){return null==r?"":""==r?null:i._decompress(r.length,32768,function(o){return r.charCodeAt(o)})},_decompress:function(o,n,e){var t,i,s,u,a,p,c,l=[],f=4,h=4,d=3,m="",v=[],g={val:e(0),position:n,index:1};for(t=0;t<3;t+=1)l[t]=t;for(s=0,a=Math.pow(2,2),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;switch(s){case 0:for(s=0,a=Math.pow(2,8),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;c=r(s);break;case 1:for(s=0,a=Math.pow(2,16),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;c=r(s);break;case 2:return""}for(l[3]=c,i=c,v.push(c);;){if(g.index>o)return"";for(s=0,a=Math.pow(2,d),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;switch(c=s){case 0:for(s=0,a=Math.pow(2,8),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;l[h++]=r(s),c=h-1,f--;break;case 1:for(s=0,a=Math.pow(2,16),p=1;p!=a;)u=g.val&g.position,g.position>>=1,0==g.position&&(g.position=n,g.val=e(g.index++)),s|=(u>0?1:0)*p,p<<=1;l[h++]=r(s),c=h-1,f--;break;case 2:return v.join("")}if(0==f&&(f=Math.pow(2,d),d++),l[c])m=l[c];else{if(c!==h)return null;m=i+i.charAt(0)}v.push(m),l[h++]=i+m.charAt(0),i=m,0==--f&&(f=Math.pow(2,d),d++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});const EXCALIDRAW_PACKAGES = "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7EDC0fjSduCc38gYMzsMx8azwYAeYD4gAp1X/DWSmLYVCzSyB+SsBCBAAzqzM+eHNyH6dKQAJH5DCI/uFJQAGpin2e3iLHgAscdmABNidhg2jPBRuXEADMyfWWqvGzLcdQyeOswt54ry0WccObx43g+SeIAAm8dbTjyifJRcascD2UAuwIUdOTBFT7xFhb+CHac5KzehRZQ03SgTkD8ADzSggzv9oi3gxDUYvACNwDpszyAB4MzpJCB5gZ2zEKzrKzn2ftwDHaBmuftxUzKxScBzBEmqdGMwAOD5ajqSYpBeWUC3UeQig83xduBCwRggCf4DIJd2EZRgBJ0enehImfF+dBUd7Bf6Bzeo3F0IrSIhz45CxiywyOYvScfyhgyesi4e2CuOg+TB2qdFsdHkCbmcasdxQC4sxNaC0ae+YapYbSJc5Kzq7CZgyq0fQgBTHDvzj/qzk5bxfqKCzyACISeUZ5kqzaACaLjV3rASd96j+uVjThVXBryx1QC3ugHMzLwAmuTguXd6cfthkSwpCdzawRUcEECNscQMx18e5EDwZRHBc20cyzhRqzcACVKwPrvyUcT2fEOVfABt5ZFJdGyTccBSACcEj6ufiUIm6Bf7CRMydc6tAATqx6AAt0yKLSscjYACTMLpswTZERKfEzgYye2XgyOYKkjD2wftjhUcnICyGervG5syr8x4TibmdnKd7pTcMxMsBSADgedrgDRqzRYiTSQ5WdtKzRBdWSBIMffKfV3o+KiGACded3Sx7ZLG63HHiQOfmCdChfphzPkeAefqMdtXpY3rLKctywLCd+oawiLWUdb2fiBdVibCUe9Rdb2cTbgbUeZiciKwRsftAAxscGxeMMAOhC+meQcfbagw+6GADibUpMetwB4TjOKcf75o/6BADKJdsMysbVk6zpBfjqy+meQiivkdP0zwYAt8f50cGscohcs2VnaArSJzrogSCXQBrgDyqw/2xBUdVXCyADJSftvSDTbQxCcsc+8cvBdSl3KKyeicr6DE0fkCz00DOscEidjCeKOdbvi2XSnpSl2CawaSi4rsfKby7scfyiquWbvAmevWQCBLAO0boLnMyzQsfIABFlDaqDTMwcGfO5gDxtPUdJz5tMy+YYUKznQAeMzkACpYYpye7eU4swghrReCaidAMxmcLNCe5AARUcQswCTlREDs6eWbFomc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MEm13ja6Ntd/Wu52ls4uAFfgZah3gAgAAUjBAAAbGCO0td6WvtLUbXcNrvdpaQABnaWztLY7Xadrs8AiLuB5s4dIAQbXc1rudpYfa7ltdR2ujbXUfS1W12tbgmMg7wAZrXY1rsWAjeDB3gAg2uw+loAADoweHXS32j71wA66UddkAAW7Xc7S0AACSYBtrqO11Pa7AAAHGAva7PaWjWu72loAAC4wF7XQ8XVOAiEZYcyczsAJHXcjrux11466CddxOu0nXeTrqp11x2QLC6aOusyNJjrqZ104678ddLtLQnXbvSxJ10Da7htdM8wF8vPAxjpACAAAaME210fa7naWgAAYjBVtdjtLSHXZ60EMurOwAFddR9LYHXZ9ruR13O0td6WEuuoCvEmDl1SwK66jtd92u97XZ9rqV10q669td95eP2jHSAE112H0ttddztLXXXfrroRzT4To6QAR2uwAAAxgLuutGYKMlwy0wM66sddLtLBXXYNruV12AAB2MGm12meQ/dddIAXrXRtrqD12h66dMm8OZOkAC7S2R11h66PZIAOaRPXU7rr1127a6NMm8NxF2lgdrtdpae0tAAAZGD+0sVMmvTlZ2AIfS0AADyYKtrv610ba7k9d8euqMekuYUR12ra6Q9dNeulPXd7gm9QQDIZXEcq2ug7XY1rsu10l6769dsyGfCds7AC713Na6Q9drtLOvXe3rtdDZ0gBVtdgOu1vXZo4A4QyYEZ09dt2u5XXc7S2L12fAB+826euwAACxg+9LXellnrppmynYYp9dhOuj3XY7Sxe10u0txddbx9TJoM7ACF13La6ntdItpMimM7AEJ13ja7V9dRRGd4AONrsdpYF673aWu+ugcjHNrvdpaAAASMGW12H0sY9dh9LQAAOJgquuyGevSRmxoINa7HaWkAADfXd7S0AACEYPR+jc0wDThzg27wAYA3aAbpPIxzkY6QAG+uj/Xa3rpPIyGkYAddI+u1fXSeRk9IxT67AAA1GDO0sSDdD84WDDO7rul13ra6k9dreumpRgzruW12u0sW9dx24fENfuABAvD8b46QAD2up7XS9rpldTvABVtdjWuwbXUwbtJ13X67D6WIeul7XZz3j4N2HbgLBAICRIHchDrsgACe0sXaW3tLcbXQbghWuZ0gAxtdk2uxYCJIQDpADu0tVtdgAAJjBY5If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Dq28FbeWtvXm6+LYulf6LXmQzjDt+JWwcraK5uuc2qhbSENxh2xa7bUmd+YkdVbJV7rzm2Ve4qvcqtHnRbdetyk9xDK7pADuK2Wr3xot7Pm0XhedgDoK3yeb6ot7q9442/eAAIXu7ZburLXJW4Fe66vc2i2er3nHdrHvWhe6VVuD82Jr3Zat60Wxle7LxOHWnsBbDXNpVW6le5yFvWc2nRbg176a97645ARcbXutr3sAt7p2yBe72vcrXvKT3LMr8hN65zfOvfFi3Mxbq17wmp6TU49Fs7XuNObRNth695Se/LFu3XvBhb78tjrm5xzcevc5uPXr3v17zrm49e9RoPXm3CVbIptqTm4GLdgFvhu2IbT6573zm0SbcpPfkh3peb4nN88WyuLd7FucXvR5bHltzzm87zYSvdEnuWEXPPNtU91rLckvd4oAOL3J/Ngbm6dLd6Vu43unj3fsrk093+rc/ds66WqL3MXNseWwMrYEdvIq3paHzl7kc94ILbVFujK3dE3n7+7s9yyrc85s8y2OZb2fN45t5yvoFvdni3Lz3It7yxF56LZnVtJ82CnbZEtp492k4at5uoi28GWfSt94W4Fe4ONvZC2iub54tjlW0PK9UIvfuPIz3ix72CW/BLcQlunXvkJbuV76m970Lf9odZEntDbFUt2923gyyCFukf67b3CatsAW5OLdUvfYx4Xb3Xib4wxwV7dRvcES2xObQQtrNo3qe4dvc8c2qJb6It+pF6mHajL0FnuGubSnNiNW/qyzudvZ8382j0d72O97lzdyvdh3ueJbDdBmk97OrZjverHv473Tx787u1ne+TvcHG20738kt8O94gq/mdtDXvtJbw9B3SWwzzYMlusq2chb54tvrmxpzbzvdEnvVanZT9xoiwkY9lbdJGP5W3jyL0N21K7b/ttOS2cr3AXNsm96ce655uKtv05nwfN3JW1VLbn5vsC2O+b+ztsKW9iLaEvelnuCGWJir0+3fce/cVsTS2ppbnF7xzmy/zcQttpS3/rbGfNjg27LzfyluMO2+Hb3nNmqWzwbZ3vf9Xu0Xb8WtkK99627NhsDp61ebe977EW3PzaVVuic3DWWcl76E97le83vc9q3/L3urLQpVwtWbEvf2c3RObybb94AA6rdSvfp3vIAALd71pV1jzbydsYMsXHb5nt6a9xV44tFt73u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qzW+Jza65uRW2arb7Vtjjm15zYOVusc2Zv3gP7hq2wFzYaFtFc2oX3erLNN98FreW/c4MtVZb1wtvF97Oed/1eBPu4H3zyttqW2j++hfdfPvQr3I2b11gzxzbnvcec3CT3iktwTW5jLa35sSC2lVbBWt5nm8h+8a/fFc2z33M37vw2zVraVVu5c2o+byXNvVlpgy1E/fzvvSP3xrtpe28W+7a1thS2febu0tjF96yrd4/c6vu7Obqz77t9xNzdfvfLm2DWWcv7sj9/r+8hvf9fuxpblb73Xm0R+42PfHc2Eh3LhAbg1wtrdStvCq2ezb62tnjm5trbKFvba2mBb6rtvbW5W7YO1t5a3Ulbx2t07W8Vrf+1sXa2nTbW8tqNWwr+461sbq3HtbEnN+o2/1rYD5vva3VebjPNz7W6Dbe+1vja3mpb/2tlG27nWa65uhC2wFb+Qt3NW77+55/do22sRb9D7xTm5AAGdffL3vjlbfF77x98lzbu5tLc2pb3Br70T9waLdhFs9W2ZpbMv7ue9/V+9httK/vrhbrX7tX93t+41/eufv9n3c77vX983+/e1vIa2hPbaMtvBW4Ce/cVvm/uv+bzL7mw14JPamze8NOBh3vktpPm0cLd1ZbGc3aP3+v72X9xpzZ6Ysem2ALbMp7hiW41e4jVsEnvkLbC17jT96yrex1sMy3kebaMt6G93o7ecNtlC3ZBbvrtt092mLfofP/82nRbHCt73W8lzdkfeP82tdbynNqI23JzYlPf682iv3yzF9q24G+6VVuOe3fXbSqtrnWzJzePfc5c3subGnN+h83dzaF1s2i2Bf3eCtwCJ/2++c/duW3pn3Z7tlXm7le6r/fKc25dbyKtqD9w17fatte637BbRWt2AW5xLaiNvYW3iub9nN6wABPofatv8a2GZb5utnKu7G+4PNtf83WHbcV7hK90VLedfck/vXdbdIAOe98QB9y/fs22JubeWtue9z2beOffVvuEP34fNyPm82+4avdt83Z33y5ty527Ze6VVucaH3FbNxro491UrbVJcpnHhDbvJtkK98craC/ey82QTX5Wh0vW27Lei9sV63ep7RgDsJ8+4rbctsJvuXtbuj7q0lzk+Ydr0+Xu07L937jn9xeLf4/c962KNbB/DxXm7PzeBtsec29v32fNmgQyJLciluZnvkDdFZ79p8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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.9.14";function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(A){if("default"!==A){var i=Object.getOwnPropertyDescriptor(e,A);Object.defineProperty(t,A,i.get?i:{enumerable:!0,get:function(){return e[A]}})}})),t.default=e,Object.freeze(t)}var obsidian_module__namespace=_interopNamespace(obsidian_module),React__namespace=_interopNamespace(React);let random$1=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,t,A)=>{let i=(2<{let r="";for(;;){let t=A(n),s=n;for(;s--;)if(r+=e[t[s]&i]||"",r.length===a)return r}}},customAlphabet=(e,t=21)=>customRandom(e,t,random$1),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const ERROR_IFRAME_CONVERSION_CANCELED="iframe conversion canceled",{sceneCoordsToViewportCoords:sceneCoordsToViewportCoords,viewportCoordsToSceneCoords:viewportCoordsToSceneCoords,determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText,getDefaultLineHeight:getDefaultLineHeight,wrapText:wrapText,getFontString:getFontString,getBoundTextMaxWidth:getBoundTextMaxWidth,exportToSvg:exportToSvg,exportToBlob:exportToBlob,mutateElement:mutateElement,restore:restore}=excalidrawLib;function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}/Mac|iPod|iPhone|iPad/.test(window.navigator.platform);const DEVICE={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")},ROOTELEMENTSIZE=(()=>{const e=document.createElement("div");e.style.fontSize="1rem",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e),A=parseFloat(t.fontSize);return document.body.removeChild(e),A})(),nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},ROUNDNESS={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)",GITHUB_RELEASES="https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/",URLFETCHTIMEOUT=3e3,PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_SECTION_REF_CLEAN=/([:#|^\\\r\n]|%%|\[\[|]])/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\\r\n]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",FRONTMATTER_KEY_EMBEDDABLE_THEME="excalidraw-iframe-theme",EMBEDDABLE_THEME_FRONTMATTER_VALUES=["light","dark","auto","dafault"],VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}`,DARK_BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}`,FRONTMATTER=["---","",`${FRONTMATTER_KEY}: parsed`,"tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",SCRIPTENGINE_ICON_NAME="ScriptEngine",KEYBOARD_EVENT_TYPES=["keydown","keyup","keypress"],EXTENDED_EVENT_TYPES=["copy","cut","paste"],COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="save",EXPORT_IMG_ICON=' ',EXPORT_IMG_ICON_NAME="export-img",EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var lzString={exports:{}};lzString.exports,function(e){var t=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var A=0;A>>8,A[2*i+1]=r%256}return A},decompressFromUint8Array:function(t){if(null==t)return a.decompress(t);for(var A=new Array(t.length/2),i=0,n=A.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,m==t-1){g.push(A(p));break}m++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:a._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,A,i){var n,a,r,s,o,l,c,d=[],h=4,u=4,g=3,p="",m=[],w={val:i(0),position:A,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(d[3]=c,a=c,m.push(c);;){if(w.index>t)return"";for(r=0,o=Math.pow(2,g),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 2:return m.join("")}if(0==h&&(h=Math.pow(2,g),g++),d[c])p=d[c];else{if(c!==u)return null;p=a+a.charAt(0)}m.push(p),d[u++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,g),g++)}}};return a}();null!=e?e.exports=t:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",(function(){return t}))}(lzString);var lzStringExports=lzString.exports;function splitFolderAndFilename(e){const t=e.lastIndexOf("/"),A=-1==t?e:e.substring(t+1);return{folderpath:obsidian_module.normalizePath(e.substring(0,t)),filename:A,basename:A.replace(/\.[^/.]+$/,"")}}const download=(e,t,A)=>{const i=document.createElement("a");i.setAttribute("href",(e?`${e},`:"")+t),i.setAttribute("download",A),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)};function getIMGFilename(e,t){return`${e.substring(0,e.lastIndexOf("."))}.${t}`}function getNewUniqueFilepath(e,t,A){let i=obsidian_module.normalizePath(`${A}/${t}`),n=e.getAbstractFileByPath(i),a=0;const r=t.endsWith(".excalidraw.md")?".excalidraw.md":t.slice(t.lastIndexOf("."));for(;n;)i=obsidian_module.normalizePath(`${A}/${t.slice(0,t.lastIndexOf(r))}_${a}${r}`),a++,n=e.getAbstractFileByPath(i);return i}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,t){return((t.drawingEmbedPrefixWithFilename?e:"")+t.drawingFilnameEmbedPostfix+(""!==t.drawingFilenameDateTime?window.moment().format(t.drawingFilenameDateTime):"")+(t.compatibilityMode?".excalidraw":t.useExcalidrawExtension?".excalidraw.md":".md")).trim()}async function checkAndCreateFolder(e){const t=app.vault;e=obsidian_module.normalizePath(e);const A=t.getAbstractFileByPathInsensitive(e);A&&A instanceof obsidian_module.TFolder||(A&&A instanceof obsidian_module.TFile&&new obsidian_module.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await t.createFolder(e))}const getURLImageExtension=e=>{const t=e.split("?")[0];return t.substring(t.lastIndexOf(".")+1)},getMimeType=e=>{switch(e){case"png":return"image/png";case"jpeg":case"jpg":return"image/jpeg";case"gif":return"image/gif";case"webp":return"image/webp";case"bmp":return"image/bmp";case"ico":return"image/x-icon";case"svg":case"md":return"image/svg+xml";default:return"application/octet-stream"}},getFileFromURL=async(e,t,A=3e3)=>{try{const t=await Promise.race([fetch(e),new Promise((e=>setTimeout((()=>e(null)),A)))]);if(!t)throw new obsidian_module.Notice(`URL did not load within the timeout period of ${A}ms.\n\nTry force-saving again in a few seconds.\n\n${e}`,8e3),new Error(`URL did not load within the timeout period of ${A}ms`);const i=await t.arrayBuffer();return{status:t.status,headers:Object.fromEntries(t.headers.entries()),arrayBuffer:i,json:null,text:null}}catch(t){return void errorlog({where:getFileFromURL,message:t.message,url:e})}},getFileFromURLFallback=async(e,t,A=3e3)=>{try{return await Promise.race([(async()=>new Promise((e=>setTimeout((()=>e(null)),A))))(),obsidian_module.requestUrl({url:e,method:"get",contentType:t,throw:!1})])}catch(t){return void errorlog({where:getFileFromURL,message:`URL did not load within timeout period of ${A}ms`,url:e})}},getDataURLFromURL=async(e,t,A=3e3)=>{let i=await getFileFromURL(e,t,A);return i&&200!==i.status&&(i=await getFileFromURLFallback(e,t,A)),i&&200===i.status?await getDataURL(i.arrayBuffer,t):e},blobToBase64=async e=>{const t=await e.arrayBuffer(),A=new Uint8Array(t);for(var i="",n=A.byteLength,a=0;a(void 0===window.pdfjsLib&&await obsidian_module.loadPdfJs(),await window.pdfjsLib.getDocument(app.vault.getResourcePath(e)).promise),labelCTRL=()=>DEVICE.isIOS||DEVICE.isMacOS?"CMD":"CTRL",labelALT=()=>DEVICE.isIOS||DEVICE.isMacOS?"OPT":"ALT",labelMETA=()=>DEVICE.isIOS||DEVICE.isMacOS?"CTRL":DEVICE.isWindows?"WIN":"META",labelSHIFT=()=>"SHIFT",isCTRL=e=>DEVICE.isIOS||DEVICE.isMacOS?e.metaKey:e.ctrlKey,isALT=e=>e.altKey,isMETA=e=>DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey:e.metaKey,isSHIFT=e=>e.shiftKey,setCTRL=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.metaKey=t:e.ctrlKey=t,e),setALT=(e,t)=>(e.altKey=t,e),setMETA=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey=t:e.metaKey=t,e),setSHIFT=(e,t)=>(e.shiftKey=t,e),mdPropModifier=e=>!isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&isMETA(e),scaleToFullsizeModifier=e=>isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&isMETA(e)||!isSHIFT(e)&&isCTRL(e)&&isALT(e)&&!isMETA(e),linkClickModifierType=e=>isCTRL(e)&&!isALT(e)&&isSHIFT(e)&&!isMETA(e)?"active-pane":!isCTRL(e)||isALT(e)||isSHIFT(e)||isMETA(e)?isCTRL(e)&&isALT(e)&&!isSHIFT(e)&&!isMETA(e)?"new-pane":DEVICE.isDesktop&&isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"popout-window":isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"new-tab":mdPropModifier(e)?"md-properties":"active-pane":"new-tab",externalDragModifierType=e=>DEVICE.isWindows&&isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&!isMETA(e)?"embeddable":!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||!isALT(e)||isMETA(e)?!DEVICE.isWindows||isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e)?DEVICE.isMacOS&&isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"insert-link":isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&!isMETA(e)||DEVICE.isWindows&&!isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"image-import":"image-url":"insert-link":"embeddable",internalDragModifierType=e=>(DEVICE.isIOS||DEVICE.isMacOS||!isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))&&(!DEVICE.isIOS&&!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||isALT(e)||!isMETA(e))?(!isSHIFT(e)||isCTRL(e)||isALT(e)||isMETA(e))&&(isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))?scaleToFullsizeModifier(e)?"image-fullsize":"link":"image":"embeddable",emulateCTRLClickForLinks=e=>({shiftKey:e.shiftKey,ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,altKey:e.altKey}),emulateKeysForLinkClick=e=>{const t={shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1};if(!e)return t;switch(e){case"active-pane":setCTRL(t,!0),setSHIFT(t,!0);break;case"new-pane":setCTRL(t,!0),setALT(t,!0);break;case"popout-window":setCTRL(t,!0),setALT(t,!0),setSHIFT(t,!0);break;case"new-tab":setCTRL(t,!0);break;case"md-properties":setCTRL(t,!0),setMETA(t,!0)}return t},anyModifierKeysPressed=e=>e.shiftKey||e.ctrlKey||e.metaKey||e.altKey,getParentOfClass=(e,t)=>{var A;let i=e.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(t);)i=i.parentElement;return(null===(A=null==i?void 0:i.classList)||void 0===A?void 0:A.contains(t))?i:null},getLeaf=(e,t,A)=>{switch(linkClickModifierType(A)){case"active-pane":return t;case"new-tab":default:return(()=>{if(!e.settings.openInMainWorkspace)return app.workspace.getLeaf("tab");const[A,i]=getLeafLoc(t);return"main"===A?app.workspace.getLeaf("tab"):getNewOrAdjacentLeaf(e,t)})();case"new-pane":return getNewOrAdjacentLeaf(e,t);case"popout-window":return app.workspace.openPopoutLeaf()}},getLeafLoc=e=>{const t=e.id,A=app.workspace.getLayout(),i=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>i(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),n=i(A.main);return[A.main&&n.contains(t)?"main":A.floating&&i(A.floating).contains(t)?"popout":A.left&&i(A.left).contains(t)?"left":A.right&&i(A.right).contains(t)?"right":"hover",n]},getNewOrAdjacentLeaf=(e,t)=>{const[A,i]=getLeafLoc(t),n=e=>{var A;let n=app.workspace.getMostRecentLeaf();return n&&n!==t&&(null===(A=n.view)||void 0===A?void 0:A.containerEl.ownerDocument)===document||(n=null,i.forEach((A=>{var i;const a=app.workspace.getLeafById(A);n||!(null===(i=a.view)||void 0===i?void 0:i.navigation)||t===a||e&&(null==a?void 0:a.parent)===(null==t?void 0:t.parent)||(n=a)}))),n};if(e.settings.openInMainWorkspace||["main","left","right"].contains(A)){if(!e.settings.openInAdjacentPane){if("main"===A)return app.workspace.createLeafBySplit(t);const e=n();return e?"empty"===e.view.getViewType()?e:app.workspace.createLeafBySplit(e):app.workspace.getLeaf(!0)}const i=n(!0);return null!=i?i:app.workspace.createLeafBySplit(t)}if(!e.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(t);if("hover"===A){const A=new Set;return app.workspace.iterateAllLeaves((e=>{e!==t&&t.containerEl.parentElement===e.containerEl.parentElement&&A.add(e)})),0===A.size?e.app.workspace.createLeafBySplit(t):Array.from(A)[0]}if("popout"===A){const e=new Set;return app.workspace.iterateAllLeaves((A=>{A!==t&&A.view.navigation&&A.view.containerEl.ownerDocument===t.view.containerEl.ownerDocument&&e.add(A)})),0===e.size?app.workspace.createLeafBySplit(t):Array.from(e)[0]}return e.app.workspace.createLeafBySplit(t)},getAttachmentsFolderAndFilePath=async(e,t,A)=>{let i=e.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const e=`${splitFolderAndFilename(t).folderpath}/`;i=obsidian_module.normalizePath(e+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian_module.normalizePath(""===i?A:`${i}/${A}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark"),getContainerForDocument=e=>{if(e!==document&&app.workspace.floatingSplit)for(const t of app.workspace.floatingSplit.children)if(t.doc===e)return t;return app.workspace.rootSplit},cleanSectionHeading=e=>e?e.replace(REG_SECTION_REF_CLEAN,"").replace(/\s+/g," ").trim():e,cleanBlockRef=e=>e?e.replace(REG_BLOCK_REF_CLEAN,"").replace(/\s+/g," ").trim():e,useDefaultExcalidrawFrame=e=>!e.link.startsWith("["),patchMobileView=e=>{if(DEVICE.isDesktop)return;console.log("patching mobile view");const t=getParentOfClass(e.containerEl,"mod-top");t&&(t.hasClass("mod-visible")||t.addClass("mod-visible"))},processLinkText=(e,t)=>{let A=null;if(e.search("#")>-1){const i=getLinkParts(e,t.file);A=`#${i.isBlockRef?"^":""}${i.ref}`,e=i.path}return e.match(REG_LINKINDEX_INVALIDCHARS)?{subpath:A,file:null}:{subpath:A,file:app.metadataCache.getFirstLinkpathDest(e,t.file.path)}},generateEmbeddableLink=(e,t)=>e;let versionUpdateChecked=!1;const checkExcalidrawVersion=async e=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const e=async()=>JSON.parse(await obsidian_module.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),t=(await e()).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,t)=>t.published-e.published))[0].version;isVersionNewerThanOther(t,PLUGIN_VERSION)&&new obsidian_module.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${t}`)}catch(e){errorlog({where:"Utils/checkExcalidrawVersion",error:e})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapTextAtCharLength(e,t,A=!1,i=0){if(!t)return e;let n="";if(A){for(const A of e.split("\n")){const e=A.match(new RegExp(`(.){1,${t}}`,"g"));n+=e?`${e.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${t}})(\\s+|$\\n?)|([^\\s]{1,${t+i}})(\\s+|$\\n?)?`,"gm"),r=e.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const e=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(e),0===e&&(n+="\n")}return n.replace(/\n$/,"")}new Random(Date.now());const rotate$1=(e,t,A,i,n)=>[(e-A)*Math.cos(n)-(t-i)*Math.sin(n)+A,(e-A)*Math.sin(n)+(t-i)*Math.cos(n)+i],rotatedDimensions=e=>{if(0===e.angle)return[e.x,e.y,e.width,e.height];const t=e.x+e.width/2,A=e.y+e.height/2,[i,n]=rotate$1(e.x,e.y,t,A,e.angle),[a,r]=rotate$1(e.x+e.width,e.y+e.height,t,A,e.angle);return[inew Promise(((A,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result;A(e)},n.onerror=e=>i(e),n.readAsDataURL(new Blob([new Uint8Array(e)],{type:t}))})),getFontDataURL=async(e,t,A,i)=>{let n="",a="",r="";const s=e.metadataCache.getFirstLinkpathDest(t,A);if(s){const t=await e.vault.readBinary(s),A=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(t,A),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=e=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=async e=>{if(!e)return null;if(e.match(/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i)){const t=e,A=getURLImageExtension(t),i=getMimeType(A);e=await getDataURLFromURL(t,i)}const t=e.matchAll(/base64,(.*)/g).next();if(!t.value)return null;const A=window.atob(t.value[1]),i=A.length,n=new Uint8Array(i);for(let e=0;e{var i;let n=e.elements;n.some((e=>"embeddable"===e.type))&&(n=JSON.parse(JSON.stringify(n)),n.filter((e=>"embeddable"===e.type)).forEach((t=>{var A,i;t.link=(i=t.link,null===(A=e.appState)||void 0===A||A.theme,i)})));try{return await exportToSvg({elements:n,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(i=e.appState)||void 0===i?void 0:i.theme)},e.appState),files:e.files,exportPadding:A})}catch(e){return null}};function filterFiles(e){let t={};return Object.entries(e).forEach((([e,A])=>{A.dataURL.startsWith("http")||(t[e]=A)})),t}const getPNG=async(e,t,A,i=1)=>{var n;try{return await exportToBlob({elements:e.elements,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(n=e.appState)||void 0===n?void 0:n.theme)},e.appState),files:filterFiles(e.files),exportPadding:A,mimeType:"image/png",getDimensions:(e,t)=>({width:e*i,height:t*i,scale:i})})}catch(e){return errorlog({where:"Utils.getPNG",error:e}),null}},getQuickImagePreview=async(e,t,A)=>{if(!e.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(t,A),n=e.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian_module.TFile?"png"===A?await e.app.vault.readBinary(n):await e.app.vault.read(n):null},embedFontsInSVG=(e,t)=>{const A=null!=e.querySelector("text[font-family^='Virgil']"),i=null!=e.querySelector("text[font-family^='Cascadia']"),n=null!=e.querySelector("text[font-family^='LocalFont']"),a=e.querySelector("defs");return a&&(i||A||n)&&(a.innerHTML=``),e},getImageSize=async e=>new Promise(((t,A)=>{const i=new Image;i.onload=()=>{t({height:i.naturalHeight,width:i.naturalWidth})},i.onerror=A,i.src=e})),addAppendUpdateCustomData=(e,t)=>{if(!t)return e;e.customData||(e.customData={});for(const A in t)void 0!==t[A]&&(e.customData[A]=t[A]);return e},scaleLoadedImage=(e,t)=>{let A=!1;if(!t||!e)return{dirty:A,scene:e};for(const i of t){const[t,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;e.elements.filter((e=>"image"===e.type&&e.fileId===i.id)).forEach((e=>{var r,s;const[o,l]=[e.width,e.height];if(((null===(r=e.customData)||void 0===r?void 0:r.isAnchored)&&i.shouldScale||!(null===(s=e.customData)||void 0===s?void 0:s.isAnchored)&&!i.shouldScale)&&(addAppendUpdateCustomData(e,i.shouldScale?{isAnchored:!1}:{isAnchored:!0}),A=!0),i.shouldScale){if(a!=o/l){A=!0;const i=Math.sqrt(o*l*n/t),a=Math.sqrt(o*l*t/n);e.height=i,e.width=a,e.y+=(l-i)/2,e.x+=(o-a)/2}}else o===t&&l===n||(A=!0,e.height=n,e.width=t,e.y+=(l-n)/2,e.x+=(o-t)/2)}))}return{dirty:A,scene:e}},setDocLeftHandedMode=(e,t)=>{const A=t.createElement("style");A.id="excalidraw-left-handed",A.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=t.getElementById(A.id);i&&t.head.removeChild(i),e&&t.head.appendChild(A)},setLeftHandedMode=e=>{const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;i&&(t.has(i)||(t.add(i),setDocLeftHandedMode(e,i)))}))},getLinkParts=(e,t)=>{var A,i,n;const a=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/),r="^"===a[2];return{original:e,path:t&&""===a[1]?t.path:a[1],isBlockRef:r,ref:(null===(A=a[3])||void 0===A?void 0:A.match(/^page=\d*$/i))?a[3]:r?cleanBlockRef(a[3]):cleanSectionHeading(a[3]),width:a[4]?parseInt(a[4]):void 0,height:a[5]?parseInt(a[5]):void 0,page:parseInt(null===(n=null===(i=a[3])||void 0===i?void 0:i.match(/page=(\d*)/))||void 0===n?void 0:n[1])}},compress=e=>lzStringExports.compressToBase64(e).replace(/(.{64})/g,"$1\n\n"),decompress=e=>lzStringExports.decompressFromBase64(e.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(e,t,A)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return A.frontmatter["excalidraw-export-dark"]?"dark":"light"}return e.settings.exportWithTheme?A:"light"},hasExportBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!A.frontmatter["excalidraw-export-transparent"]}return e.settings.exportWithBackground},getExportPadding=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if(!(null==A?void 0:A.frontmatter))return e.settings.exportPaddingSVG;if(null!=A.frontmatter["excalidraw-export-padding"]){const e=parseInt(A.frontmatter["excalidraw-export-padding"]);if(!isNaN(e))return e}if(null!=A.frontmatter["excalidraw-export-svgpadding"]){const e=parseInt(A.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(e))return e}}return e.settings.exportPaddingSVG},getPNGScale=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-pngscale"]){const e=parseFloat(A.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(e)&&e>0)return e}}return e.settings.pngExportScale},isVersionNewerThanOther=(e,t)=>{const A=e.match(/(\d*)\.(\d*)\.(\d*)/),i=t.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(A&&4===A.length&&i&&4===i.length&&!(isNaN(parseInt(A[1]))||isNaN(parseInt(A[2]))||isNaN(parseInt(A[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(A[1])>parseInt(i[1])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>parseInt(i[2])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>=parseInt(i[2])&&parseInt(A[3])>parseInt(i[3])))},getEmbeddedFilenameParts=e=>{const t=null==e?void 0:e.match(/([^#\^]*)((#\^)(group=|area=|frame=|taskbone)?([^\|]*)|(#)(group=|area=|frame=|taskbone)?([^\^\|]*))(.*)/);return t?{filepath:t[1],hasBlockref:Boolean(t[3]),hasGroupref:"group="===t[4]||"group="===t[7],hasTaskbone:"taskbone"===t[4]||"taskbone"===t[7],hasArearef:"area="===t[4]||"area="===t[7],hasFrameref:"frame="===t[4]||"frame="===t[7],blockref:t[5],hasSectionref:Boolean(t[6]),sectionref:t[8],linkpartReference:t[2],linkpartAlias:t[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,hasFrameref:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},fragWithHTML=e=>createFragment((t=>t.createDiv().innerHTML=e)),errorlog=e=>{console.error(Object.assign({plugin:"Excalidraw"},e))},sleep$1=async e=>new Promise((t=>setTimeout(t,e))),log=console.log.bind(window.console),debug=console.log.bind(window.console),getContainerElement=(e,t)=>{var A;return e&&e.containerId&&null!==(A=t.elements.filter((t=>t.id===e.containerId))[0])&&void 0!==A?A:null},updateFrontmatterInString=(e,t)=>{if(!e)return e;for(const A of t){const t=new RegExp(`${A[0]}:\\s.*\\n`,"g");e=e.match(t)?e.replaceAll(t,`${A[0]}: ${A[1]}\n`):e.replace(/^---\n/,`---\n${A[0]}: ${A[1]}\n`)}return e},isHyperlink=e=>e&&!e.includes("\n")&&!e.includes("\r")&&e.match(/^https?:(\d*)?\/\/[^\s]*$/),isContainer=e=>{var t;return"arrow"!==e.type&&(null===(t=e.boundElements)||void 0===t?void 0:t.map((e=>e.type)).includes("text"))},hyperlinkIsImage=e=>{isHyperlink(e);const t=e.split("?")[0];return IMAGE_TYPES.contains(t.substring(t.lastIndexOf(".")+1))},hyperlinkIsYouTubeLink=e=>isHyperlink(e)&&(e.startsWith("https://youtu.be")||e.startsWith("https://www.youtube.com")||e.startsWith("https://youtube.com")||e.startsWith("https//www.youtu.be"))&&null!==e.match(/(youtu.be\/|v=)([^?\/\&]*)/),getYouTubeThumbnailLink=async e=>{const t=e.match(/(youtu.be\/|v=)([^?\/\&]*)/);if(!t||!t[2])return null;const A=t[2];let i=`https://i.ytimg.com/vi/${A}/maxresdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1});return n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/hq720.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/mqdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:`https://i.ytimg.com/vi/${A}/default.jpg`))},isCallerFromTemplaterPlugin=e=>{const t=e.split("\n");for(const e of t)if(e.trim().startsWith("at Templater."))return!0;return!1},convertSVGStringToElement=e=>{const t=document.createElement("div");t.innerHTML=e;const A=t.firstChild;if(A instanceof SVGSVGElement)return A};var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install the script",UPDATE_SCRIPT:"Update available - Click to install",CHECKING_SCRIPT:"Checking for newer version - Click to reinstall",UNABLETOCHECK_SCRIPT:"Update check failed - Click to reinstall",UPTODATE_SCRIPT:"Script is up to date - Click to reinstall",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"Create new drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Embed a drawing",TRANSCLUDE_MOST_RECENT:"Embed the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create new drawing - IN AN ADJACENT WINDOW",NEW_IN_NEW_TAB:"Create new drawing - IN A NEW TAB",NEW_IN_ACTIVE_PANE:"Create new drawing - IN THE CURRENT ACTIVE WINDOW",NEW_IN_POPOUT_WINDOW:"Create new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create new drawing - IN AN ADJACENT WINDOW - and embed into active document",NEW_IN_NEW_TAB_EMBED:"Create new drawing - IN A NEW TAB - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create new drawing - IN THE CURRENT ACTIVE WINDOW - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create new drawing - IN A POPOUT WINDOW - and embed into active document",TOGGLE_LOCK:"Toggle Text Element between edit RAW and PREVIEW",DELETE_FILE:"Delete selected image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:`Copy markdown link for selected element to clipboard. ${labelCTRL()}+CLICK to copy 'group=' link. SHIFT+CLICK to copy an 'area=' link. ${labelALT()}+CLICK to watch a help video.`,INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_FRAME:"Copy 'frame=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",INSERT_MD:"Insert markdown file from vault",INSERT_PDF:"Insert PDF file from vault",UNIVERSAL_ADD_FILE:"Insert ANY file from your Vault to the active drawing",INSERT_LATEX:`Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!}). ${labelALT()}+CLICK to watch a help video.`,ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",RUN_OCR:"OCR: Grab text from freedraw scribble and pictures to clipboard",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",EXPORT_IMAGE:"Export Image",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a ImageElement, or select a TextElement that contains an internal or external link.\n",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only affects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only affects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",BACKUP_AVAILABLE:"We encountered an error while loading your drawing. This might have occurred if Obsidian unexpectedly closed during a save operation. For example, if you accidentally closed Obsidian on your mobile device while saving.

GOOD NEWS: Fortunately, a local backup is available. However, please note that if you last modified this drawing on a different device (e.g., tablet) and you are now on your desktop, that other device likely has a more recent backup.

I recommend trying to open the drawing on your other device first and restore the backup from its local storage.

Would you like to load the backup?",BACKUP_RESTORED:"Backup restored",CACHE_NOT_READY:"I apologize for the inconvenience, but an error occurred while loading your file.

Having a little patience can save you a lot of time...

The plugin has a backup cache, but it appears that you have just started Obsidian. Initializing the Backup Cache may take some time, usually up to a minute or more depending on your device's performance. You will receive a notification in the top right corner when the cache initialization is complete.

Please press OK to attempt loading the file again and check if the cache has finished initializing. If you see a completely empty file behind this message, I recommend waiting until the backup cache is ready before proceeding. Alternatively, you can choose Cancel to manually correct your file.
",OBSIDIAN_TOOLS_PANEL:"Obsidian Tools Panel",ERROR_SAVING_IMAGE:"Unknown error occured while fetching the image. It could be that for some reason the image is not available or rejected the fetch request from Obsidian",WARNING_PASTING_ELEMENT_AS_TEXT:"PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED",USE_INSERT_FILE_MODAL:"Use 'Insert Any File' to embed a markdown note",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is available.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: Use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and its name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",SAVING_HEAD:"Saving",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be affected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_INTERVAL_DESKTOP_NAME:"Interval for autosave on Desktop",AUTOSAVE_INTERVAL_DESKTOP_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. clicking on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly either by killing the Obsidian process, or clicking to close Obsidian altogether.",AUTOSAVE_INTERVAL_MOBILE_NAME:"Interval for autosave on Mobile",AUTOSAVE_INTERVAL_MOBILE_DESC:"I recommend a more frequent interval for Mobiles. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. tapping on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly (i.e. swiping it away). Also note, that when you switch apps on a Mobile device, sometimes Android and iOS closes Obsidian in the background to save system resources. In such a case Excalidraw will not be able to save the latest changes.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Affects filename only when embedding into a markdown document. This text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",DYNAMICSTYLE_NAME:"Dynamic styling",DYNAMICSTYLE_DESC:"Change Excalidraw UI colors to match the canvas color",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",IFRAME_MATCH_THEME_NAME:"IFrames (markdown embeds) to match Excalidraw theme",IFRAME_MATCH_THEME_DESC:"Set this to true if you are for example using Obsidian in dark mode but use excalidraw with a light background. With this setting the embedded Obsidian markdown document will match the Excalidraw theme (i.e. light colors if Excalidraw is in light mode). ",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not affect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF: Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not affected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal, view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",DEFAULT_PINCHZOOM_NAME:"Allow pinch zoom in pen mode",DEFAULT_PINCHZOOM_DESC:"Pinch zoom in pen mode when using the freedraw tool is disabled by default to prevent unwanted accidental zooming with your palm.
Toggle on: Enable pinch zoom in pen mode
Toggle off: Disable pinch zoom in pen mode",DEFAULT_WHEELZOOM_NAME:"Mouse wheel to zoom by default",DEFAULT_WHEELZOOM_DESC:`Toggle on: Mouse wheel to zoom; ${labelCTRL()} + mouse wheel to scroll
Toggle off: ${labelCTRL()} + mouse wheel to zoom; Mouse wheel to scroll`,ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_ONOPEN_NAME:"Zoom to fit on file open",ZOOM_TO_FIT_ONOPEN_DESC:"Zoom to fit drawing when the drawing is first opened
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:`${labelCTRL()}+CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].`,ADJACENT_PANE_NAME:"Reuse adjacent pane",ADJACENT_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing pane, and try to open the link there. Excalidraw will look for the other workspace pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.`,MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. `,LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:`Hover preview without pressing the ${labelCTRL()} key`,HOVERPREVIEW_DESC:`Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the ${labelCTRL()} key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the ${labelCTRL()} key while hovering the link.`,LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:`${labelCTRL()}+CLICK on text with [[links]] or [](links) to open them`,LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readability of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images SHIFT drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This affects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:`The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (${DEVICE.isIOS||DEVICE.isMacOS?"CMD+OPT+i":"CTRL+SHIFT+i"}) and type in the following command: "ExcalidrawAutomate.mostRecentMarkdownSVG". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: "excalidraw-css: css_file_in_vault|css-snippet".`,EMBED_HEAD:"Embed & Export",EMBED_CACHING:"Image caching",EMBED_SIZING:"Image sizing",EMBED_THEME_BACKGROUND:"Image theme and background color",EMBED_IMAGE_CACHE_NAME:"Cache images for embedding in markdown",EMBED_IMAGE_CACHE_DESC:"Cache images for embedding in markdown. This will speed up the embedding process, but in case you compose images of several sub-component drawings, the embedded image in Markdown won't update until you open the drawing and save it to trigger an update of the cache.",EMBED_IMAGE_CACHE_CLEAR:"Purge Cache",BACKUP_CACHE_CLEAR:"Purge Backups",BACKUP_CACHE_CLEAR_CONFIRMATION:"This action will delete all Excalidraw drawing backups. Backups are used as a safety measure in case your drawing file gets damaged. Each time you open Obsidian the plugin automatically deletes backups for files that no longer exist in your Vault. Are you sure you want to clear all backups?",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_IMAGETYPE_NAME:"Image type in markdown preview",EMBED_PREVIEW_IMAGETYPE_DESC:"Native SVG: High Image Quality. Embedded Websites, YouTube videos, Obsidian Links, and external images embedded via a URL will all work. Embedded Obsidian pages will not
SVG Image: High Image Quality. Embedded elements and images embedded via URL only have placeholders, links don't work
PNG Image: Lower Image Quality, but in some cases better performance with large drawings. Embedded elements and images embedded via URL only have placeholders, links don't work. Also some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed Drawing using Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Auto-export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",LATEX_DEFAULT_NAME:"Default LaTeX formual for new equations",LATEX_DEFAULT_DESC:"Leave empty if you don't want a default formula. You can add default formatting here such as \\color{white}.",NONSTANDARD_HEAD:"Non-Excalidraw.com supported features",NONSTANDARD_DESC:"These features are not available on excalidraw.com. When exporting the drawing to Excalidraw.com these features will appear different.",CUSTOM_PEN_NAME:"Number of custom pens",CUSTOM_PEN_DESC:"You will see these pens next to the Obsidian Menu on the canvas. You can customize the pens on the canvas by long-pressing the pen button.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not affect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Fourth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",TASKBONE_HEAD:"Taskbone Optical Character Recogntion",TASKBONE_DESC:"This is an experimental integration of optical character recognition into Excalidraw. Please note, that taskbone is an independent external service not provided by Excalidraw, nor the Excalidraw-Obsidian plugin project. The OCR service will grab legible text from freedraw lines and embedded pictures on your canvas and place the recognized text in the frontmatter of your drawing as well as onto clipboard. Having the text in the frontmatter will enable you to search in Obsidian for the text contents of these. Note, that the process of extracting the text from the image is not done locally, but via an online API. The taskbone service stores the image on its servers only as long as necessary for the text extraction. However, if this is a dealbreaker, then please don't use this feature.",TASKBONE_ENABLE_NAME:"Enable Taskbone",TASKBONE_ENABLE_DESC:"By enabling this service your agree to the Taskbone Terms and Conditions and the Privacy Policy.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone offers a free service with a reasonable number of scans per month. If you want to use this feature more frequently, or you want to supoprt the developer of Taskbone (as you can imagine, there is no such thing as 'free', providing this awesome OCR service costs some money to the developer of Taskbone), you can purchase a paid API key from taskbone.com. In case you have purchased a key, simply overwrite this auto generated free-tier API-key with your paid key.",SELECT_FILE:"Select a file then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:`Select a file then press ENTER, or SHIFT+${labelMETA()}+ENTER to insert at 100% scale.`,NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",SELECT_PDF:"Select the PDF document you want to insert",PDF_PAGES_HEADER:"Pages to load?",PDF_PAGES_DESC:"Format: 1, 3-5, 7, 9-11",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode",TOGGLE_DISABLEBINDING:"Toggle to invert default binding behavior",TOGGLE_FRAME_RENDERING:"Toggle frame rendering",TOGGLE_FRAME_CLIPPING:"Toggle frame clipping",OPEN_LINK_CLICK:"Navigate to selected element link",OPEN_LINK_PROPS:"Open markdown-embed properties or open link in new window",NARROW_TO_HEADING:"Narrow to heading...",NARROW_TO_BLOCK:"Narrow to block...",SHOW_ENTIRE_FILE:"Show entire file",ZOOM_TO_FIT:"Zoom to fit",RELOAD:"Reload original link",OPEN_IN_BROWSER:"Open current link in browser",PROMPT_FILE_DOES_NOT_EXIST:"File does not exist. Do you want to create it?",PROMPT_ERROR_NO_FILENAME:"Error: Filename for new file may not be empty",PROMPT_ERROR_DRAWING_CLOSED:"Unknown error. It seems as if your drawing was closed or the drawing file is missing",PROMPT_TITLE_NEW_FILE:"New File",PROMPT_TITLE_CONFIRMATION:"Confirmation",PROMPT_BUTTON_CREATE_EXCALIDRAW:"Create Excalidraw",PROMPT_BUTTON_CREATE_MARKDOWN:"Create Markdown",PROMPT_BUTTON_NEVERMIND:"Nevermind",PROMPT_BUTTON_OK:"OK",PROMPT_BUTTON_CANCEL:"Cancel",PROMPT_BUTTON_INSERT_LINE:"Insert new line",PROMPT_BUTTON_INSERT_SPACE:"Insert space",PROMPT_BUTTON_INSERT_LINK:"Insert markdown link to file",PROMPT_BUTTON_UPPERCASE:"Uppercase"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"有可用更新 - 点击安装",CHECKING_SCRIPT:"检查更新中 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"脚本已是最新 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_NEW_TAB:"新建绘图 - 于新页签",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_NEW_TAB_EMBED:"新建绘图 - 于新页签 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",EXPORT_SVG_WITH_SCENE:"导出 SVG 文件(包含 Scene)到当前目录",EXPORT_PNG_WITH_SCENE:"导出 PNG 文件(包含 Scene)到当前目录",TOGGLE_LOCK:"文本元素:原文模式(RAW)⟺ 预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:`复制所选元素的内部链接(形如 [[file#^elementID]])。\n按住 ${labelCTRL()} 可复制元素所在分组的内部链接(形如 [[file#^group=elementID]])。\n按住 SHIFT 可复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])。\n按住 ${labelALT()} 可观看视频演示。`,INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的内部链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",IMPORT_SVG:"插入 SVG 矢量图形到当前绘图(支持有限,尚不支持文本)",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:`插入 LaTeX 公式到当前绘图。按住 ${labelALT()} 可观看视频演示。`,ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的更新说明",RUN_OCR:"OCR 识别涂鸦和图片里的文本并复制到剪贴板",TRAY_MODE:"绘图工具属性页:面板模式 ⟺ 托盘模式",SEARCH:"搜索文本",RESET_IMG_TO_100:"重设图像元素的尺寸为 100%",TEMPORARY_DISABLE_AUTOSAVE:"临时禁用自动保存功能,直到 Obsidian 退出(勿点,除非你清楚自己在干什么)",TEMPORARY_ENABLE_AUTOSAVE:"恢复启用自动保存功能",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:`导出 PNG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,SAVE_AS_SVG:`导出 SVG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FORCE_SAVE:"保存绘图(并更新嵌入了该绘图的面板)",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件正以兼容模式打开。需要转换为新格式才能使用插件的全部功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹(大小写敏感!)",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",SAVING_HEAD:"保存",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_INTERVAL_DESKTOP_NAME:"桌面端定期保存时间间隔",AUTOSAVE_INTERVAL_DESKTOP_DESC:"每隔多长时间触发一次自动保存。但如果当前绘图没有发生改变,将不会触发自动保存。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(不管是终结进程还是点关闭按钮)不会触发自动保存。",AUTOSAVE_INTERVAL_MOBILE_NAME:"移动端定期保存时间间隔",AUTOSAVE_INTERVAL_MOBILE_DESC:"建议在移动端设置更短的自动保存时间间隔。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(在应用切换器中划掉)不会触发自动保存。此外,当您切换到其他应用时,有时候系统会自动清理 Obsidian 后台以释放资源。这种情况下,Excalidraw 无法保存最新的变动。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",DEFAULT_PINCHZOOM_NAME:"允许在触控笔模式下进行双指缩放",DEFAULT_PINCHZOOM_DESC:"在触控笔模式下使用自由画笔工具时,双指缩放可能造成干扰。
开启: 允许在触控笔模式下进行双指缩放
关闭: 禁止在触控笔模式下进行双指缩放",DEFAULT_WHEELZOOM_NAME:"鼠标滚轮缩放页面",DEFAULT_WHEELZOOM_DESC:`开启:鼠标滚轮为缩放页面,${labelCTRL()}+鼠标滚轮为滚动页面
关闭:鼠标滚轮为滚动页面,${labelCTRL()}+鼠标滚轮为缩放页面`,ZOOM_TO_FIT_NAME:"调节面板尺寸后自动缩放页面",ZOOM_TO_FIT_DESC:"调节面板尺寸后,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_ONOPEN_NAME:"打开绘图时自动缩放页面",ZOOM_TO_FIT_ONOPEN_DESC:"打开绘图文件时,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:`按住 ${labelCTRL()} 并点击包含 [[链接]] 的文本元素可以打开其中的链接。如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。`,ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。`,MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。`,LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览(PREVIEW)模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"待办任务(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成项目",TODO_DESC:"未完成的待办项目的符号",DONE_NAME:"已完成项目",DONE_DESC:"已完成的待办项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:`开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 ${labelCTRL()} 才能预览。`,LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:`按住 ${labelCTRL()} 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接`,LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",QUOTE_TRANSCLUSION_REMOVE_NAME:"隐藏 Transclusion 行首的引用符号",QUOTE_TRANSCLUSION_REMOVE_DESC:"不显示 Transclusion 中每一行行首的 > 符号,以提高纯文本 Transclusion 的可读性。
开启:隐藏 > 符号
关闭:不隐藏 > 符号(注意,由于 Obsidian API 的原因,首行行首的 > 符号不会被隐藏)",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:`您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 ${labelCTRL()} 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。`,MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",NONSTANDARD_HEAD:"非 Excalidraw.com 官方支持的特性",NONSTANDARD_DESC:"这些特性不受 Excalidraw.com 官方支持。当导出绘图到 Excalidraw.com 时,这些特性将会发生变化。",CUSTOM_PEN_NAME:"自定义画笔的数量",CUSTOM_PEN_DESC:"在画布上的 Obsidian 菜单旁边切换自定义画笔。长按画笔按钮可以修改其样式。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",TASKBONE_HEAD:"Taskbone OCR(光学符号识别)",TASKBONE_DESC:"这是一个将 OCR 融入 Excalidraw 的实验性功能。请注意,Taskbone 是一项独立的外部服务,而不是由 Excalidraw 或 Obsidian-excalidraw-plugin 项目提供的。OCR 能够对画布上用自由画笔工具写下的涂鸦或者嵌入的图像进行文本识别,并将识别出来的文本写入绘图文件的 frontmatter,同时复制到剪贴板。之所以要写入 frontmatter 是为了便于您在 Obsidian 中能够搜索到这些文本。注意,识别的过程不是在本地进行的,而是通过在线 API,图像会被上传到 taskbone 的服务器(仅用于识别目的)。如果您对此敏感,请不要使用这个功能。",TASKBONE_ENABLE_NAME:"启用 Taskbone",TASKBONE_ENABLE_DESC:"启用这个功能意味着你同意 Taskbone 条款及细则 以及 隐私政策.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone 的免费 API key 提供了一定数量的每月识别次数。如果您非常频繁地使用此功能,或者想要支持 Taskbone 的开发者(您懂的,没有人能用爱发电,Taskbone 开发者也需要投入资金才能持续运行这项 OCR 服务)您可以到 taskbone.com 购买一个商用 API key。购买后请将它填写到旁边这个文本框里,替换掉原本自动生成的免费 API key。",SELECT_FILE:"选择一个文件后按回车。",SELECT_FILE_WITH_OPTION_TO_SCALE:`选择一个文件后按回车,或者 SHIFT+${labelMETA()}+ENTER 以 100% 尺寸插入。`,NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式",OPEN_LINK_CLICK:"打开所选的图形或文本元素里的链接",OPEN_LINK_PROPS:"编辑所选 MD-Embed 的内部链接,或者打开所选的图形或文本元素里的链接"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian_module.moment.locale()];function t$d(e){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian_module.moment.locale()}),locale&&locale[e]||en[e]}var html2canvas$1={exports:{}}; +/*! + * html2canvas 1.4.1 + * Copyright (c) 2022 Niklas von Hertzen + * Released under MIT License + */html2canvas$1.exports,function(e,t){e.exports=function(){ +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ +var e=function(t,A){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var A in t)Object.prototype.hasOwnProperty.call(t,A)&&(e[A]=t[A])},e(t,A)};function t(t,A){if("function"!=typeof A&&null!==A)throw new TypeError("Class extends value "+String(A)+" is not a constructor or null");function i(){this.constructor=t}e(t,A),t.prototype=null===A?Object.create(A):(i.prototype=A.prototype,new i)}var A=function(){return A=Object.assign||function(e){for(var t,A=1,i=arguments.length;A0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&A>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h<64;h++)d[c.charCodeAt(h)]=h;for(var u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),p=0;p<64;p++)g[u.charCodeAt(p)]=p;for(var m=function(e,t,A){return e.slice?e.slice(t,A):new Uint16Array(Array.prototype.slice.call(e,t,A))},w=function(){function e(e,t,A,i,n,a){this.initialValue=e,this.errorValue=t,this.highStart=A,this.highValueIndex=i,this.index=n,this.data=a}return e.prototype.get=function(e){var t;if(e>=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E="undefined"==typeof Uint8Array?[]:new Uint8Array(256),B=0;B<64;B++)E[f.charCodeAt(B)]=B;var b=10,v=13,C=15,y=17,F=18,x=19,S=20,T=21,I=22,M=24,k=25,U=26,O=27,Q=28,L=30,N=32,D=33,R=34,H=35,P=37,V=38,K=39,G=40,W=42,z=[9001,65288],X="×",Y="÷",j=function(e,t){var A=function(e){var t,A,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i0;){var r=i[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var s=A;s<=i.length;){var o;if((o=i[++s])===t)return!0;if(o!==b)break}if(r!==b)break}return!1},ie=function(e,t){for(var A=e;A>=0;){var i=t[A];if(i!==b)return i;A--}return 0},ne=function(e,t,A,i,n){if(0===A[i])return X;var a=i-1;if(Array.isArray(n)&&!0===n[a])return X;var r=a-1,s=a+1,o=t[a],l=r>=0?t[r]:0,c=t[s];if(2===o&&3===c)return X;if(-1!==J.indexOf(o))return"!";if(-1!==J.indexOf(c))return X;if(-1!==Z.indexOf(c))return X;if(8===ie(a,t))return Y;if(11===j.get(e[a]))return X;if((o===N||o===D)&&11===j.get(e[s]))return X;if(7===o||7===c)return X;if(9===o)return X;if(-1===[b,v,C].indexOf(o)&&9===c)return X;if(-1!==[y,F,x,M,Q].indexOf(c))return X;if(ie(a,t)===I)return X;if(Ae(23,I,a,t))return X;if(Ae([y,F],T,a,t))return X;if(Ae(12,12,a,t))return X;if(o===b)return Y;if(23===o||23===c)return X;if(16===c||16===o)return Y;if(-1!==[v,C,T].indexOf(c)||14===o)return X;if(36===l&&-1!==te.indexOf(o))return X;if(o===Q&&36===c)return X;if(c===S)return X;if(-1!==_.indexOf(c)&&o===k||-1!==_.indexOf(o)&&c===k)return X;if(o===O&&-1!==[P,N,D].indexOf(c)||-1!==[P,N,D].indexOf(o)&&c===U)return X;if(-1!==_.indexOf(o)&&-1!==q.indexOf(c)||-1!==q.indexOf(o)&&-1!==_.indexOf(c))return X;if(-1!==[O,U].indexOf(o)&&(c===k||-1!==[I,C].indexOf(c)&&t[s+1]===k)||-1!==[I,C].indexOf(o)&&c===k||o===k&&-1!==[k,Q,M].indexOf(c))return X;if(-1!==[k,Q,M,y,F].indexOf(c))for(var d=a;d>=0;){if((h=t[d])===k)return X;if(-1===[Q,M].indexOf(h))break;d--}if(-1!==[O,U].indexOf(c))for(d=-1!==[y,F].indexOf(o)?r:a;d>=0;){var h;if((h=t[d])===k)return X;if(-1===[Q,M].indexOf(h))break;d--}if(V===o&&-1!==[V,K,R,H].indexOf(c)||-1!==[K,R].indexOf(o)&&-1!==[K,G].indexOf(c)||-1!==[G,H].indexOf(o)&&c===G)return X;if(-1!==ee.indexOf(o)&&-1!==[S,U].indexOf(c)||-1!==ee.indexOf(c)&&o===O)return X;if(-1!==_.indexOf(o)&&-1!==_.indexOf(c))return X;if(o===M&&-1!==_.indexOf(c))return X;if(-1!==_.concat(k).indexOf(o)&&c===I&&-1===z.indexOf(e[s])||-1!==_.concat(k).indexOf(c)&&o===F)return X;if(41===o&&41===c){for(var u=A[a],g=1;u>0&&41===t[--u];)g++;if(g%2!=0)return X}return o===N&&c===D?X:Y},ae=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var A=function(e,t){void 0===t&&(t="strict");var A=[],i=[],n=[];return e.forEach((function(e,a){var r=j.get(e);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(a),A.push(16);if(4===r||11===r){if(0===a)return i.push(a),A.push(L);var s=A[a-1];return-1===$.indexOf(s)?(i.push(i[a-1]),A.push(s)):(i.push(a),A.push(L))}return i.push(a),31===r?A.push("strict"===t?T:P):r===W||29===r?A.push(L):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?A.push(P):A.push(L):void A.push(r)})),[i,A,n]}(e,t.lineBreak),i=A[0],n=A[1],a=A[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(n=n.map((function(e){return-1!==[k,L,W].indexOf(e)?P:e})));var r="keep-all"===t.wordBreak?a.map((function(t,A){return t&&e[A]>=19968&&e[A]<=40959})):void 0;return[i,n,r]},re=function(){function e(e,t,A,i){this.codePoints=e,this.required="!"===t,this.start=A,this.end=i}return e.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),se=45,oe=43,le=-1,ce=function(e){return e>=48&&e<=57},de=function(e){return ce(e)||e>=65&&e<=70||e>=97&&e<=102},he=function(e){return 10===e||9===e||32===e},ue=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},ge=function(e){return ue(e)||ce(e)||e===se},pe=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},me=function(e,t){return 92===e&&10!==t},we=function(e,t,A){return e===se?ue(t)||me(t,A):!!ue(e)||!(92!==e||!me(e,t))},fe=function(e,t,A){return e===oe||e===se?!!ce(t)||46===t&&ce(A):ce(46===e?t:e)},Ee=function(e){var t=0,A=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(A=-1),t++);for(var i=[];ce(e[t]);)i.push(e[t++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===e[t]&&t++;for(var a=[];ce(e[t]);)a.push(e[t++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==e[t]&&101!==e[t]||t++;var o=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(o=-1),t++);for(var c=[];ce(e[t]);)c.push(e[t++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return A*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},Be={type:2},be={type:3},ve={type:4},Ce={type:13},ye={type:8},Fe={type:21},xe={type:9},Se={type:10},Te={type:11},Ie={type:12},Me={type:14},ke={type:23},Ue={type:1},Oe={type:25},Qe={type:24},Le={type:26},Ne={type:27},De={type:28},Re={type:29},He={type:31},Pe={type:32},Ve=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(o(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Pe;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),A=this.peekCodePoint(1),i=this.peekCodePoint(2);if(ge(t)||me(A,i)){var n=we(t,A,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ce;break;case 39:return this.consumeStringToken(39);case 40:return Be;case 41:return be;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Me;break;case oe:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return ve;case se:var a=e,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(fe(a,r,s))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(we(a,r,s))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(r===se&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),Qe;break;case 46:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===le)return this.consumeToken()}break;case 58:return Le;case 59:return Ne;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===se&&this.peekCodePoint(2)===se)return this.consumeCodePoint(),this.consumeCodePoint(),Oe;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(we(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return De;case 92:if(me(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return Re;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ye;break;case 123:return Te;case 125:return Ie;case 117:case 85:var u=this.peekCodePoint(0),g=this.peekCodePoint(1);return u!==oe||!de(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),xe;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Fe;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Se;break;case le:return Pe}return he(e)?(this.consumeWhiteSpace(),He):ce(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):ue(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:l(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();de(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var A=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),A=!0;if(A)return{type:30,start:parseInt(l.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(l.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt(l.apply(void 0,e),16);if(this.peekCodePoint(0)===se&&de(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var n=[];de(t)&&n.length<6;)n.push(t),t=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===le)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var A=this.consumeStringToken(this.consumeCodePoint());return 0===A.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:A.value}):(this.consumeBadUrlRemnants(),ke)}for(;;){var i=this.consumeCodePoint();if(i===le||41===i)return{type:22,value:l.apply(void 0,e)};if(he(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,e)}):(this.consumeBadUrlRemnants(),ke);if(34===i||39===i||40===i||pe(i))return this.consumeBadUrlRemnants(),ke;if(92===i){if(!me(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),ke;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;he(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===le)return;me(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var A=Math.min(5e4,e);t+=l.apply(void 0,this._value.splice(0,A)),e-=A}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",A=0;;){var i=this._value[A];if(i===le||void 0===i||i===e)return{type:0,value:t+=this.consumeStringSlice(A)};if(10===i)return this._value.splice(0,A),Ue;if(92===i){var n=this._value[A+1];n!==le&&void 0!==n&&(10===n?(t+=this.consumeStringSlice(A),A=-1,this._value.shift()):me(i,n)&&(t+=this.consumeStringSlice(A),t+=l(this.consumeEscapedCodePoint()),A=-1))}A++}},e.prototype.consumeNumber=function(){var e=[],t=4,A=this.peekCodePoint(0);for(A!==oe&&A!==se||e.push(this.consumeCodePoint());ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===A&&ce(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===A||101===A)&&((i===oe||i===se)&&ce(n)||ce(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Ee(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],A=e[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return we(i,n,a)?{type:15,number:t,flags:A,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:t,flags:A}):{type:17,number:t,flags:A}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(de(e)){for(var t=l(e);de(this.peekCodePoint(0))&&t.length<6;)t+=l(this.consumeCodePoint());he(this.peekCodePoint(0))&&this.consumeCodePoint();var A=parseInt(t,16);return 0===A||function(e){return e>=55296&&e<=57343}(A)||A>1114111?65533:A}return e===le?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(ge(t))e+=l(t);else{if(!me(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=l(this.consumeEscapedCodePoint())}}},e}(),Ke=function(){function e(e){this._tokens=e}return e.create=function(t){var A=new Ve;return A.write(t),new e(A.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},A=this.consumeToken();;){if(32===A.type||Ze(A,e))return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue()),A=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var A=this.consumeToken();if(32===A.type||3===A.type)return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Pe:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Ge=function(e){return 15===e.type},We=function(e){return 17===e.type},ze=function(e){return 20===e.type},Xe=function(e){return 0===e.type},Ye=function(e,t){return ze(e)&&e.value===t},je=function(e){return 31!==e.type},_e=function(e){return 31!==e.type&&4!==e.type},Je=function(e){var t=[],A=[];return e.forEach((function(e){if(4===e.type){if(0===A.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(A),void(A=[])}31!==e.type&&A.push(e)})),A.length&&t.push(A),t},Ze=function(e,t){return 11===t&&12===e.type||28===t&&29===e.type||2===t&&3===e.type},qe=function(e){return 17===e.type||15===e.type},$e=function(e){return 16===e.type||qe(e)},et=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},tt={type:17,number:0,flags:4},At={type:16,number:50,flags:4},it={type:16,number:100,flags:4},nt=function(e,t,A){var i=e[0],n=e[1];return[at(i,t),at(void 0!==n?n:i,A)]},at=function(e,t){if(16===e.type)return e.number/100*t;if(Ge(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},rt="grad",st="turn",ot=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case rt:return Math.PI/200*t.number;case"rad":return t.number;case st:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},lt=function(e){return 15===e.type&&("deg"===e.unit||e.unit===rt||"rad"===e.unit||e.unit===st)},ct=function(e){switch(e.filter(ze).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[tt,tt];case"to top":case"bottom":return dt(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[tt,it];case"to right":case"left":return dt(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[it,it];case"to bottom":case"top":return dt(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[it,tt];case"to left":case"right":return dt(270)}return 0},dt=function(e){return Math.PI*e/180},ht=function(e,t){if(18===t.type){var A=Bt[t.name];if(void 0===A)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return A(e,t.values)}if(5===t.type){if(3===t.value.length){var i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===t.value.length){i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);var r=t.value.substring(3,4);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),r=t.value.substring(6,8),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===t.type){var s=vt[t.value.toUpperCase()];if(void 0!==s)return s}return vt.TRANSPARENT},ut=function(e){return 0==(255&e)},gt=function(e){var t=255&e,A=255&e>>8,i=255&e>>16,n=255&e>>24;return t<255?"rgba("+n+","+i+","+A+","+t/255+")":"rgb("+n+","+i+","+A+")"},pt=function(e,t,A,i){return(e<<24|t<<16|A<<8|Math.round(255*i)<<0)>>>0},mt=function(e,t){if(17===e.type)return e.number;if(16===e.type){var A=3===t?1:255;return 3===t?e.number/100*A:Math.round(e.number/100*A)}return 0},wt=function(e,t){var A=t.filter(_e);if(3===A.length){var i=A.map(mt),n=i[0],a=i[1],r=i[2];return pt(n,a,r,1)}if(4===A.length){var s=A.map(mt),o=(n=s[0],a=s[1],r=s[2],s[3]);return pt(n,a,r,o)}return 0};function ft(e,t,A){return A<0&&(A+=1),A>=1&&(A-=1),A<1/6?(t-e)*A*6+e:A<.5?t:A<2/3?6*(t-e)*(2/3-A)+e:e}var Et=function(e,t){var A=t.filter(_e),i=A[0],n=A[1],a=A[2],r=A[3],s=(17===i.type?dt(i.number):ot(e,i))/(2*Math.PI),o=$e(n)?n.number/100:0,l=$e(a)?a.number/100:0,c=void 0!==r&&$e(r)?at(r,1):1;if(0===o)return pt(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,u=ft(h,d,s+1/3),g=ft(h,d,s),p=ft(h,d,s-1/3);return pt(255*u,255*g,255*p,c)},Bt={hsl:Et,hsla:Et,rgb:wt,rgba:wt},bt=function(e,t){return ht(e,Ke.create(t).parseComponentValue())},vt={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Ct={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},yt={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ft=function(e,t){var A=ht(e,t[0]),i=t[1];return i&&$e(i)?{color:A,stop:i}:{color:A,stop:null}},xt=function(e,t){var A=e[0],i=e[e.length-1];null===A.stop&&(A.stop=tt),null===i.stop&&(i.stop=it);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;re.optimumDistance)?{optimumCorner:t,optimumDistance:s}:e}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Mt=function(e,t){var A=dt(180),i=[];return Je(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(A=ct(t));if(lt(a))return void(A=(ot(e,a)+dt(270))%dt(360))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},kt="closest-side",Ut="farthest-side",Ot="closest-corner",Qt="farthest-corner",Lt="circle",Nt="ellipse",Dt="cover",Rt="contain",Ht=function(e,t){var A=0,i=3,n=[],a=[];return Je(t).forEach((function(t,r){var s=!0;if(0===r?s=t.reduce((function(e,t){if(ze(t))switch(t.value){case"center":return a.push(At),!1;case"top":case"left":return a.push(tt),!1;case"right":case"bottom":return a.push(it),!1}else if($e(t)||qe(t))return a.push(t),!1;return e}),s):1===r&&(s=t.reduce((function(e,t){if(ze(t))switch(t.value){case Lt:return A=0,!1;case Nt:return A=1,!1;case Rt:case kt:return i=0,!1;case Ut:return i=1,!1;case Ot:return i=2,!1;case Dt:case Qt:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)),s){var o=Ft(e,t);n.push(o)}})),{size:i,shape:A,stops:n,position:a,type:2}},Pt=function(e,t){if(22===t.type){var A={url:t.value,type:0};return e.cache.addImage(t.value),A}if(18===t.type){var i=Kt[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return i(e,t.values)}throw new Error("Unsupported image type "+t.type)};var Vt,Kt={"linear-gradient":function(e,t){var A=dt(180),i=[];return Je(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&"to"===a.value)return void(A=ct(t));if(lt(a))return void(A=ot(e,a))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},"-moz-linear-gradient":Mt,"-ms-linear-gradient":Mt,"-o-linear-gradient":Mt,"-webkit-linear-gradient":Mt,"radial-gradient":function(e,t){var A=0,i=3,n=[],a=[];return Je(t).forEach((function(t,r){var s=!0;if(0===r){var o=!1;s=t.reduce((function(e,t){if(o)if(ze(t))switch(t.value){case"center":return a.push(At),e;case"top":case"left":return a.push(tt),e;case"right":case"bottom":return a.push(it),e}else($e(t)||qe(t))&&a.push(t);else if(ze(t))switch(t.value){case Lt:return A=0,!1;case Nt:return A=1,!1;case"at":return o=!0,!1;case kt:return i=0,!1;case Dt:case Ut:return i=1,!1;case Rt:case Ot:return i=2,!1;case Qt:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)}if(s){var l=Ft(e,t);n.push(l)}})),{size:i,shape:A,stops:n,position:a,type:2}},"-moz-radial-gradient":Ht,"-ms-radial-gradient":Ht,"-o-radial-gradient":Ht,"-webkit-radial-gradient":Ht,"-webkit-gradient":function(e,t){var A=dt(180),i=[],n=1;return Je(t).forEach((function(t,A){var a=t[0];if(0===A){if(ze(a)&&"linear"===a.value)return void(n=1);if(ze(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=ht(e,a.values[0]);i.push({stop:tt,color:r})}else if("to"===a.name)r=ht(e,a.values[0]),i.push({stop:it,color:r});else if("color-stop"===a.name){var s=a.values.filter(_e);if(2===s.length){r=ht(e,s[1]);var o=s[0];We(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(A+dt(180))%dt(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},Gt={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var A=t[0];return 20===A.type&&"none"===A.value?[]:t.filter((function(e){return _e(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Kt[e.name])}(e)})).map((function(t){return Pt(e,t)}))}},Wt={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},zt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Je(t).map((function(e){return e.filter($e)})).map(et)}},Xt={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Je(t).map((function(e){return e.filter(ze).map((function(e){return e.value})).join(" ")})).map(Yt)}},Yt=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(Vt||(Vt={}));var jt,_t={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Je(t).map((function(e){return e.filter(Jt)}))}},Jt=function(e){return ze(e)||$e(e)},Zt=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},qt=Zt("top"),$t=Zt("right"),eA=Zt("bottom"),tA=Zt("left"),AA=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return et(t.filter($e))}}},iA=AA("top-left"),nA=AA("top-right"),aA=AA("bottom-right"),rA=AA("bottom-left"),sA=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},oA=sA("top"),lA=sA("right"),cA=sA("bottom"),dA=sA("left"),hA=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Ge(t)?t.number:0}}},uA=hA("top"),gA=hA("right"),pA=hA("bottom"),mA=hA("left"),wA={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fA={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},EA={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).reduce((function(e,t){return e|BA(t.value)}),0)}},BA=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},bA={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},vA={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(jt||(jt={}));var CA,yA={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?jt.STRICT:jt.NORMAL}},FA={name:"line-height",initialValue:"normal",prefix:!1,type:4},xA=function(e,t){return ze(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:$e(e)?at(e,t):t},SA={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:Pt(e,t)}},TA={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},IA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},MA=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},kA=MA("top"),UA=MA("right"),OA=MA("bottom"),QA=MA("left"),LA={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},NA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},DA=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},RA=DA("top"),HA=DA("right"),PA=DA("bottom"),VA=DA("left"),KA={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GA={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},WA={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Ye(t[0],"none")?[]:Je(t).map((function(t){for(var A={color:vt.TRANSPARENT,offsetX:tt,offsetY:tt,blur:tt},i=0,n=0;n1?1:0],this.overflowWrap=Ci(e,NA,t.overflowWrap),this.paddingTop=Ci(e,RA,t.paddingTop),this.paddingRight=Ci(e,HA,t.paddingRight),this.paddingBottom=Ci(e,PA,t.paddingBottom),this.paddingLeft=Ci(e,VA,t.paddingLeft),this.paintOrder=Ci(e,wi,t.paintOrder),this.position=Ci(e,GA,t.position),this.textAlign=Ci(e,KA,t.textAlign),this.textDecorationColor=Ci(e,Ai,null!==(A=t.textDecorationColor)&&void 0!==A?A:t.color),this.textDecorationLine=Ci(e,ii,null!==(i=t.textDecorationLine)&&void 0!==i?i:t.textDecoration),this.textShadow=Ci(e,WA,t.textShadow),this.textTransform=Ci(e,zA,t.textTransform),this.transform=Ci(e,XA,t.transform),this.transformOrigin=Ci(e,JA,t.transformOrigin),this.visibility=Ci(e,ZA,t.visibility),this.webkitTextStrokeColor=Ci(e,fi,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Ci(e,Ei,t.webkitTextStrokeWidth),this.wordBreak=Ci(e,qA,t.wordBreak),this.zIndex=Ci(e,$A,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return ut(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return li(this.display,4)||li(this.display,33554432)||li(this.display,268435456)||li(this.display,536870912)||li(this.display,67108864)||li(this.display,134217728)},e}(),bi=function(e,t){this.content=Ci(e,ci,t.content),this.quotes=Ci(e,gi,t.quotes)},vi=function(e,t){this.counterIncrement=Ci(e,di,t.counterIncrement),this.counterReset=Ci(e,hi,t.counterReset)},Ci=function(e,t,A){var i=new Ve,n=null!=A?A.toString():t.initialValue;i.write(n);var a=new Ke(i.read());switch(t.type){case 2:var r=a.parseComponentValue();return t.parse(e,ze(r)?r.value:t.initialValue);case 0:return t.parse(e,a.parseComponentValue());case 1:return t.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(t.format){case"angle":return ot(e,a.parseComponentValue());case"color":return ht(e,a.parseComponentValue());case"image":return Pt(e,a.parseComponentValue());case"length":var s=a.parseComponentValue();return qe(s)?s:tt;case"length-percentage":var o=a.parseComponentValue();return $e(o)?o:tt;case"time":return ei.parse(e,a.parseComponentValue())}}},yi=function(e,t){var A=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===A||t===A},Fi=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,yi(t,3),this.styles=new Bi(e,window.getComputedStyle(t,null)),Mn(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=s(this.context,t),yi(t,4)&&(this.flags|=16)},xi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Si="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Ti=0;Ti<64;Ti++)Si[xi.charCodeAt(Ti)]=Ti;for(var Ii=function(e,t,A){return e.slice?e.slice(t,A):new Uint16Array(Array.prototype.slice.call(e,t,A))},Mi=function(){function e(e,t,A,i,n,a){this.initialValue=e,this.errorValue=t,this.highStart=A,this.highValueIndex=i,this.index=n,this.data=a}return e.prototype.get=function(e){var t;if(e>=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),ki="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ui="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Oi=0;Oi<64;Oi++)Ui[ki.charCodeAt(Oi)]=Oi;var Qi,Li=8,Ni=9,Di=11,Ri=12,Hi=function(){for(var e=[],t=0;t>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},Pi=function(e,t){var A=function(e){var t,A,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i=55296&&n<=56319&&A=A)return{done:!0,value:null};for(var e=Vi;ir.x||n.y>r.y;return r=n,0===t||s}));return e.body.removeChild(t),s}(document);return Object.defineProperty(ji,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,A=e.createElement("canvas"),i=A.getContext("2d");if(!i)return!1;t.src="data:image/svg+xml,";try{i.drawImage(t,0,0),A.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(ji,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),A=100;t.width=A,t.height=A;var i=t.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,A,A);var n=new Image,a=t.toDataURL();n.src=a;var r=Xi(A,A,0,0,n);return i.fillStyle="red",i.fillRect(0,0,A,A),Yi(r).then((function(t){i.drawImage(t,0,0);var n=i.getImageData(0,0,A,A).data;i.fillStyle="red",i.fillRect(0,0,A,A);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height=A+"px",zi(n)?Yi(Xi(A,A,0,0,r)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),zi(i.getImageData(0,0,A,A).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(ji,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(ji,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(ji,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(ji,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(ji,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},_i=function(e,t){this.text=e,this.bounds=t},Ji=function(e,t){var A=t.ownerDocument;if(A){var i=A.createElement("html2canvaswrapper");i.appendChild(t.cloneNode(!0));var n=t.parentNode;if(n){n.replaceChild(i,t);var a=s(e,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},Zi=function(e,t,A){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(e,t),n.setEnd(e,t+A),n},qi=function(e){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,A=Wi(e),i=[];!(t=A.next()).done;)t.value&&i.push(t.value.slice());return i}(e)},$i=function(e,t){return 0!==t.letterSpacing?qi(e):function(e,t){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(A.segment(e)).map((function(e){return e.segment}))}return tn(e,t)}(e,t)},en=[32,160,4961,65792,65793,4153,4241],tn=function(e,t){for(var A,i=function(e,t){var A=o(e),i=ae(A,t),n=i[0],a=i[1],r=i[2],s=A.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var e=X;c0)if(ji.SUPPORT_RANGE_BOUNDS){var n=Zi(i,s,t.length).getClientRects();if(n.length>1){var o=qi(t),l=0;o.forEach((function(t){a.push(new _i(t,r.fromDOMRectList(e,Zi(i,l+s,t.length).getClientRects()))),l+=t.length}))}else a.push(new _i(t,r.fromDOMRectList(e,n)))}else{var c=i.splitText(t.length);a.push(new _i(t,Ji(e,i))),i=c}else ji.SUPPORT_RANGE_BOUNDS||(i=i.splitText(t.length));s+=t.length})),a}(e,this.text,A,t)},nn=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(an,rn);case 2:return e.toUpperCase();default:return e}},an=/(^|\s|:|-|\(|\))([a-z])/g,rn=function(e,t,A){return e.length>0?t+A.toUpperCase():e},sn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.src=A.currentSrc||A.src,i.intrinsicWidth=A.naturalWidth,i.intrinsicHeight=A.naturalHeight,i.context.cache.addImage(i.src),i}return t(A,e),A}(Fi),on=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.canvas=A,i.intrinsicWidth=A.width,i.intrinsicHeight=A.height,i}return t(A,e),A}(Fi),ln=function(e){function A(t,A){var i=e.call(this,t,A)||this,n=new XMLSerializer,a=s(t,A);return A.setAttribute("width",a.width+"px"),A.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(A)),i.intrinsicWidth=A.width.baseVal.value,i.intrinsicHeight=A.height.baseVal.value,i.context.cache.addImage(i.svg),i}return t(A,e),A}(Fi),cn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.value=A.value,i}return t(A,e),A}(Fi),dn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.start=A.start,i.reversed="boolean"==typeof A.reversed&&!0===A.reversed,i}return t(A,e),A}(Fi),hn=[{type:15,flags:0,unit:"px",number:3}],un=[{type:16,flags:0,number:50}],gn="checkbox",pn="radio",mn="password",wn=707406591,fn=function(e){function A(t,A){var i,n,a,s=e.call(this,t,A)||this;switch(s.type=A.type.toLowerCase(),s.checked=A.checked,s.value=0===(a=(n=A).type===mn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==gn&&s.type!==pn||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)A.textNodes.push(new An(e,n,A.styles));else if(In(n))if(Wn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(t){return Cn(e,t,A,i)}));else{var r=yn(e,n);r.styles.isVisible()&&(xn(n,r,i)?r.flags|=4:Sn(r.styles)&&(r.flags|=2),-1!==vn.indexOf(n.tagName)&&(r.flags|=8),A.elements.push(r),n.slot,n.shadowRoot?Cn(e,n.shadowRoot,r,i):Kn(n)||Ln(n)||Gn(n)||Cn(e,n,r,i))}},yn=function(e,t){return Hn(t)?new sn(e,t):Dn(t)?new on(e,t):Ln(t)?new ln(e,t):Un(t)?new cn(e,t):On(t)?new dn(e,t):Qn(t)?new fn(e,t):Gn(t)?new En(e,t):Kn(t)?new Bn(e,t):Pn(t)?new bn(e,t):new Fi(e,t)},Fn=function(e,t){var A=yn(e,t);return A.flags|=4,Cn(e,t,A,A),A},xn=function(e,t,A){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||Nn(e)&&A.styles.isTransparent()},Sn=function(e){return e.isPositioned()||e.isFloating()},Tn=function(e){return e.nodeType===Node.TEXT_NODE},In=function(e){return e.nodeType===Node.ELEMENT_NODE},Mn=function(e){return In(e)&&void 0!==e.style&&!kn(e)},kn=function(e){return"object"==typeof e.className},Un=function(e){return"LI"===e.tagName},On=function(e){return"OL"===e.tagName},Qn=function(e){return"INPUT"===e.tagName},Ln=function(e){return"svg"===e.tagName},Nn=function(e){return"BODY"===e.tagName},Dn=function(e){return"CANVAS"===e.tagName},Rn=function(e){return"VIDEO"===e.tagName},Hn=function(e){return"IMG"===e.tagName},Pn=function(e){return"IFRAME"===e.tagName},Vn=function(e){return"STYLE"===e.tagName},Kn=function(e){return"TEXTAREA"===e.tagName},Gn=function(e){return"SELECT"===e.tagName},Wn=function(e){return"SLOT"===e.tagName},zn=function(e){return e.tagName.indexOf("-")>0},Xn=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){return this.counters[e]||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,A=e.counterIncrement,i=e.counterReset,n=!0;null!==A&&A.forEach((function(e){var A=t.counters[e.counter];A&&0!==e.increment&&(n=!1,A.length||A.push(1),A[Math.max(0,A.length-1)]+=e.increment)}));var a=[];return n&&i.forEach((function(e){var A=t.counters[e.counter];a.push(e.counter),A||(A=t.counters[e.counter]=[]),A.push(e.reset)})),a},e}(),Yn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},jn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},_n={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Jn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Zn=function(e,t,A,i,n,a){return eA?ra(e,n,a.length>0):i.integers.reduce((function(t,A,n){for(;e>=A;)e-=A,t+=i.values[n];return t}),"")+a},qn=function(e,t,A,i){var n="";do{A||e--,n=i(e)+n,e/=t}while(e*t>=t);return n},$n=function(e,t,A,i,n){var a=A-t+1;return(e<0?"-":"")+(qn(Math.abs(e),a,i,(function(e){return l(Math.floor(e%a)+t)}))+n)},ea=function(e,t,A){void 0===A&&(A=". ");var i=t.length;return qn(Math.abs(e),i,!1,(function(e){return t[Math.floor(e%i)]}))+A},ta=function(e,t,A,i,n,a){if(e<-9999||e>9999)return ra(e,4,n.length>0);var r=Math.abs(e),s=n;if(0===r)return t[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&li(a,1)&&""!==s?s=t[l]+s:l>1||1===l&&0===o||1===l&&1===o&&li(a,2)||1===l&&1===o&&li(a,4)&&e>100||1===l&&o>1&&li(a,8)?s=t[l]+(o>0?A[o-1]:"")+s:1===l&&o>0&&(s=A[o-1]+s),r=Math.floor(r/10)}return(e<0?i:"")+s},Aa="十百千萬",ia="拾佰仟萬",na="マイナス",aa="마이너스",ra=function(e,t,A){var i=A?". ":"",n=A?"、":"",a=A?", ":"",r=A?" ":"";switch(t){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=$n(e,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return ea(e,"〇一二三四五六七八九",n);case 6:return Zn(e,1,3999,Yn,3,i).toLowerCase();case 7:return Zn(e,1,3999,Yn,3,i);case 8:return $n(e,945,969,!1,i);case 9:return $n(e,97,122,!1,i);case 10:return $n(e,65,90,!1,i);case 11:return $n(e,1632,1641,!0,i);case 12:case 49:return Zn(e,1,9999,jn,3,i);case 35:return Zn(e,1,9999,jn,3,i).toLowerCase();case 13:return $n(e,2534,2543,!0,i);case 14:case 30:return $n(e,6112,6121,!0,i);case 15:return ea(e,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return ea(e,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return ta(e,"零一二三四五六七八九",Aa,"負",n,14);case 47:return ta(e,"零壹貳參肆伍陸柒捌玖",ia,"負",n,15);case 42:return ta(e,"零一二三四五六七八九",Aa,"负",n,14);case 41:return ta(e,"零壹贰叁肆伍陆柒捌玖",ia,"负",n,15);case 26:return ta(e,"〇一二三四五六七八九","十百千万",na,n,0);case 25:return ta(e,"零壱弐参四伍六七八九","拾百千万",na,n,7);case 31:return ta(e,"영일이삼사오육칠팔구","십백천만",aa,a,7);case 33:return ta(e,"零一二三四五六七八九","十百千萬",aa,a,0);case 32:return ta(e,"零壹貳參四五六七八九","拾百千",aa,a,7);case 18:return $n(e,2406,2415,!0,i);case 20:return Zn(e,1,19999,Jn,3,i);case 21:return $n(e,2790,2799,!0,i);case 22:return $n(e,2662,2671,!0,i);case 22:return Zn(e,1,10999,_n,3,i);case 23:return ea(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ea(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return $n(e,3302,3311,!0,i);case 28:return ea(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return ea(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return $n(e,3792,3801,!0,i);case 37:return $n(e,6160,6169,!0,i);case 38:return $n(e,4160,4169,!0,i);case 39:return $n(e,2918,2927,!0,i);case 40:return $n(e,1776,1785,!0,i);case 43:return $n(e,3046,3055,!0,i);case 44:return $n(e,3174,3183,!0,i);case 45:return $n(e,3664,3673,!0,i);case 46:return $n(e,3872,3881,!0,i);default:return $n(e,48,57,!0,i)}},sa="data-html2canvas-ignore",oa=function(){function e(e,t,A){if(this.context=e,this.options=A,this.scrolledElements=[],this.referenceElement=t,this.counters=new Xn,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var A=this,a=ca(e,t);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,s=e.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ua(a).then((function(){return i(A,void 0,void 0,(function(){var e,A;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(fa),o&&(o.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===t.top&&o.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-t.left,o.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(A=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,ha(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,A)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(ma(document.doctype)+""),wa(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},e.prototype.createElementClone=function(e){if(yi(e,2),Dn(e))return this.createCanvasClone(e);if(Rn(e))return this.createVideoClone(e);if(Vn(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Hn(t)&&(Hn(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),zn(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return pa(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var A=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),i=e.cloneNode(!1);return i.textContent=A,i}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var A=e.ownerDocument.createElement("img");try{return A.src=e.toDataURL(),A}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var n=e.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return i}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var A=t.getContext("2d");try{return A&&(A.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||A.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var i=e.ownerDocument.createElement("canvas");return i.width=e.offsetWidth,i.height=e.offsetHeight,i},e.prototype.appendChildNode=function(e,t,A){In(t)&&("SCRIPT"===t.tagName||t.hasAttribute(sa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&In(t)&&Vn(t)||e.appendChild(this.cloneNode(t,A))},e.prototype.cloneChildNodes=function(e,t,A){for(var i=this,n=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;n;n=n.nextSibling)if(In(n)&&Wn(n)&&"function"==typeof n.assignedNodes){var a=n.assignedNodes();a.length&&a.forEach((function(e){return i.appendChildNode(t,e,A)}))}else this.appendChildNode(t,n,A)},e.prototype.cloneNode=function(e,t){if(Tn(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var A=e.ownerDocument.defaultView;if(A&&In(e)&&(Mn(e)||kn(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var n=A.getComputedStyle(e),a=A.getComputedStyle(e,":before"),r=A.getComputedStyle(e,":after");this.referenceElement===e&&Mn(i)&&(this.clonedReferenceElement=i),Nn(i)&&va(i);var s=this.counters.parse(new vi(this.context,n)),o=this.resolvePseudoContent(e,i,a,Qi.BEFORE);zn(e)&&(t=!0),Rn(e)||this.cloneChildNodes(e,i,t),o&&i.insertBefore(o,i.firstChild);var l=this.resolvePseudoContent(e,i,r,Qi.AFTER);return l&&i.appendChild(l),this.counters.pop(s),(n&&(this.options.copyStyles||kn(e))&&!Pn(e)||t)&&pa(n,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(Kn(e)||Gn(e))&&(Kn(i)||Gn(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,A,i){var n=this;if(A){var a=A.content,r=t.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==A.display){this.counters.parse(new vi(this.context,A));var s=new bi(this.context,A),o=r.createElement("html2canvaspseudoelement");pa(A,o),s.content.forEach((function(t){if(0===t.type)o.appendChild(r.createTextNode(t.value));else if(22===t.type){var A=r.createElement("img");A.src=t.value,A.style.opacity="1",o.appendChild(A)}else if(18===t.type){if("attr"===t.name){var i=t.values.filter(ze);i.length&&o.appendChild(r.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===t.name){var a=t.values.filter(_e),l=a[0],c=a[1];if(l&&ze(l)){var d=n.counters.getCounterValue(l.value),h=c&&ze(c)?IA.parse(n.context,c.value):3;o.appendChild(r.createTextNode(ra(d,h,!1)))}}else if("counters"===t.name){var u=t.values.filter(_e),g=(l=u[0],u[1]);if(c=u[2],l&&ze(l)){var p=n.counters.getCounterValues(l.value),m=c&&ze(c)?IA.parse(n.context,c.value):3,w=g&&0===g.type?g.value:"",f=p.map((function(e){return ra(e,m,!1)})).join(w);o.appendChild(r.createTextNode(f))}}}else if(20===t.type)switch(t.value){case"open-quote":o.appendChild(r.createTextNode(pi(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(pi(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(t.value))}})),o.className=Ea+" "+Ba;var l=i===Qi.BEFORE?" "+Ea:" "+Ba;return kn(t)?t.className.baseValue+=l:t.className+=l,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Qi||(Qi={}));var la,ca=function(e,t){var A=e.createElement("iframe");return A.className="html2canvas-container",A.style.visibility="hidden",A.style.position="fixed",A.style.left="-10000px",A.style.top="0px",A.style.border="0",A.width=t.width.toString(),A.height=t.height.toString(),A.scrolling="no",A.setAttribute(sa,"true"),e.body.appendChild(A),A},da=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},ha=function(e){return Promise.all([].slice.call(e.images,0).map(da))},ua=function(e){return new Promise((function(t,A){var i=e.contentWindow;if(!i)return A("No window assigned for iframe");var n=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var A=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(A),t(e))}),50)}}))},ga=["all","d","content"],pa=function(e,t){for(var A=e.length-1;A>=0;A--){var i=e.item(A);-1===ga.indexOf(i)&&t.style.setProperty(i,e.getPropertyValue(i))}return t},ma=function(e){var t="";return e&&(t+=""),t},wa=function(e,t,A){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||A!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,A)},fa=function(e){var t=e[0],A=e[1],i=e[2];t.scrollLeft=A,t.scrollTop=i},Ea="___html2canvas___pseudoelement_before",Ba="___html2canvas___pseudoelement_after",ba='{\n content: "" !important;\n display: none !important;\n}',va=function(e){Ca(e,"."+Ea+":before"+ba+"\n ."+Ba+":after"+ba)},Ca=function(e,t){var A=e.ownerDocument;if(A){var i=A.createElement("style");i.textContent=t,e.appendChild(i)}},ya=function(){function e(){}return e.getOrigin=function(t){var A=e._link;return A?(A.href=t,A.href=A.href,A.protocol+A.hostname+A.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Fa=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:Ua(e)||Ia(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return i(this,void 0,void 0,(function(){var t,A,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return t=ya.isSameOrigin(e),A=!Ma(e)&&!0===this._options.useCORS&&ji.SUPPORT_CORS_IMAGES&&!t,i=!Ma(e)&&!t&&!Ua(e)&&"string"==typeof this._options.proxy&&ji.SUPPORT_CORS_XHR&&!A,t||!1!==this._options.allowTaint||Ma(e)||Ua(e)||i||A?(a=e,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var i=new Image;i.onload=function(){return e(i)},i.onerror=t,(ka(a)||A)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return e(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,A=this._options.proxy;if(!A)throw new Error("No proxy defined");var i=e.substring(0,256);return new Promise((function(n,a){var r=ji.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var e=new FileReader;e.addEventListener("load",(function(){return n(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=A.indexOf("?")>-1?"&":"?";if(s.open("GET",""+A+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),t._options.imageTimeout){var l=t._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},e}(),xa=/^data:image\/svg\+xml/i,Sa=/^data:image\/.*;base64,/i,Ta=/^data:image\/.*/i,Ia=function(e){return ji.SUPPORT_SVG_DRAWING||!Oa(e)},Ma=function(e){return Ta.test(e)},ka=function(e){return Sa.test(e)},Ua=function(e){return"blob"===e.substr(0,4)},Oa=function(e){return"svg"===e.substr(-3).toLowerCase()||xa.test(e)},Qa=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,A){return new e(this.x+t,this.y+A)},e}(),La=function(e,t,A){return new Qa(e.x+(t.x-e.x)*A,e.y+(t.y-e.y)*A)},Na=function(){function e(e,t,A,i){this.type=1,this.start=e,this.startControl=t,this.endControl=A,this.end=i}return e.prototype.subdivide=function(t,A){var i=La(this.start,this.startControl,t),n=La(this.startControl,this.endControl,t),a=La(this.endControl,this.end,t),r=La(i,n,t),s=La(n,a,t),o=La(r,s,t);return A?new e(this.start,i,r,o):new e(o,s,a,this.end)},e.prototype.add=function(t,A){return new e(this.start.add(t,A),this.startControl.add(t,A),this.endControl.add(t,A),this.end.add(t,A))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),Da=function(e){return 1===e.type},Ra=function(e){var t=e.styles,A=e.bounds,i=nt(t.borderTopLeftRadius,A.width,A.height),n=i[0],a=i[1],r=nt(t.borderTopRightRadius,A.width,A.height),s=r[0],o=r[1],l=nt(t.borderBottomRightRadius,A.width,A.height),c=l[0],d=l[1],h=nt(t.borderBottomLeftRadius,A.width,A.height),u=h[0],g=h[1],p=[];p.push((n+s)/A.width),p.push((u+c)/A.width),p.push((a+g)/A.height),p.push((o+d)/A.height);var m=Math.max.apply(Math,p);m>1&&(n/=m,a/=m,s/=m,o/=m,c/=m,d/=m,u/=m,g/=m);var w=A.width-s,f=A.height-d,E=A.width-c,B=A.height-g,b=t.borderTopWidth,v=t.borderRightWidth,C=t.borderBottomWidth,y=t.borderLeftWidth,F=at(t.paddingTop,e.bounds.width),x=at(t.paddingRight,e.bounds.width),S=at(t.paddingBottom,e.bounds.width),T=at(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?Ha(A.left+y/3,A.top+b/3,n-y/3,a-b/3,la.TOP_LEFT):new Qa(A.left+y/3,A.top+b/3),this.topRightBorderDoubleOuterBox=n>0||a>0?Ha(A.left+w,A.top+b/3,s-v/3,o-b/3,la.TOP_RIGHT):new Qa(A.left+A.width-v/3,A.top+b/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?Ha(A.left+E,A.top+f,c-v/3,d-C/3,la.BOTTOM_RIGHT):new Qa(A.left+A.width-v/3,A.top+A.height-C/3),this.bottomLeftBorderDoubleOuterBox=u>0||g>0?Ha(A.left+y/3,A.top+B,u-y/3,g-C/3,la.BOTTOM_LEFT):new Qa(A.left+y/3,A.top+A.height-C/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?Ha(A.left+2*y/3,A.top+2*b/3,n-2*y/3,a-2*b/3,la.TOP_LEFT):new Qa(A.left+2*y/3,A.top+2*b/3),this.topRightBorderDoubleInnerBox=n>0||a>0?Ha(A.left+w,A.top+2*b/3,s-2*v/3,o-2*b/3,la.TOP_RIGHT):new Qa(A.left+A.width-2*v/3,A.top+2*b/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?Ha(A.left+E,A.top+f,c-2*v/3,d-2*C/3,la.BOTTOM_RIGHT):new Qa(A.left+A.width-2*v/3,A.top+A.height-2*C/3),this.bottomLeftBorderDoubleInnerBox=u>0||g>0?Ha(A.left+2*y/3,A.top+B,u-2*y/3,g-2*C/3,la.BOTTOM_LEFT):new Qa(A.left+2*y/3,A.top+A.height-2*C/3),this.topLeftBorderStroke=n>0||a>0?Ha(A.left+y/2,A.top+b/2,n-y/2,a-b/2,la.TOP_LEFT):new Qa(A.left+y/2,A.top+b/2),this.topRightBorderStroke=n>0||a>0?Ha(A.left+w,A.top+b/2,s-v/2,o-b/2,la.TOP_RIGHT):new Qa(A.left+A.width-v/2,A.top+b/2),this.bottomRightBorderStroke=c>0||d>0?Ha(A.left+E,A.top+f,c-v/2,d-C/2,la.BOTTOM_RIGHT):new Qa(A.left+A.width-v/2,A.top+A.height-C/2),this.bottomLeftBorderStroke=u>0||g>0?Ha(A.left+y/2,A.top+B,u-y/2,g-C/2,la.BOTTOM_LEFT):new Qa(A.left+y/2,A.top+A.height-C/2),this.topLeftBorderBox=n>0||a>0?Ha(A.left,A.top,n,a,la.TOP_LEFT):new Qa(A.left,A.top),this.topRightBorderBox=s>0||o>0?Ha(A.left+w,A.top,s,o,la.TOP_RIGHT):new Qa(A.left+A.width,A.top),this.bottomRightBorderBox=c>0||d>0?Ha(A.left+E,A.top+f,c,d,la.BOTTOM_RIGHT):new Qa(A.left+A.width,A.top+A.height),this.bottomLeftBorderBox=u>0||g>0?Ha(A.left,A.top+B,u,g,la.BOTTOM_LEFT):new Qa(A.left,A.top+A.height),this.topLeftPaddingBox=n>0||a>0?Ha(A.left+y,A.top+b,Math.max(0,n-y),Math.max(0,a-b),la.TOP_LEFT):new Qa(A.left+y,A.top+b),this.topRightPaddingBox=s>0||o>0?Ha(A.left+Math.min(w,A.width-v),A.top+b,w>A.width+v?0:Math.max(0,s-v),Math.max(0,o-b),la.TOP_RIGHT):new Qa(A.left+A.width-v,A.top+b),this.bottomRightPaddingBox=c>0||d>0?Ha(A.left+Math.min(E,A.width-y),A.top+Math.min(f,A.height-C),Math.max(0,c-v),Math.max(0,d-C),la.BOTTOM_RIGHT):new Qa(A.left+A.width-v,A.top+A.height-C),this.bottomLeftPaddingBox=u>0||g>0?Ha(A.left+y,A.top+Math.min(B,A.height-C),Math.max(0,u-y),Math.max(0,g-C),la.BOTTOM_LEFT):new Qa(A.left+y,A.top+A.height-C),this.topLeftContentBox=n>0||a>0?Ha(A.left+y+T,A.top+b+F,Math.max(0,n-(y+T)),Math.max(0,a-(b+F)),la.TOP_LEFT):new Qa(A.left+y+T,A.top+b+F),this.topRightContentBox=s>0||o>0?Ha(A.left+Math.min(w,A.width+y+T),A.top+b+F,w>A.width+y+T?0:s-y+T,o-(b+F),la.TOP_RIGHT):new Qa(A.left+A.width-(v+x),A.top+b+F),this.bottomRightContentBox=c>0||d>0?Ha(A.left+Math.min(E,A.width-(y+T)),A.top+Math.min(f,A.height+b+F),Math.max(0,c-(v+x)),d-(C+S),la.BOTTOM_RIGHT):new Qa(A.left+A.width-(v+x),A.top+A.height-(C+S)),this.bottomLeftContentBox=u>0||g>0?Ha(A.left+y+T,A.top+B,Math.max(0,u-(y+T)),g-(C+S),la.BOTTOM_LEFT):new Qa(A.left+y+T,A.top+A.height-(C+S))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(la||(la={}));var Ha=function(e,t,A,i,n){var a=(Math.sqrt(2)-1)/3*4,r=A*a,s=i*a,o=e+A,l=t+i;switch(n){case la.TOP_LEFT:return new Na(new Qa(e,l),new Qa(e,l-s),new Qa(o-r,t),new Qa(o,t));case la.TOP_RIGHT:return new Na(new Qa(e,t),new Qa(e+r,t),new Qa(o,l-s),new Qa(o,l));case la.BOTTOM_RIGHT:return new Na(new Qa(o,t),new Qa(o,t+s),new Qa(e+r,l),new Qa(e,l));case la.BOTTOM_LEFT:default:return new Na(new Qa(o,l),new Qa(o-r,l),new Qa(e,t+s),new Qa(e,t))}},Pa=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},Va=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Ka=function(e,t,A){this.offsetX=e,this.offsetY=t,this.matrix=A,this.type=0,this.target=6},Ga=function(e,t){this.path=e,this.target=t,this.type=1},Wa=function(e){this.opacity=e,this.type=2,this.target=6},za=function(e){return 1===e.type},Xa=function(e,t){return e.length===t.length&&e.some((function(e,A){return e===t[A]}))},Ya=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},ja=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new Ra(this.container),this.container.styles.opacity<1&&this.effects.push(new Wa(this.container.styles.opacity)),null!==this.container.styles.transform){var A=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Ka(A,i,n))}if(0!==this.container.styles.overflowX){var a=Pa(this.curves),r=Va(this.curves);Xa(a,r)?this.effects.push(new Ga(a,6)):(this.effects.push(new Ga(a,2)),this.effects.push(new Ga(r,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),A=this.parent,i=this.effects.slice(0);A;){var n=A.effects.filter((function(e){return!za(e)}));if(t||0!==A.container.styles.position||!A.parent){if(i.unshift.apply(i,n),t=-1===[2,3].indexOf(A.container.styles.position),0!==A.container.styles.overflowX){var a=Pa(A.curves),r=Va(A.curves);Xa(a,r)||i.unshift(new Ga(r,6))}}else i.unshift.apply(i,n);A=A.parent}return i.filter((function(t){return li(t.target,e)}))},e}(),_a=function(e,t,A,i){e.container.elements.forEach((function(n){var a=li(n.flags,4),r=li(n.flags,2),s=new ja(n,e);li(n.styles.display,2048)&&i.push(s);var o=li(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?A:t,c=new Ya(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(e,t){return d>e.element.container.styles.zIndex.order?(h=t,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var u=0;l.positiveZIndex.some((function(e,t){return d>=e.element.container.styles.zIndex.order?(u=t+1,!1):u>0})),l.positiveZIndex.splice(u,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);_a(s,c,a?c:A,o)}else n.styles.isInlineLevel()?t.inlineLevel.push(s):t.nonInlineLevel.push(s),_a(s,t,A,o);li(n.flags,8)&&Ja(n,o)}))},Ja=function(e,t){for(var A=e instanceof dn?e.start:1,i=e instanceof dn&&e.reversed,n=0;n0&&e.intrinsicHeight>0){var i=tr(e),n=Va(t);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(A,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(e){return i(this,void 0,void 0,(function(){var t,i,a,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.getEffects(4)),t=e.container,i=e.curves,a=t.styles,s=0,o=t.textNodes,n.label=1;case 1:return s0&&y>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(B,f,x,S))):function(e){return 2===e.type}(A)&&(E=Ar(e,t,[null,null,null]),B=E[0],b=E[1],v=E[2],C=E[3],y=E[4],F=0===A.position.length?[At]:A.position,x=at(F[0],C),S=at(F[F.length-1],y),T=function(e,t,A,i,n){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.min(Math.abs(t),Math.abs(t-i)),r=Math.min(Math.abs(A),Math.abs(A-n)));break;case 2:if(0===e.shape)a=r=Math.min(Tt(t,A),Tt(t,A-n),Tt(t-i,A),Tt(t-i,A-n));else if(1===e.shape){var s=Math.min(Math.abs(A),Math.abs(A-n))/Math.min(Math.abs(t),Math.abs(t-i)),o=It(i,n,t,A,!0),l=o[0],c=o[1];r=s*(a=Tt(l-t,(c-A)/s))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.max(Math.abs(t),Math.abs(t-i)),r=Math.max(Math.abs(A),Math.abs(A-n)));break;case 3:if(0===e.shape)a=r=Math.max(Tt(t,A),Tt(t,A-n),Tt(t-i,A),Tt(t-i,A-n));else if(1===e.shape){s=Math.max(Math.abs(A),Math.abs(A-n))/Math.max(Math.abs(t),Math.abs(t-i));var d=It(i,n,t,A,!1);l=d[0],c=d[1],r=s*(a=Tt(l-t,(c-A)/s))}}return Array.isArray(e.size)&&(a=at(e.size[0],i),r=2===e.size.length?at(e.size[1],n):a),[a,r]}(A,x,S,C,y),I=T[0],M=T[1],I>0&&M>0&&(k=i.ctx.createRadialGradient(b+x,v+S,0,b+x,v+S,I),xt(A.stops,2*I).forEach((function(e){return k.addColorStop(e.stop,gt(e.color))})),i.path(B),i.ctx.fillStyle=k,I!==M?(U=e.bounds.left+.5*e.bounds.width,O=e.bounds.top+.5*e.bounds.height,L=1/(Q=M/I),i.ctx.save(),i.ctx.translate(U,O),i.ctx.transform(1,0,0,Q,0,0),i.ctx.translate(-U,-O),i.ctx.fillRect(b,L*(v-O)+O,C,y*L),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return t--,[2]}}))},i=this,a=0,r=e.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,e.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,e.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},A.prototype.renderDashedDottedBorder=function(e,t,A,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){return this.ctx.save(),i=function(e,t){switch(t){case 0:return qa(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return qa(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return qa(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return qa(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(a,A),s=Za(a,A),2===r&&(this.path(s),this.ctx.clip()),Da(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Da(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===A||2===A?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),u=t<3?3*t:2*t,g=t<3?2*t:t,3===r&&(u=t,g=t),p=!0,h<=2*u?p=!1:h<=2*u+g?(u*=m=h/(2*u+g),g*=m):(w=Math.floor((h+g)/(u+g)),f=(h-w*u)/(w-1),g=(E=(h-(w+1)*u)/w)<=0||Math.abs(g-f){const a=await tex2dataURL(e,n);if(a){const e=[];e.push({mimeType:a.mimeType,id:t,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1,shouldScale:!0}),i(e,A)}};async function tex2dataURL(e,t){let A=0;for(;!t.mathjax&&!t.mathjaxLoaderFinished&&A<10;)await sleep$1(100),A++;t.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){return t.mathjax?new obsidian_module.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian_module.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(e)}}}}async function mathjaxSVG(e,t){const A=t.mathjax.tex2svg(e,{display:!0,scale:4}).querySelector("svg");if(A){A.width.baseVal.valueInSpecifiedUnits<2&&(A.width.baseVal.valueAsString=`${(A.width.baseVal.valueInSpecifiedUnits+1).toFixed(3)}ex`);const e=svgToBase64(A.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:e,created:Date.now(),size:await getImageSize(e)}}return null}async function mathjaxImage2html(e){const t=document.body.createDiv();t.style.display="table";const A=window.MathJax.tex2chtml(e,{display:!0,scale:4});A.style.margin="3px",A.style.color="black";const i=A.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),t.appendChild(A),window.MathJax.typeset();const n=await html2canvas(t,{backgroundColor:null});return document.body.removeChild(t),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const markdownRendererRecursionWatcthdog=new Set,replaceSVGColors=(e,t)=>{if(!t)return e;if("string"==typeof e){for(const[A,i]of Object.entries(t)){const t=new RegExp(`fill="${A}"`,"g");e=e.replaceAll(t,`fill="${i}"`);const n=new RegExp(`stroke="${A}"`,"g");e=e.replaceAll(n,`stroke="${i}"`)}return e}const A=e=>{if(e instanceof SVGElement){const A=e.getAttribute("fill"),i=e.getAttribute("stroke");A&&t[A]&&e.setAttribute("fill",t[A]),i&&t[i]&&e.setAttribute("stroke",t[i])}for(const t of e.childNodes)A(t)};for(const t of e.childNodes)A(t);return e};class EmbeddedFile{constructor(e,t,A,i){if(this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.isHyperlink=!1,this.colorMap=null,this.plugin=e,this.resetImage(t,A),this.file&&(this.plugin.ea.isExcalidrawFile(this.file)||"svg"===this.file.extension.toLowerCase()))try{this.colorMap=i?JSON.parse(i):null}catch(e){this.colorMap=null}}resetImage(e,t){if(this.imgInverted=this.img="",this.mtime=0,t.startsWith("https://")||t.startsWith("http://"))return this.isHyperlink=!0,void(this.hyperlink=t);this.linkParts=getLinkParts(t),this.hostPath=e,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file||0==this.attemptCounter++&&new obsidian_module.Notice(`Excalidraw Warning: could not find image file: ${t}`,5e3)):new obsidian_module.Notice(`Excalidraw Error\nIncorrect embedded filename: ${t}`)}fileChanged(){return!this.isHyperlink&&(this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1))}setImage(e,t,A,i,n){if(this.file||this.isHyperlink){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.isHyperlink?0:this.file.stat.mtime,this.size=A,this.mimeType=t,i&&n){case!0:this.imgInverted=e;break;case!1:this.img=e}this.isSVGwithBitmap=n}}isLoaded(e){if(!this.isHyperlink){if(!this.file&&(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),!this.file))return this.attemptCounter++,!0;if(this.fileChanged())return!1}return this.isSVGwithBitmap&&e?""!==this.imgInverted:""!==this.img}getImage(e){return this.file||this.isHyperlink?e&&this.isSVGwithBitmap?this.imgInverted:this.img:""}shouldScale(){return this.isHyperlink||!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{constructor(e,t){this.pdfDocsMap=new Map,this.terminate=!1,this.plugin=e,this.isDark=t,this.uid=nanoid()}emptyPDFDocsMap(){this.pdfDocsMap.forEach((e=>e.destroy())),this.pdfDocsMap.clear()}async getObsidianImage(e,t){const A=await this._getObsidianImage(e,t);return this.emptyPDFDocsMap(),A}async _getObsidianImage(e,t){var A;if(!this.plugin||!e)return null;const i=e instanceof EmbeddedFile&&e.isHyperlink,n=e instanceof EmbeddedFile?e.hyperlink:"",a=e instanceof EmbeddedFile?e.file:e;if(a&&markdownRendererRecursionWatcthdog.has(a))return new obsidian_module.Notice(`Loading of ${a.path}. Please check if there is an inifinite loop of one file embedded in the other.`),null;const r=i?null:e instanceof EmbeddedFile?e.linkParts:{original:a.path,path:a.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight,page:null};let s=!1;const o=!i&&this.plugin.isExcalidrawFile(a),l=!i&&"pdf"===a.extension.toLowerCase();if(!(i||l||IMAGE_TYPES.contains(a.extension)||o||"md"===a.extension))return null;const c=i||l?null:await app.vault.readBinary(a),d=o?await(async A=>{const i=hasExportTheme(this.plugin,a)?getExportTheme(this.plugin,a,"light"):void 0,n={withBackground:!!hasExportBackground(this.plugin,a)&&getWithBackground(this.plugin,a),withTheme:!!i},r=replaceSVGColors(await createSVG(a.path,!0,n,this,i,null,null,[],this.plugin,t+1,getExportPadding(this.plugin,a)),e instanceof EmbeddedFile?e.colorMap:null),o=r.querySelectorAll("image:not([href^='data:image/svg'])");return o.length>0&&(s=!0),s&&A&&o.forEach((e=>{var t;const A=null===(t=e.parentElement)||void 0===t?void 0:t.id;r.querySelectorAll(`use[href='#${A}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!s&&r.getAttribute("hasbitmap")&&(s=!0),svgToBase64(r.outerHTML)})(this.isDark):null,[h,u]=l?await this.pdfToDataURL(a,r):[null,null];let g=l?"image/png":"image/svg+xml";const p=i?getURLImageExtension(n):a.extension;o||l||(g=getMimeType(p));let m=i?e instanceof EmbeddedFile?await getDataURLFromURL(e.hyperlink,g):null:null!==(A=null!=d?d:h)&&void 0!==A?A:"svg"===a.extension?await getSVGData(app,a,e instanceof EmbeddedFile?e.colorMap:null):"md"===a.extension?null:await getDataURL(c,g);if(!i&&!m){markdownRendererRecursionWatcthdog.add(a);const e=await this.convertMarkdownToSVG(this.plugin,a,r,t);markdownRendererRecursionWatcthdog.delete(a),m=e.dataURL,s=e.hasSVGwithBitmap}try{const e=l?u:await getImageSize(m);return{mimeType:g,fileId:await generateIdFromFile(i||l?(new TextEncoder).encode(m):c),dataURL:m,created:i?0:a.stat.mtime,hasSVGwithBitmap:s,size:e}}catch(e){return null}}async loadSceneFiles(e,t,A){var i,n;if(A>4)return void new obsidian_module.Notice(t$d("INFINITE_LOOP_WARNING")+A.toString(),6e3);const a=e.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==e?void 0:e.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const e=r.value[1];if(e.isLoaded(this.isDark)){if(e.isSVGwithBitmap){const A={mimeType:e.mimeType,id:r.value[0],dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}else{const i=await this._getObsidianImage(e,A);if(i){const A={mimeType:i.mimeType,id:r.value[0],dataURL:i.dataURL,created:i.created,size:i.size,hasSVGwithBitmap:i.hasSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}}let o;const l=e.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!e.getEquation(o.value[0]).isLoaded){const e=o.value[1].latex,t=await tex2dataURL(e,this.plugin);if(t){const e={mimeType:t.mimeType,id:o.value[0],dataURL:t.dataURL,created:t.created,size:t.size,hasSVGwithBitmap:!1,shouldScale:!0};s.push(e)}}if(this.emptyPDFDocsMap(),!this.terminate)try{t(s,this.isDark,!0)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async pdfToDataURL(e,t){var A,i;try{let n=0,a=0;const r=null!==(A=this.pdfDocsMap.get(e.path))&&void 0!==A?A:await getPDFDoc(e);this.pdfDocsMap.has(e.path)||this.pdfDocsMap.set(e.path,r);const s=isNaN(t.page)?1:null!==(i=t.page)&&void 0!==i?i:1,o=this.plugin.settings.pdfScale,l=async e=>{const t=createEl("canvas"),A=t.getContext("2d"),i=await r.getPage(e),s=i.getViewport({scale:o});a=t.height=s.height,n=t.width=s.width;const l={canvasContext:A,background:"rgba(0,0,0,0)",viewport:s};return await i.render(l).promise,t},c=await l(s);if(c){const e=[`data:image/png;base64,${await new Promise(((e,t)=>{c.toBlob((async t=>{const A=await blobToBase64(t);e(A)}))}))}`,{width:n,height:a}];return c.width=0,c.height=0,e}}catch(e){return console.log(e),[null,null]}}async convertMarkdownToSVG(e,t,A,i){var n,a,r,s;let o=!1;const l=await getTransclusion(A,e.app,t);let c=(null!==(n=l.leadingHashes)&&void 0!==n?n:"")+l.contents;""===c&&(c="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const d=e.app.metadataCache.getFileCache(t);let h,u=e.settings.mdFont;switch((null==d?void 0:d.frontmatter)&&Boolean(d.frontmatter["excalidraw-font"])&&(u=d.frontmatter["excalidraw-font"]),u){case"Virgil":h=VIRGIL_FONT;break;case"Cascadia":h=CASCADIA_FONT;break;case"":h="";break;default:const A=await getFontDataURL(e.app,u,t.path);h=A.fontDef,u=A.fontName}(null==d?void 0:d.frontmatter)&&null!==d.frontmatter.banner&&(c=c.replace(/banner:\s*.*/,""));const g=(null==d?void 0:d.frontmatter)&&null!==(a=d.frontmatter["excalidraw-font-color"])&&void 0!==a?a:e.settings.mdFontColor;let p=(null==d?void 0:d.frontmatter)&&null!==(r=d.frontmatter["excalidraw-css"])&&void 0!==r?r:"",m=!1;if(p&&""!=p){const A=e.app.metadataCache.getFirstLinkpathDest(p,t.path);A&&(p=await e.app.vault.read(A),m=!0)}if(!m)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const A=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,t.path);p+=A?`\n${await e.app.vault.read(A)}`:DEFAULT_MD_EMBED_CSS}else p+=DEFAULT_MD_EMBED_CSS;const w=(null==d?void 0:d.frontmatter)&&null!==(s=d.frontmatter["excalidraw-border-color"])&&void 0!==s?s:e.settings.mdBorderColor;w&&""!==w&&!p.match(/svg/i)&&(p+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let f=` width="${A.width}px" height="100000"`,E=` width="${A.width}px" height="100%"`;const B=(e,t,A)=>`${A?``:""}${e}${t}${""!==h?``:""}`,b=createDiv();b.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),b.setAttribute("class","excalidraw-md-host"),""!==u&&(b.style.fontFamily=u),b.style.overflow="auto",b.style.display="block",b.style.color=g&&""!==g?g:"initial",await obsidian_module.MarkdownRenderer.renderMarkdown(c,b,t.path,e),b.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>b.removeChild(e)));const v=Array.from(b.querySelectorAll("span[class='internal-embed']"));for(let A=0;A{const t=e.style,A=window.getComputedStyle(e);let i="";for(const e in t)t.hasOwnProperty(e)&&(i+=`${e}: ${A[e]};`);e.setAttribute("style",i)}));const S=(new XMLSerializer).serializeToString(F),T=(new XMLSerializer).serializeToString(x);document.body.removeChild(C);const I=new DOMParser,M=I.parseFromString(B(S,T),"image/svg+xml").firstElementChild,k=createDiv();k.appendChild(M),document.body.appendChild(k);const U=M.querySelector(".excalidraw-md-footer").scrollHeight,O=M.querySelector(".excalidraw-md-host").scrollHeight+U,Q=O<=A.height?O:A.height;document.body.removeChild(k),f=` width="${A.width}px" height="${Q}px"`,E=` width="${A.width}px" height="${Q}px"`,b.style.height=Q-U+"px",b.style.overflow="hidden";const L=b.querySelectorAll("img:not([src^='data:image/svg+xml'])");L.length>0&&(o=!0),o&&this.isDark&&L.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const N=B((new XMLSerializer).serializeToString(b),'',p);return e.ea.mostRecentMarkdownSVG=I.parseFromString(N,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(N),hasSVGwithBitmap:o}}}const getSVGData=async(e,t,A)=>{const i=replaceSVGColors(await e.vault.read(t),A);return svgToBase64(i)},generateIdFromFile=async e=>{let t;try{const A=await window.crypto.subtle.digest("SHA-1",e);t=Array.from(new Uint8Array(A)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),t=fileid()}return t};class Prompt extends obsidian_module.Modal{constructor(e,t,A,i,n){super(e),this.prompt_text=t,this.default_value=A,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var e;let t=this.contentEl.createDiv();t.addClass("excalidraw-prompt-div"),this.prompt_desc&&(t=t.createDiv(),t.style.width="100%",t.createEl("p").innerHTML=this.prompt_desc);const A=t.createEl("form");A.addClass("excalidraw-prompt-form"),A.type="submit",A.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=A.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(e=this.default_value)&&void 0!==e?e:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian_module.Modal{static Prompt(e,t,A,i,n,a,r,s,o,l,c){return new GenericInputPrompt(e,t,A,i,n,a,r,s,o,l,c).waitForClose}constructor(e,t,A,i,n,a,r,s,o,l,c){super(A),this.header=i,this.didSubmit=!1,this.lines=1,this.displayEditorButtons=!1,this.selectionStart=0,this.selectionEnd=0,this.selectionUpdateTimer=0,this.blockPointerInputOutsideModal=!1,this.linkBtnClickCallback=()=>{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.plugin.insertLinkDialog.start(this.view.file.path,(e=>{const t=this.inputComponent.inputEl.value;this.selectionStart>0&&" "!==t.slice(this.selectionStart-1,this.selectionStart)&&(e=" "+e),this.selectionStart{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer);const t=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+e+this.inputComponent.inputEl.value.slice(this.selectionStart);this.inputComponent.inputEl.value=t,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=this.selectionStart+1,this.selectionEnd=this.selectionStart,this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.delBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),0===this.input.length)return;const e=this.selectionEnd>this.selectionStart?this.selectionStart:this.selectionStart>0?this.selectionStart-1:0,t=this.selectionEnd,A=this.inputComponent.inputEl.value.slice(0,e)+this.inputComponent.inputEl.value.slice(t);this.inputComponent.inputEl.value=A,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=e,this.selectionEnd=e,this.inputComponent.inputEl.setSelectionRange(e,e)},this.uppercaseBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.selectionEnd===this.selectionStart)return;const e=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+this.inputComponent.inputEl.value.slice(this.selectionStart,this.selectionEnd).toUpperCase()+this.inputComponent.inputEl.value.slice(this.selectionEnd);this.inputComponent.inputEl.value=e,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.keyDownCallback=e=>{("Enter"===e.key&&1===this.lines||isCTRL(e)&&"Enter"===e.key)&&(e.preventDefault(),this.submit()),this.displayEditorButtons&&"k"===e.key&&isCTRL(e)&&(e.preventDefault(),this.linkBtnClickCallback())},this.view=e,this.plugin=t,this.placeholder=n,this.input=a,this.buttons=r,this.lines=null!=s?s:1,this.displayEditorButtons=this.lines>1&&null!=o&&o,this.customComponents=l,this.blockPointerInputOutsideModal=null!=c&&c,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.inputComponent.inputEl.focus(),this.open()}display(){var e;this.contentEl.empty(),this.blockPointerInputOutsideModal&&(this.bgEl.style.pointerEvents=this.blockPointerInputOutsideModal?"none":"auto"),this.titleEl.textContent=this.header;const t=this.contentEl.createDiv();this.inputComponent=this.createInputField(t,this.placeholder,this.input),null===(e=this.customComponents)||void 0===e||e.call(this,t),this.createButtonBar(t)}createInputField(e,t,A){const i=new obsidian_module.TextAreaComponent(e);i.inputEl.style.width="100%",i.inputEl.style.height=2*this.lines+"em",1===this.lines&&(i.inputEl.style.resize="none",i.inputEl.style.overflow="hidden"),i.setPlaceholder(null!=t?t:"").setValue(null!=A?A:"").onChange((e=>this.input=e));const n=()=>{this.selectionUpdateTimer=this.view.ownerWindow.setTimeout((()=>{this.selectionStart=this.inputComponent.inputEl.selectionStart,this.selectionEnd=this.inputComponent.inputEl.selectionEnd}),30)};return i.inputEl.addEventListener("keydown",this.keyDownCallback),i.inputEl.addEventListener("keyup",n),i.inputEl.addEventListener("pointerup",n),i.inputEl.addEventListener("touchend",n),i.inputEl.addEventListener("input",n),i.inputEl.addEventListener("paste",n),i.inputEl.addEventListener("cut",n),i.inputEl.addEventListener("select",n),i.inputEl.addEventListener("selectionchange",n),i}createButton(e,t,A,i="",n="5px"){const a=new obsidian_module.ButtonComponent(e);return a.buttonEl.style.padding="0.5em",a.buttonEl.style.marginLeft=n,a.setTooltip(i),a.setButtonText(t).onClick(A),a}createButtonBar(e){const t=e.createDiv();t.style.display="flex",t.style.justifyContent="space-between",t.style.marginTop="1rem";const A=t.createDiv(),i=t.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const A=new obsidian_module.ButtonComponent(i);A.buttonEl.style.marginLeft="5px",t.tooltip&&A.setTooltip(t.tooltip),A.setButtonText(t.caption).onClick((e=>{const A=t.action(this.input);A&&(this.input=A),this.submit()})),e=null!=e?e:A}e&&(e.setCta(),e.buttonEl.style.marginRight="0")}else this.createButton(i,"✅",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(i,"❌",this.cancelClickCallback,t$d("PROMPT_BUTTON_CANCEL")),this.displayEditorButtons&&(this.createButton(A,"⏎",(()=>this.insertStringBtnClickCallback("\n")),t$d("PROMPT_BUTTON_INSERT_LINE"),"0"),this.createButton(A,"⌫",this.delBtnClickCallback,"Delete"),this.createButton(A,"⎵",(()=>this.insertStringBtnClickCallback(" ")),t$d("PROMPT_BUTTON_INSERT_SPACE")),this.view&&this.createButton(A,"🔗",this.linkBtnClickCallback,t$d("PROMPT_BUTTON_INSERT_LINK")),this.createButton(A,"🔠",this.uppercaseBtnClickCallback,t$d("PROMPT_BUTTON_UPPERCASE")))}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var e,t;null===(t=null===(e=this.inputComponent)||void 0===e?void 0:e.inputEl)||void 0===t||t.removeEventListener("keydown",this.keyDownCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian_module.FuzzySuggestModal{static Suggest(e,t,A,i,n){return new GenericSuggester(e,t,A,i,n).promise}constructor(e,t,A,i,n){var a;super(e),this.displayItems=t,this.items=A,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.open()}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,t){this.resolved=!0,super.selectSuggestion(e,t)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian_module.Modal{constructor(e,t,A,i,n=!0,a){super(e.app),this.plugin=e,this.path=t,this.keys=A,this.view=i,this.openNewFile=n,this.parentFile=a,this.newFile=null,a||(this.parentFile=i.file),this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t}))}onOpen(){this.createForm()}openFile(e){this.newFile=e,e&&this.openNewFile&&getLeaf(this.plugin,this.view.leaf,this.keys).openFile(e,{active:!0})}onClose(){super.onClose(),this.resolvePromise(this.newFile)}createForm(){this.titleEl.setText(t$d("PROMPT_TITLE_NEW_FILE")),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:t$d("PROMPT_FILE_DOES_NOT_EXIST")}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const t=()=>this.path&&""!==this.path?!!this.parentFile||(new obsidian_module.Notice(t$d("PROMPT_ERROR_DRAWING_CLOSED")),!1):(new obsidian_module.Notice(t$d("PROMPT_ERROR_NO_FILENAME")),!1),A=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${this.parentFile.name}$`,"g");this.path=this.parentFile.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,e)};e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_MARKDOWN")}).onclick=async()=>{if(!t)return;const e=await A("");this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_EXCALIDRAW")}).onclick=async()=>{if(!t)return;const e=await A(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_NEVERMIND")}).onclick=()=>{this.close()}}))}}class ConfirmationPrompt extends obsidian_module.Modal{constructor(e,t){super(e.app),this.plugin=e,this.didConfirm=!1,this.cancelClickCallback=()=>{this.didConfirm=!1,this.close()},this.confirmClickCallback=()=>{this.didConfirm=!0,this.close()},this.message=t,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.open()}display(){this.contentEl.empty(),this.titleEl.textContent=t$d("PROMPT_TITLE_CONFIRMATION");const e=this.contentEl.createDiv();e.style.marginBottom="1rem",e.innerHTML=this.message;const t=this.contentEl.createDiv();t.style.display="flex",t.style.justifyContent="flex-end";const A=this.createButton(t,t$d("PROMPT_BUTTON_CANCEL"),this.cancelClickCallback);A.buttonEl.style.marginRight="0.5rem",this.createButton(t,t$d("PROMPT_BUTTON_OK"),this.confirmClickCallback).buttonEl.style.marginRight="0",A.buttonEl.focus()}createButton(e,t,A){const i=new obsidian_module.ButtonComponent(e);return i.setButtonText(t).onClick(A),i}onOpen(){var e;super.onOpen(),null===(e=this.contentEl.querySelector("button"))||void 0===e||e.focus()}onClose(){super.onClose(),this.didConfirm?this.resolvePromise(!0):this.resolvePromise(!1)}}var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ +//![[link|alias]] [alias](link){num} +EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getResList:e=>{const t=e.matchAll(REGEX_LINK.EXPR);let A;const i=[];for(;!(A=t.next()).done;)i.push(A);return i},getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,t)=>{const A=parseInt(e.value[8]);return isNaN(A)?t>0?t:null:A}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let t,A=e.matchAll(DRAWING_COMPRESSED_REG);return t=A.next(),t.done&&(A=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),t=A.next()),t.value&&t.value.length>1?[decompress(t.value[2]),t]:[null,t]},changeThemeOfExcalidrawMD=e=>{const t=isCompressedMD(e);let A=t?getDecompressedScene(e)[0]:e;return A?(isObsidianThemeDark?1===(A.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(A.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),t?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(A)}$3`):A):e};function getJSON(e){let t,A;if(isCompressedMD(e)){const[t,A]=getDecompressedScene(e);return t?{scene:t.substring(0,t.lastIndexOf("}")+1),pos:A.value.index}:{scene:e,pos:A.value?A.value.index:0}}if(t=e.matchAll(DRAWING_REG),A=t.next(),A.done&&(t=e.matchAll(DRAWING_REG_FALLBACK),A=t.next()),A.value&&A.value.length>1){const e=A.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:A.value.index}}return{scene:e,pos:A.value?A.value.index:0}}function getMarkdownDrawingSection(e,t){return t?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const estimateMaxLineLen=(e,t)=>{if(!t||!e)return null;if(e===t)return null;let A=0;const i=e.split("\n");if(1===i.length)return null;for(const e of i){const t=e.trim();t.length>A&&(A=t.length)}return A},wrap=(e,t)=>t?wrapTextAtCharLength(e,t,!1,0):e;class ExcalidrawData{constructor(e){this.plugin=e,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.embeddableTheme="auto",this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=e.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var e,t,A;if(!this.scene||!this.scene.elements)return;const i=null!==(e=this.scene.source.split("https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/")[1])&&void 0!==e?e:"1.8.16",n=this.scene.elements;for(const e of n){if("iframe"===e.type&&(e.type="embeddable"),e.boundElements){const t=new Map;e.boundElements.forEach((e=>{t.set(e.id,e.type)}));const A=Array.from(t,(([e,t])=>({id:e,type:t})));A.length!==e.boundElements.length&&(e.boundElements=A)}e.boundElementIds&&(e.boundElements||(e.boundElements=[]),e.boundElements=e.boundElements.concat(e.boundElementIds.map((e=>({type:"arrow",id:e})))),delete e.boundElementIds),"text"!==e.type||e.containerId||(e.containerId=null),null===e.x&&(e.x=0),null===e.y&&(e.y=0),null===(null===(t=e.startBinding)||void 0===t?void 0:t.focus)&&(e.startBinding.focus=0),null===(null===(A=e.endBinding)||void 0===A?void 0:A.focus)&&(e.endBinding.focus=0),null===e.fontSize&&(e.fontSize=20)}try{n.filter((e=>"text"===e.type&&e.containerId&&n.some((t=>t.id===e.containerId&&t.boundElements.length>0&&t.boundElements.some((t=>"text"===t.type&&t.id!==e.id&&t.id.length>8)))))).forEach((e=>{try{const t=n.filter((t=>t.id===e.containerId))[0],A=t.boundElements.filter((e=>!("text"===e.type&&!n.some((t=>t.id===e.id)))));t.boundElements=[{id:e.id,type:"text"}].concat(A)}catch(e){}}));const e=!isVersionNewerThanOther(i,"1.8.16");n.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((t=>{var A;e&&!(null===(A=t.customData)||void 0===A?void 0:A.legacyTextWrap)&&addAppendUpdateCustomData(t,{legacyTextWrap:!0});const i=t.boundElements.filter((e=>n.some((t=>t.id===e.id))));i.length!==t.boundElements.length&&(t.boundElements=i)})),n.filter((e=>"text"===e.type&&e.containerId&&!n.some((t=>t.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch(e){}}async loadData(e,t,A){var i,n;if(!t)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=t&&(this.files.clear(),this.equations.clear()),this.file=t,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.setembeddableThemePreference(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${t.path.substring(0,t.path.lastIndexOf(".md"))}.excalidraw`,A=this.app.vault.getAbstractFileByPath(e);if(A&&A instanceof obsidian_module.TFile&&A.stat.mtime>t.stat.mtime){const e=await this.app.vault.read(A);this.scene=JSON.parse(e)}}let a=null;if(a=(()=>{const t=getJSON(e);if(-1===t.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(t.scene)),t})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),null===(n=null===(i=this.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.some((e=>"iframe"===e.type))){const e=new ConfirmationPrompt(this.plugin,"This file contains embedded frames which will be migrated to a newer version for compatibility with excalidraw.com.
🔄 If you're using Obsidian on multiple devices, you may proceed now, but please, before opening this file on your other devices, update Excalidraw on those as well.
🔍 More info is available here.
🌐 Translate.");if(e.contentEl.focus(),!await e.waitForClose)throw new Error("iframe conversion canceled")}this.initializeNonInitializedFields();let r=(e=e.substring(0,a.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===r)return await this.setTextMode(A,!1),this.loaded=!0,!0;r+=e.match(/((^%%\n)?# Text Elements\n)/m)[0].length,e=e.substring(r),r=0;let s,o=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(s=o.next()).done;){let t=e.substring(r,s.value.index);const A=s.value[1],i=this.scene.elements.filter((e=>e.id===A))[0];if(i)if("text"!==i.type)i.link!==t&&(i.link=t,i.version++,i.versionNonce++),this.elementLinks.set(A,t);else{const e=estimateMaxLineLen(i.text,i.originalText),n=t.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();n.done||(t=t.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),i.link=n.value[1]);const a=await this.parse(t);i.rawText=t,this.textElements.set(A,{raw:t,parsed:a.parsed,wrapAt:e}),a.link&&(i.link=a.link),!i||i.rawText&&""!==i.rawText||(i.rawText=t)}r=s.value.index+12}for(o=(e=e.substring(e.indexOf("# Embedded files\n")+17)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\s?(\{[^}]*})?\n/gm);!(s=o.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,s.value[2],s.value[3]);this.setFile(s.value[1],e)}for(o=e.matchAll(/([\w\d]*):\s*(https?:\/\/[^\s]*)\n/gm);!(s=o.next()).done;){const e=new EmbeddedFile(this.plugin,null,s.value[2]);this.setFile(s.value[1],e)}for(o=e.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(s=o.next()).done;)this.setEquation(s.value[1],{latex:s.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(A,!0),this.loaded=!0,!0}async loadLegacyData(e,t){return!!t&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=t,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setembeddableThemePreference(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,t=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(t))}updateTextElement(e,t,A,i=!1,n){var a;if(i||t!=e.text){const i=_measureText(t,e.fontSize,e.fontFamily,null!==(a=e.lineHeight)&&void 0!==a?a:getDefaultLineHeight(e.fontFamily));e.text=t,e.originalText=A,e.containerId&&"arrow"!==n||(e.width=i.w),e.height=i.h,e.baseline=i.baseline}}async updateSceneTextElements(e=!1){var t,A,i,n;const a=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));for(const t of a){const a=getContainerElement(t,this.scene),r=null!==(i=null!==(A=await this.getText(t.id))&&void 0!==A?A:t.originalText)&&void 0!==i?i:t.text,s=null===(n=this.textElements.get(t.id))||void 0===n?void 0:n.wrapAt;try{this.updateTextElement(t,s?wrapText(r,getFontString({fontSize:t.fontSize,fontFamily:t.fontFamily}),getBoundTextMaxWidth(a)):r,r,e,null==a?void 0:a.type)}catch(e){debug({where:"ExcalidrawData.updateSceneTextElements",fn:this.updateSceneTextElements,textElement:t})}}}async getText(e){const t=this.textElements.get(e);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(e,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),t.parsed):t.raw:null}findNewElementLinksInScene(){var e;let t=!1;const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.link&&e.link.startsWith("[[")&&!this.elementLinks.has(e.id)));if(0===A.length)return t;let i,n=JSON.stringify(this.scene);for(const e of A)i=e.id,e.id.length>8&&(t=!0,i=nanoid(),n=n.replaceAll(e.id,i)),this.elementLinks.set(i,e.link);return this.scene=JSON.parse(n),t}findNewTextElementsInScene(e={}){var t;this.selectedElementIds=e;const A=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));let i,n=JSON.stringify(this.scene),a=!1;for(const e of A)if(i=e.id,e.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[i]=!0),n=n.replaceAll(e.id,i),this.textElements.has(e.id)){const t=this.textElements.get(e.id);this.textElements.set(i,{raw:t.raw,parsed:t.parsed,wrapAt:t.wrapAt}),this.textElements.delete(e.id)}if(!this.textElements.has(i)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}}else if(!this.textElements.has(e.id)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var e;for(const t of this.elementLinks.keys()){const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.id===t&&e.link&&e.link.startsWith("[[")));0===A.length?this.elementLinks.delete(t):this.elementLinks.set(t,A[0].link)}}async updateTextElementsFromScene(){var e,t,A;for(const i of this.textElements.keys()){const n=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"===e.type&&e.id===i));if(0===n.length)this.textElements.delete(i);else{const e=await this.getText(i),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text;if(e!==(null!==(A=n[0].originalText)&&void 0!==A?A:n[0].text)){const e=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:e})}}}}async parseasync(e,t,A){this.textElements.set(e,{raw:t,parsed:(await this.parse(t)).parsed,wrapAt:A})}parseLinks(e,t,A){return e.substring(t,A.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(A)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const t=getLinkParts(e,this.file),A=this.app.metadataCache.getFirstLinkpathDest(t.path,this.file.path);return await getTransclusion(t,this.app,A,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(a)){let A=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(A=A.replaceAll(/\n\s*>\s?/gm,"\n")),t+=e.substring(i,a.value.index)+wrapTextAtCharLength(A,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const A=this.parseLinks(e,i,a);A&&(t+=A,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),{parsed:t,link:A}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const t=REGEX_LINK.getRes(e);let A;for(;!(A=t.next()).done;)if(REGEX_LINK.isTransclusion(A))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const n=this.parseLinks(e,i,a);n&&(t+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),[t,A]}generateMD(e=[]){let t="# Text Elements\n";for(const e of this.textElements.keys()){const A=this.scene.elements.filter((t=>t.id===e));let i=this.textElements.get(e).raw;A&&1===A.length&&A[0].link&&A[0].rawText===A[0].originalText&&A[0].link.match(/^\[\[[^\]]*]]$/g)&&(i=`%%***>>>text element-link:${A[0].link}<<<***%%`+i),t+=`${i} ^${e}\n\n`}for(const e of this.elementLinks.keys())t+=`${this.elementLinks.get(e)} ^${e}\n\n`;if(t+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const e of this.equations.keys())t+=`${e}: $$${this.equations.get(e).latex}$$\n`;if(this.files.size>0)for(const e of this.files.keys()){const A=/(^[^#\|]*)/,i=this.files.get(e);i.isHyperlink?t+=`${e}: ${i.hyperlink}\n`:t+=`${e}: [[${i.file?i.linkParts.original.replace(A,app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]${i.colorMap?" "+JSON.stringify(i.colorMap):""}\n`}return t+=this.equations.size>0||this.files.size>0?"\n":"",t+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async saveDataURLtoVault(e,t,A){var i;const n=this.scene;let a=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;switch(t){case"image/png":default:a+=".png";break;case"image/jpeg":a+=".jpg";break;case"image/svg+xml":a+=".svg";break;case"image/gif":a+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,a)).filepath,s=await getBinaryFileFromDataURL(e);if(!s)return null;const o=await this.app.vault.createBinary(r,s),l=new EmbeddedFile(this.plugin,this.file.path,r);return l.setImage(e,t,{height:0,width:0},"dark"===(null===(i=n.appState)||void 0===i?void 0:i.theme),"image/svg+xml"===t),this.setFile(A,l),o}async syncFiles(){let e=!1;const t=this.scene,A=t.elements.filter((e=>"image"===e.type)).map((e=>e.fileId));if(this.files.forEach(((t,i)=>{A.contains(i)||(this.files.delete(i),e=!0)})),this.equations.forEach(((t,i)=>{A.contains(i)||(this.equations.delete(i),e=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const i=new Set;A.forEach((A=>{if(i.has(A)){const n=this.getFile(A),a=this.getEquation(A);if(n&&(n.isHyperlink||n.file&&("md"!==n.file.extension||this.plugin.isExcalidrawFile(n.file))))return;const r=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=r,e=!0,i.add(r),n&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,n.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}i.add(A)}));for(const A of Object.keys(t.files))this.hasFile(A)||this.hasEquation(A)||(e=!0,await this.saveDataURLtoVault(t.files[A].dataURL,t.files[A].mimeType,A));return e}async syncElements(e,t){this.scene=e;let A=!1;return this.compatibilityMode||(A=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),A=A||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),A||this.findNewTextElementsInScene(t)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const t=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.setembeddableThemePreference()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!t&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){var t;return null===(t=this.textElements.get(e))||void 0===t?void 0:t.raw}getParsedText(e){const t=this.textElements.get(e);return t?[wrap(t.parsed,t.wrapAt),t.parsed,null]:[null,null,null]}setTextElement(e,t,A,i){const n=estimateMaxLineLen(t,A),[a,r]=this.quickParse(A);return a?(this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(A).then((t=>{const a=t.parsed;this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(e,t,A){let i=estimateMaxLineLen(t,A);this.textElements.has(e)&&(i=this.textElements.get(e).wrapAt);const n=await this.parse(A);return this.textElements.set(e,{raw:A,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let t="view-mobile"===this.plugin.settings.defaultMode?DEVICE.isPhone?"view":"normal":this.plugin.settings.defaultMode;switch((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-default-mode"]&&(t=e.frontmatter["excalidraw-default-mode"]),t){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let t=this.plugin.settings.linkOpacity;return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-linkbutton-opacity"]&&(t=e.frontmatter["excalidraw-linkbutton-opacity"]),t}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-onload-script"]?e.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const e=this.linkPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=t.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,e!=this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=t.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,e!=this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-autoexport"])switch(e.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setembeddableThemePreference(){const e=this.embeddableTheme,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-iframe-theme"]?(this.embeddableTheme=t.frontmatter["excalidraw-iframe-theme"].toLowerCase(),EMBEDDABLE_THEME_FRONTMATTER_VALUES.includes(this.embeddableTheme)||(this.embeddableTheme="default")):this.embeddableTheme=this.plugin.settings.iframeMatchExcalidrawTheme?"auto":"default",e!=this.embeddableTheme}setShowLinkBrackets(){const e=this.showLinkBrackets,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=t.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!=this.showLinkBrackets}setFile(e,t){if(!t)return;if(this.files.set(e,t),t.isHyperlink)return void this.plugin.filesMaster.set(e,{isHyperlink:!0,path:t.hyperlink,blockrefData:null,hasSVGwithBitmap:t.isSVGwithBitmap});if(!t.file)return;const A=t.linkParts.original.split("#");this.plugin.filesMaster.set(e,{isHyperlink:!1,path:t.file.path+(t.shouldScale()?"":"|100%"),blockrefData:1===A.length?null:A[1],hasSVGwithBitmap:t.isSVGwithBitmap,colorMapJSON:t.colorMap?JSON.stringify(t.colorMap):null})}getFiles(){return Object.values(this.files)}getFile(e){let t=this.files.get(e);if(t)return t;const A=this.plugin.filesMaster.get(e);return A?(t=new EmbeddedFile(this.plugin,this.file.path,A.blockrefData?A.path+"#"+A.blockrefData:A.path),this.files.set(e,t),t):t}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const t=this.plugin.filesMaster.get(e);if(t.isHyperlink)return this.files.set(e,new EmbeddedFile(this.plugin,this.file.path,t.path)),!0;const A=t.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(A))return this.plugin.filesMaster.delete(e),!0;const i=t.path.endsWith("100%"),n=new EmbeddedFile(this.plugin,this.file.path,(t.blockrefData?A+"#"+t.blockrefData:A)+(i?"|100%":""),t.colorMapJSON);return this.files.set(e,n),!0}return!1}setEquation(e,t){this.equations.set(e,{latex:t.latex,isLoaded:t.isLoaded}),this.plugin.equationsMaster.set(e,t.latex)}getEquation(e){let t=this.equations.get(e);if(t)return t;const A=this.plugin.equationsMaster.get(e);return A?(this.equations.set(e,{latex:A,isLoaded:!1}),{latex:A,isLoaded:!1}):t}getEquationEntries(){return this.equations.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,t,A,i)=>{var n,a,r,s,o,l,c;if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(A&&A instanceof obsidian_module.TFile))return{contents:e.original.trim(),lineNum:0};const d=await t.vault.read(A);if(!e.ref)return i?{contents:d.substring(0,i).trim(),lineNum:0}:{contents:d.trim(),lineNum:0};const h=(await t.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>"comment"!=e.node.type));if(!h)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let t=null===(n=h.filter((t=>t.node.id==e.ref))[0])||void 0===n?void 0:n.node;if(!t)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(t.type)&&(t=t.children[0]);const A=t.position.start.offset,i=t.position.start.line,a=t.position.end.offset;return{contents:d.substring(A,a).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:i}}const u=h.filter((e=>0===e.display.search(/^#+\s/)));let g=null,p=0,m=null,w=1;for(let t=0;tw;)e++;return e===u.length&&u[e-1].node.depth>w?{leadingHashes:"#".repeat(w)+" ",contents:d.substring(g).trim(),lineNum:p}:(m=u[e].node.position.start.offset-1,{leadingHashes:"#".repeat(w)+" ",contents:d.substring(g,m).trim(),lineNum:p})}const A=u[t].node.children[0],i=null===(r=null===(a=u[t].node.data)||void 0===a?void 0:a.hProperties)||void 0===r?void 0:r.dataHeading,n=null==A?void 0:A.children;!g&&(cleanBlockRef(null==A?void 0:A.value)===e.ref||cleanBlockRef(null==A?void 0:A.title)===e.ref||cleanBlockRef(i)===e.ref||n&&cleanBlockRef(null===(s=n[0])||void 0===s?void 0:s.value)===e.ref||cleanSectionHeading(null==A?void 0:A.value)===e.ref||cleanSectionHeading(null==A?void 0:A.title)===e.ref||cleanSectionHeading(i)===e.ref||n&&cleanSectionHeading(null===(o=n[0])||void 0===o?void 0:o.value)===e.ref)&&(g=null===(l=u[t].node.children[0])||void 0===l?void 0:l.position.start.offset,w=u[t].node.depth,p=null===(c=u[t].node.children[0])||void 0===c?void 0:c.position.start.line)}return g?{leadingHashes:"#".repeat(w)+" ",contents:d.substring(g).trim(),lineNum:p}:{contents:e.original.trim(),lineNum:0}};class ScriptEngine{constructor(e){this.plugin=e,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const e=e=>{if(!e.endsWith(".svg"))return;const t=app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));t&&t instanceof obsidian_module.TFile&&(this.unloadScript(this.getScriptName(t),t.path),this.loadScript(t))};this.plugin.registerEvent(app.vault.on("delete",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(t),t.path),e(t.path))}))),this.plugin.registerEvent(app.vault.on("create",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.loadScript(t),e(t.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(t,A)=>{if(!(t instanceof obsidian_module.TFile))return;const i=A.startsWith(this.scriptPath),n=t.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(A),A),e(A)),n&&(this.loadScript(t),e(t.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)&&"md"===e.extension));this.scriptPath=null}loadScripts(){var e;null===(e=this.getListofScripts())||void 0===e||e.forEach((e=>this.loadScript(e)))}getScriptName(e){let t="",A="";e instanceof obsidian_module.TFile?(t=e.basename,A=e.path):(t=splitFolderAndFilename(e).basename,A=e);const i=A.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+t:t}async addScriptIconToMap(e,t){const A=getIMGFilename(e,"svg"),i=app.vault.getAbstractFileByPath(A),n=i&&i instanceof obsidian_module.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap);const a=splitFolderAndFilename(t);this.scriptIconMap[e]={name:a.filename,group:"/"===a.folderpath?"":a.folderpath,svgString:n},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const t=this.getScriptName(e);this.addScriptIconToMap(e.path,t),this.plugin.addCommand({id:t,name:`(Script) ${t}`,checkCallback:A=>{if(A)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const A=await app.vault.read(e);A&&this.executeScript(i,A,t,e)})(),!0)}})}unloadScripts(){const e=app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,t){if(!t.endsWith(".md"))return;delete this.scriptIconMap[t],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const A=`${PLUGIN_ID}:${e}`;app.commands.commands[A]&&delete app.commands.commands[A]}async executeScript(e,t,A,i){if(!e||!t||!A)return;this.plugin.ea.reset(),this.plugin.ea.setView(e),this.plugin.ea.activeScript=A;const n=Object.getPrototypeOf((async()=>{})).constructor;let a=null;return a=await new n("ea","utils",t)(this.plugin.ea,{inputPrompt:(t,A,i,n,a,r,s,o)=>ScriptEngine.inputPrompt(e,this.plugin,app,t,A,i,n,a,r,s,o),suggester:(e,t,A,i)=>ScriptEngine.suggester(app,e,t,A,i),scriptFile:i}),this.plugin.ea.activeScript=null,a}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((e=>{var t,A;null===(A=null===(t=e.view.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,t,A,i,n,a,r,s,o,l,c){try{return await GenericInputPrompt.Prompt(e,t,A,i,n,a,r,s,o,l,c)}catch(e){return}}static async suggester(e,t,A,i,n){try{return await GenericSuggester.Suggest(e,t,A,i,n)}catch(e){return}}}var t$c={d:(e,t)=>{for(var A in t)t$c.o(t,A)&&!t$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$e={};t$c.d(r$e,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(e,t,A){return Math.max(e,Math.min(t,A))}function n$c(e,t){return+e.toFixed(t>=0?t:0)}function a$c(e){const t=e%360;return t<0?t+360:t}function i$a(e){return void 0!==e?s$a(0,e,1):1}function o$b(e){return Math.floor(Math.random()*e)}function h$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function u$8(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}function l$5(e){const[t,A,i,n]=Object.values(e).map((e=>parseInt(e,16)));return{r:t,g:A,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:e,s:t,l:A,a:i}){return[u$8({h:a$c(e),s:s$a(0,t,100),l:s$a(0,A,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:e,g:t,b:A,a:i}){return[{r:s$a(0,e,255),g:s$a(0,t,255),b:s$a(0,A,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(e,t,A,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,A):n?n.value=A:t.set(e,A),A},y$1=function(e,t,A,i){if("a"===A&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===A?i:"a"===A?i.call(e):i?i.value:t.get(e)};class w$1{constructor(e){var t,A;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((t=>t(e))).find((e=>"invalid"!==e[1]));i?(t=this,A=this,[{set value(e){m$1(t,p$3,e,"f")}}.value,{set value(e){m$1(A,v$2,e,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:e=!1}={}){return function(e,t=!1){let{r:A,g:i,b:n,a:a}=e;a&&(a*=255),t&&([A,i,n,a]=[A,i,n,a].map((e=>e&&Math.round(e))));const[r,s,o,l]=[A,i,n,null!=a?a:255].map((e=>e.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),e)}stringRGB({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((e,A)=>n$c(e,t[A])));return e?`rgba(${A}, ${i}, ${n}, ${a})`:`rgb(${A}, ${i}, ${n})`}stringHEX({alpha:e=!0}={}){const[t,A,i,n]=Object.values(this.hexa({round:!0}));return`#${t}${A}${i}${e?n:""}`}stringHSL({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsla()).map(((e,A)=>n$c(e,t[A])));return e?`hsla(${A}, ${i}%, ${n}%, ${a})`:`hsl(${A}, ${i}%, ${n}%)`}hueTo(e){var t;const{h:A,s:i,l:n,a:a}=this.hsla(),r="number"==typeof e?a$c(e):Number(null!==(t=e$d[e].match(/\d{1,3}/))&&void 0!==t?t:A);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(t+e),s:A,l:i,a:n}),"f"),this}saturationTo(e){const{h:t,l:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,e,100),l:A,a:i}),"f"),this}saturateBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,A+e,100),l:i,a:n}),"f"),this}desaturateBy(e){return this.saturateBy(-1*e)}lightnessTo(e){const{h:t,s:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,e,100),a:i}),"f"),this}lighterBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,i+e,100),a:n}),"f"),this}darkerBy(e){return this.lighterBy(-1*e)}alphaTo(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,e,1)}),"f"),this}alphaBy(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+e,1)}),"f"),this}invert({alpha:e=!1}={}){const{r:t,g:A,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-t,g:255-A,b:255-i,a:e?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(e){return this.hueBy(e)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(e){(e=e.filter(((e,t,A)=>A.indexOf(e)===t))).forEach((e=>e(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"number"==typeof t}(e))return b$5(e);if("string"==typeof e){g$2.lastIndex=0;const t=g$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return b$5({r:e,g:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"string"==typeof t}(e))return[l$5(e),"hex"];if("string"==typeof e){c$a.lastIndex=0;const t=c$a.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>1===e.length?e.repeat(2):e));return[l$5({r:e,g:A,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,l:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return d$2(e);if("string"==typeof e){f$3.lastIndex=0;const t=f$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return d$2({h:e,s:A,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=e=>new w$1(e);r$e.QA;var O$1=r$e.ZP,B=r$e.qt;r$e.MX;var e$c={d:(e,t)=>{for(var A in t)e$c.o(t,A)&&!e$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$b={};function t$b(e){const t=e%360;return t<0?t+360:t}e$c.d(a$b,{Z:()=>n$b});const n$b=e=>{e.prototype.harmony=function({type:t="analogous",effect:A="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===t&&(o=i,i=Math.max(2,Math.min(o,10))),t){case"analogous":return[-30,0,30].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"complementary":return[0,180].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"triad":return[0,120,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"monochromatic":{const t="tones"===A?a:r;let o=("tints"===A?100-t:t)/i;o="tints"===A?o:-1*o;const l=[t];for(let e=0;enew e({h:n,s:t,l:r,a:s}))):l.map((t=>new e({h:n,s:a,l:t,a:s})))}}var o}};var r$d=a$b.Z,a$a={d:(e,t)=>{for(var A in t)a$a.o(t,A)&&!a$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$c={x:.96422,y:1,z:.82521};function u$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$9(e,t,A){return Math.max(e,Math.min(t,A))}function o$a(e){const t=e%360;return t<0?t+360:t}function l$4(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}function b$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=l$4(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function h$3(e){var t;const{Cmax:A,H:i,delta:n}=l$4(e),a=0===n?0:n/A;return{h:o$a(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}function v$1(e){const{h:t,a:A}=b$4(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function i$9(e){const[t,A,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}function m(e){const t=Object.values(i$9(e)).map(((e,t)=>e/(100*Object.values(r$c)[t]))).map((e=>e>n$a?Math.cbrt(e):(c$9*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function p$2(e){const{l:t,a:A,b:i}=m(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:o$a(n),a:e.a}}function f$2(e){const[t,A,i]=Object.values(i$9(e)).map((e=>e/100)),n=A/r$c.y,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a,o=r$c.x+15*r$c.y+3*r$c.z,l=4*r$c.x/o,c=9*r$c.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),u=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),u===Number(-0)&&(u=0),{l:d,u:h,v:u,a:e.a}}function M(e){const{x:t,y:A,z:i}=i$9(e),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}function w(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}function O(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}function x(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$9(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}function y(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(r$c),[o,l,c]=[a,n,r].map(((e,t)=>(e>e$b?Math.pow(e,3):3*Math.pow(e$b,2)*(e-4/29))*s[t]*100));return x({x:o,y:l,z:c,a:e.alpha})}const k=e=>{e.prototype.mix=function({color:t="#fff",ratio:A=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(t instanceof e?t:new e(t)).rgba();let r,s;switch(A=s$9(0,A,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((e,t)=>r[t]*(1-A)+s[t]*A));switch(i){case"hsl":return new e(function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new e(j({h:o,s:l,v:c,a:d}));case"hwb":return new e(function(e){const{h:t,b:A,w:i,a:n}=e;return j({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new e(y({l:o,a:l,b:c,alpha:d}));case"lch":return new e(function(e){const{l:t,c:A,h:i}=e;return y({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}({l:o,c:l,h:c,a:d}));case"luv":return new e(function(e){const{l:t,u:A,v:i}=e,n=t>c$9*n$a?Math.pow((t+16)/116,3):t/c$9,a=r$c.x+15*r$c.y+3*r$c.z,r=(52*t/(A&&t?A+13*t*(4*r$c.x/a):1)-1)/3,s=-5*n,o=n*(39*t/(i&&t?i+13*t*(9*r$c.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:e.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new e(function(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new e(function(e){const{u:t,v:A,w:i}=e,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return x({x:n,y:a,z:r,a:e.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new e(x({x:o,y:l,z:c,a:d}));case"cmyk":return new e(function(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new e({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$b={d:(e,t)=>{for(var A in t)r$b.o(t,A)&&!r$b.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},b$3={};r$b.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(e){return(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function o$9(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const n$9=e=>{e.prototype.brightness=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+((.299*A+.587*i+.114*n)/255).toFixed(e);return t?100*a:a},e.prototype.luminance=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+(.2126*t$9(A)+.7152*t$9(i)+.0722*t$9(n)).toFixed(e);return t?100*a:a},e.prototype.contrast=function({bgColor:t="#fff",precision:A=4,ratio:i=!1}={}){const n=this.luminance(),a=(t instanceof e?t:new e(t)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(A);return i?r+":1":+r},e.prototype.readableOn=function({bgColor:e="#fff",size:t="body",level:A="minimum"}={}){const i=this.contrast({bgColor:e});return"body"===t&&"enhanced"===A?i>=7:"large"===t&&"minimum"===A?i>=3:i>=4.5},e.prototype.equalTo=function(t="#fff"){const A=Object.values(this.rgba()),i=Object.values((t instanceof e?t:new e(t)).rgba());return A.toString()===i.toString()},e.prototype.isLight=function(){return this.brightness()>=.5},e.prototype.isDark=function(){return!this.isLight()},e.prototype.isCool=function(){const{h:e}=this.hsla();return 75<=e&&e<255},e.prototype.isWarm=function(){return!this.isCool()},e.prototype.isTinted=function(){return this.hsla().l>50},e.prototype.isShaded=function(){return this.hsla().l<50},e.prototype.isToned=function(){return this.hsla().s<100},e.prototype.isPureHue=function({reason:e=!0}={}){return this.isTinted()?!!e&&{pure:!1,reason:"tinted"}:this.isShaded()?!!e&&{pure:!1,reason:"shaded"}:this.isToned()?!!e&&{pure:!1,reason:"toned"}:!e||{pure:!0,reason:"N/A"}},e.prototype.closestCool=function(){const{h:e}=this.hsla();return this.isCool()?this:this.hueTo(e<75?75:254)},e.prototype.closestWarm=function(){const{h:e}=this.hsla();return this.isWarm()?this:this.hueTo(e<165?74:255)},e.prototype.closestPureHue=function(){const{h:t,a:A}=this.hsla(),{r:i,g:n,b:a,a:r}=function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:t,s:100,l:50,a:A});return new e({r:i,g:n,b:a,a:r})},e.prototype.closestWebSafe=function(){const{r:t,g:A,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:t,g:A,b:i,a:n};for(let e=0;e{for(var A in t)r$a.o(t,A)&&!r$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},g={};r$a.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const a$9=e=>{e.prototype.name=function({exact:e=!0}={}){const{r:t,g:A,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(e){const e=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((t=>e$9[t]===e))}else{let e=Number.POSITIVE_INFINITY;for(let n=0;n{for(var A in t)t$8.o(t,A)&&!t$8.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$9=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$8(e,t,A){return Math.max(e,Math.min(t,A))}function u$6(e){const t=e%360;return t<0?t+360:t}function i$8(e){const{l:t,a:A,b:i}=function(e){const t=Object.values(function(e){const[t,A,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(e$8)[t]))).map((e=>e>r$9?Math.cbrt(e):(o$8*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:u$6(n),a:e.a}}function h$2(e){const{l:t,c:A,h:i}=e;return function(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$8?Math.pow(e,3):3*Math.pow(n$8,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$8(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:e,c:t,h:A,a:i}){return[h$2({l:s$8(0,e,100),c:s$8(0,t,230),h:u$6(A),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,c:A,h:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return p$1(e);if("string"==typeof e){l$2.lastIndex=0;const t=l$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?1:1===t?2.3:2===t?3.59:.01):+e));return p$1({l:e,c:A,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=e=>{e.prototype.lcha=function(){return i$8(this.rgba())},e.prototype.stringLCH=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.lcha()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`lcha(${A}%, ${i}, ${n}, ${a})`:`lch(${A}%, ${i}, ${n})`},e.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(e,t)=>{for(var A in t)t$7.o(t,A)&&!t$7.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$8=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function a$7(e,t,A){return Math.max(e,Math.min(t,A))}function u$5(e){const{l:t,u:A,v:i}=e,n=t>e$7*r$8?Math.pow((t+16)/116,3):t/e$7,a=(52*t/(A&&t?A+13*t*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*t/(i&&t?i+13*t*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return a$7(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:e.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:e,u:t,v:A,a:i}){return[u$5({l:a$7(0,e,100),u:a$7(-100,t,100),v:a$7(-100,A,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,u:A,v:i}=e;return void 0!==t&&void 0!==A&&null!=i}(e))return s$7(e);if("string"==typeof e){c$7.lastIndex=0;const t=c$7.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return s$7({l:e,u:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=e=>{e.prototype.luva=function(){return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map((e=>e/100)),n=A/1,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a;let o=n>r$8?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:e.a}}(this.rgba())},e.prototype.stringLUV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.luva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(luva ${A}%, ${i}%, ${n}%, ${a})`:`color(luv ${A}%, ${i}%, ${n}%)`},e.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(e,t)=>{for(var A in t)t$6.o(t,A)&&!t$6.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$7=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$6(e,t,A){return Math.max(e,Math.min(t,A))}function u$4(e){return void 0!==e?s$6(0,e,1):1}function i$6(e){const t=Object.values(function(e){const[t,A,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(o$6)[t]))).map((e=>e>r$7?Math.cbrt(e):(e$6*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function l(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$6?Math.pow(e,3):3*Math.pow(n$6,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$6(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:e,a:t,b:A,alpha:i}){return[l({l:s$6(0,e,100),a:s$6(-160,t,160),b:s$6(-160,A,160),alpha:u$4(i)}),"lab"]}function f(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,a:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return b(e);if("string"==typeof e){p.lastIndex=0;const t=p.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return b({l:e,a:A,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=e=>{e.prototype.laba=function(){return i$6(this.rgba())},e.prototype.stringLAB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.laba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`laba(${A}%, ${i}, ${n}, ${a})`:`lab(${A}%, ${i}, ${n})`},e.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(e,t)=>{for(var A in t)t$5.o(t,A)&&!t$5.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$5={};function r$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$5(e,t,A){return Math.max(e,Math.min(t,A))}function e$5(e){const{u:t,v:A,w:i}=e,[n,a,r]=r$6([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$5(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:n,y:a,z:r,a:e.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:e,v:t,w:A,a:i}){return[e$5({u:o$5(0,e,200/3*.96422),v:o$5(0,t,100),w:o$5(-48.211,A,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{u:t,v:A,w:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return u$3(e);if("string"==typeof e){a$5.lastIndex=0;const t=a$5.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return u$3({u:e,v:A,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=e=>{e.prototype.uvwa=function(){return function(e){const{x:t,y:A,z:i}=function(e){const[t,A,i]=r$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e),[n,a,r]=r$6([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}(this.rgba())},e.prototype.stringUVW=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.uvwa()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(uvwa ${A}, ${i}, ${n}, ${a})`:`color(uvw ${A}, ${i}, ${n})`},e.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(e,t)=>{for(var A in t)t$4.o(t,A)&&!t$4.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$4={};function r$5(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$4(e,t,A){return Math.max(e,Math.min(t,A))}function e$4(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$4(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:e,y:t,z:A,a:i}){return[e$4({x:o$4(0,e,96.422),y:o$4(0,t,100),z:o$4(0,A,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{x:t,y:A,z:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return s$4(e);if("string"==typeof e){a$4.lastIndex=0;const t=a$4.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return s$4({x:e,y:A,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=e=>{e.prototype.xyza=function(){return function(e){const[t,A,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(this.rgba())},e.prototype.stringXYZ=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.xyza()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(xyza ${A}, ${i}, ${n}, ${a})`:`color(xyz ${A}, ${i}, ${n})`},e.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(e,t)=>{for(var A in t)t$3.o(t,A)&&!t$3.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$3={};function r$4(e,t,A){return Math.max(e,Math.min(t,A))}function a$3(e){const t=e%360;return t<0?t+360:t}function o$3(e){const{h:t,a:A}=function(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function e$3(e){const{h:t,b:A,w:i,a:n}=e;return function(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:e,w:t,b:A,a:i}){return[e$3({h:a$3(e),w:r$4(0,t,100),b:r$4(0,A,100),a:(n=i,void 0!==n?r$4(0,n,1):1)}),"hwb"];var n}function c$3(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,w:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return i$3(e);if("string"==typeof e){s$3.lastIndex=0;const t=s$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return i$3({h:e,w:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=e=>{e.prototype.hwba=function(){return o$3(this.rgba())},e.prototype.stringHWB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hwba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hwba(${a$3(A)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(A)}, ${i}%, ${n}%)`},e.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(e,t)=>{for(var A in t)t$2.o(t,A)&&!t$2.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$2={};function r$3(e,t,A){return Math.max(e,Math.min(t,A))}function s$2(e){const t=e%360;return t<0?t+360:t}function e$2(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:e,s:t,v:A,a:i}){return[e$2({h:s$2(e),s:r$3(0,t,100),v:r$3(0,A,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hsv"];var n}function i$2(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,v:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return o$2(e);if("string"==typeof e){a$2.lastIndex=0;const t=a$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return o$2({h:e,s:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=e=>{e.prototype.hsva=function(){return function(e){var t;const{Cmax:A,H:i,delta:n}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),a=0===n?0:n/A;return{h:s$2(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}(this.rgba())},e.prototype.stringHSV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hsva(${s$2(A)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(A)}, ${i}%, ${n}%)`},e.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(e,t)=>{for(var A in t)t$1.o(t,A)&&!t$1.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$2={};function n$1(e,t,A){return Math.max(e,Math.min(t,A))}function o$1(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}t$1.d(r$2,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:e,y:t,b:A,a:i}){return[o$1({r:n$1(0,e,255),y:n$1(0,t,255),b:n$1(0,A,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,y:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return e$1(e);if("string"==typeof e){a$1.lastIndex=0;const t=a$1.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return e$1({r:e,y:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=e=>{e.prototype.ryba=function(){return function(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}(this.rgba())},e.prototype.stringRYB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.ryba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(ryba ${A}, ${i}, ${n}, ${a})`:`color(ryb ${A}, ${i}, ${n})`},e.Parsers.push(s$1)};var c$1=r$2.Z,t={d:(e,A)=>{for(var i in A)t.o(A,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:A[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n={};function e(e,t,A){return Math.max(e,Math.min(t,A))}function r$1(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:t,m:A,y:i,k:n,a:a}){return[r$1({c:e(0,t,100),m:e(0,A,100),y:e(0,i,100),k:e(0,n,100),a:(r=a,void 0!==r?e(0,r,1):1)}),"cmyk"];var r}function a(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{c:t,m:A,y:i,k:n}=e;return void 0!==t&&void 0!==A&&void 0!==i&&void 0!==n}(e))return o(e);if("string"==typeof e){c.lastIndex=0;const t=c.exec(e);if(t){const[e,A,i,n,a]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<4?1:.01):+e));return o({c:e,m:A,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=e=>{e.prototype.cmyka=function(){return function(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},e.prototype.stringCMYK=function({alpha:e=!0,precision:t=[0,0,0,0,1]}={}){const[A,i,n,a,r]=Object.values(this.cmyka()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`device-cmyk(${A}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${A}, ${i}, ${n}, ${a})`},e.Parsers.push(a)};var s=n.Z;class ExcalidrawScene{constructor(e=[]){this.type="excalidraw",this.version=2,this.source=GITHUB_RELEASES+PLUGIN_VERSION,this.elements=[],this.elements=e}toExJSON(){return Object.assign(Object.assign({},this),{elements:this.elements.map((e=>Object.assign({},e)))})}}var ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array;function create$1(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var t=new ARRAY_TYPE(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function fromValues$1(e,t,A,i,n,a,r,s,o,l,c,d,h,u,g,p){var m=new ARRAY_TYPE(16);return m[0]=e,m[1]=t,m[2]=A,m[3]=i,m[4]=n,m[5]=a,m[6]=r,m[7]=s,m[8]=o,m[9]=l,m[10]=c,m[11]=d,m[12]=h,m[13]=u,m[14]=g,m[15]=p,m}function multiply(e,t,A){var i=t[0],n=t[1],a=t[2],r=t[3],s=t[4],o=t[5],l=t[6],c=t[7],d=t[8],h=t[9],u=t[10],g=t[11],p=t[12],m=t[13],w=t[14],f=t[15],E=A[0],B=A[1],b=A[2],v=A[3];return e[0]=E*i+B*s+b*d+v*p,e[1]=E*n+B*o+b*h+v*m,e[2]=E*a+B*l+b*u+v*w,e[3]=E*r+B*c+b*g+v*f,E=A[4],B=A[5],b=A[6],v=A[7],e[4]=E*i+B*s+b*d+v*p,e[5]=E*n+B*o+b*h+v*m,e[6]=E*a+B*l+b*u+v*w,e[7]=E*r+B*c+b*g+v*f,E=A[8],B=A[9],b=A[10],v=A[11],e[8]=E*i+B*s+b*d+v*p,e[9]=E*n+B*o+b*h+v*m,e[10]=E*a+B*l+b*u+v*w,e[11]=E*r+B*c+b*g+v*f,E=A[12],B=A[13],b=A[14],v=A[15],e[12]=E*i+B*s+b*d+v*p,e[13]=E*n+B*o+b*h+v*m,e[14]=E*a+B*l+b*u+v*w,e[15]=E*r+B*c+b*g+v*f,e}function create(){var e=new ARRAY_TYPE(3);return ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function fromValues(e,t,A){var i=new ARRAY_TYPE(3);return i[0]=e,i[1]=t,i[2]=A,i}function transformMat4(e,t,A){var i=t[0],n=t[1],a=t[2],r=A[3]*i+A[7]*n+A[11]*a+A[15];return r=r||1,e[0]=(A[0]*i+A[4]*n+A[8]*a+A[12])/r,e[1]=(A[1]*i+A[5]*n+A[9]*a+A[13])/r,e[2]=(A[2]*i+A[6]*n+A[10]*a+A[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)}),create();const random=new Random(Date.now()),randomInteger=()=>Math.floor(random.next()*2**31),randomId=()=>nanoid$1();function dimensionsFromPoints(e){const t=e.map((([e])=>e)),A=e.map((([,e])=>e)),i=Math.min(...t),n=Math.min(...A);return[Math.max(...t)-i,Math.max(...A)-n]}function getWindingOrder(e){return e.reduce(((e,[t,A],i,n)=>{const a=n[i+1];return((a?a[0]:0)-t)*((a?a[1]:0)+A)+e}),0)>0?"clockwise":"counterclockwise"}var chroma$1={exports:{}}; +/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * 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. The name Gregor Aisch may not 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 GREGOR AISCH 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. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */chroma$1.exports,function(e,t){e.exports=function(){for(var e=function(e,t,A){return void 0===t&&(t=0),void 0===A&&(A=1),eA?A:e},t=e,A={},i=0,n=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];i255)&&(e._clipped=!0),e[A]=t(e[A],0,255)):3===A&&(e[A]=t(e[A],0,1));return e},limit:e,type:r,unpack:function(e,t){return void 0===t&&(t=null),e.length>=3?Array.prototype.slice.call(e):"object"==s(e[0])&&t?t.split("").filter((function(t){return void 0!==e[0][t]})).map((function(t){return e[0][t]})):e[0]},last:function(e){if(e.length<2)return null;var t=e.length-1;return"string"==o(e[t])?e[t].toLowerCase():null},PI:l,TWOPI:2*l,PITHIRD:l/3,DEG2RAD:l/180,RAD2DEG:180/l},d={format:{},autodetect:[]},h=c.last,u=c.clip_rgb,g=c.type,p=d,m=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=this;if("object"===g(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var i=h(e),n=!1;if(!i){n=!0,p.sorted||(p.autodetect=p.autodetect.sort((function(e,t){return t.p-e.p})),p.sorted=!0);for(var a=0,r=p.autodetect;a4?e[4]:1;return 1===a?[0,0,0,r]:[A>=1?0:255*(1-A)*(1-a),i>=1?0:255*(1-i)*(1-a),n>=1?0:255*(1-n)*(1-a),r]},F=E,x=w,S=d,T=c.unpack,I=c.type,M=v;x.prototype.cmyk=function(){return M(this._rgb)},F.cmyk=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(x,[null].concat(e,["cmyk"])))},S.format.cmyk=y,S.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=T(e,"cmyk"),"array"===I(e)&&4===e.length)return"cmyk"}});var k=c.unpack,U=c.last,O=function(e){return Math.round(100*e)/100},Q=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=k(e,"hsla"),i=U(e)||"lsa";return A[0]=O(A[0]||0),A[1]=O(100*A[1])+"%",A[2]=O(100*A[2])+"%","hsla"===i||A.length>3&&A[3]<1?(A[3]=A.length>3?A[3]:1,i="hsla"):A.length=3,i+"("+A.join(",")+")"},L=c.unpack,N=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=L(e,"rgba"))[0],i=e[1],n=e[2];A/=255,i/=255,n/=255;var a,r,s=Math.min(A,i,n),o=Math.max(A,i,n),l=(o+s)/2;return o===s?(a=0,r=Number.NaN):a=l<.5?(o-s)/(o+s):(o-s)/(2-o-s),A==o?r=(i-n)/(o-s):i==o?r=2+(n-A)/(o-s):n==o&&(r=4+(A-i)/(o-s)),(r*=60)<0&&(r+=360),e.length>3&&void 0!==e[3]?[r,a,l,e[3]]:[r,a,l]},D=c.unpack,R=c.last,H=Q,P=N,V=Math.round,K=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=D(e,"rgba"),i=R(e)||"rgb";return"hsl"==i.substr(0,3)?H(P(A),i):(A[0]=V(A[0]),A[1]=V(A[1]),A[2]=V(A[2]),("rgba"===i||A.length>3&&A[3]<1)&&(A[3]=A.length>3?A[3]:1,i="rgba"),i+"("+A.slice(0,"rgb"===i?3:4).join(",")+")")},G=c.unpack,W=Math.round,z=function(){for(var e,t=[],A=arguments.length;A--;)t[A]=arguments[A];var i,n,a,r=(t=G(t,"hsl"))[0],s=t[1],o=t[2];if(0===s)i=n=a=255*o;else{var l=[0,0,0],c=[0,0,0],d=o<.5?o*(1+s):o+s-o*s,h=2*o-d,u=r/360;l[0]=u+1/3,l[1]=u,l[2]=u-1/3;for(var g=0;g<3;g++)l[g]<0&&(l[g]+=1),l[g]>1&&(l[g]-=1),6*l[g]<1?c[g]=h+6*(d-h)*l[g]:2*l[g]<1?c[g]=d:3*l[g]<2?c[g]=h+(d-h)*(2/3-l[g])*6:c[g]=h;i=(e=[W(255*c[0]),W(255*c[1]),W(255*c[2])])[0],n=e[1],a=e[2]}return t.length>3?[i,n,a,t[3]]:[i,n,a,1]},X=z,Y=d,j=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,_=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,J=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,q=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,$=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ee=Math.round,te=function(e){var t;if(e=e.toLowerCase().trim(),Y.format.named)try{return Y.format.named(e)}catch(e){}if(t=e.match(j)){for(var A=t.slice(1,4),i=0;i<3;i++)A[i]=+A[i];return A[3]=1,A}if(t=e.match(_)){for(var n=t.slice(1,5),a=0;a<4;a++)n[a]=+n[a];return n}if(t=e.match(J)){for(var r=t.slice(1,4),s=0;s<3;s++)r[s]=ee(2.55*r[s]);return r[3]=1,r}if(t=e.match(Z)){for(var o=t.slice(1,5),l=0;l<3;l++)o[l]=ee(2.55*o[l]);return o[3]=+o[3],o}if(t=e.match(q)){var c=t.slice(1,4);c[1]*=.01,c[2]*=.01;var d=X(c);return d[3]=1,d}if(t=e.match($)){var h=t.slice(1,4);h[1]*=.01,h[2]*=.01;var u=X(h);return u[3]=+t[4],u}};te.test=function(e){return j.test(e)||_.test(e)||J.test(e)||Z.test(e)||q.test(e)||$.test(e)};var Ae=E,ie=w,ne=d,ae=c.type,re=K,se=te;ie.prototype.css=function(e){return re(this._rgb,e)},Ae.css=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ie,[null].concat(e,["css"])))},ne.format.css=se,ne.autodetect.push({p:5,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===ae(e)&&se.test(e))return"css"}});var oe=w,le=E,ce=c.unpack;d.format.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ce(e,"rgba");return A[0]*=255,A[1]*=255,A[2]*=255,A},le.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oe,[null].concat(e,["gl"])))},oe.prototype.gl=function(){var e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};var de=c.unpack,he=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=de(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Math.min(n,a,r),o=Math.max(n,a,r),l=o-s,c=100*l/255,d=s/(255-l)*100;return 0===l?A=Number.NaN:(n===o&&(A=(a-r)/l),a===o&&(A=2+(r-n)/l),r===o&&(A=4+(n-a)/l),(A*=60)<0&&(A+=360)),[A,c,d]},ue=c.unpack,ge=Math.floor,pe=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ue(r,"hcg"))[0],h=r[1],u=r[2];u*=255;var g=255*h;if(0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=ge(d/=60),m=d-p,w=u*(1-h),f=w+g*(1-m),E=w+g*m,B=w+g;switch(p){case 0:o=(e=[B,E,w])[0],l=e[1],c=e[2];break;case 1:o=(t=[f,B,w])[0],l=t[1],c=t[2];break;case 2:o=(A=[w,B,E])[0],l=A[1],c=A[2];break;case 3:o=(i=[w,f,B])[0],l=i[1],c=i[2];break;case 4:o=(n=[E,w,B])[0],l=n[1],c=n[2];break;case 5:o=(a=[B,w,f])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},me=c.unpack,we=c.type,fe=E,Ee=w,Be=d,be=he;Ee.prototype.hcg=function(){return be(this._rgb)},fe.hcg=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Ee,[null].concat(e,["hcg"])))},Be.format.hcg=pe,Be.autodetect.push({p:1,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=me(e,"hcg"),"array"===we(e)&&3===e.length)return"hcg"}});var ve=c.unpack,Ce=c.last,ye=Math.round,Fe=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ve(e,"rgba"),i=A[0],n=A[1],a=A[2],r=A[3],s=Ce(e)||"auto";void 0===r&&(r=1),"auto"===s&&(s=r<1?"rgba":"rgb");var o="000000"+((i=ye(i))<<16|(n=ye(n))<<8|(a=ye(a))).toString(16);o=o.substr(o.length-6);var l="0"+ye(255*r).toString(16);switch(l=l.substr(l.length-2),s.toLowerCase()){case"rgba":return"#"+o+l;case"argb":return"#"+l+o;default:return"#"+o}},xe=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Se=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Te=function(e){if(e.match(xe)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=parseInt(e,16);return[t>>16,t>>8&255,255&t,1]}if(e.match(Se)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);var A=parseInt(e,16);return[A>>24&255,A>>16&255,A>>8&255,Math.round((255&A)/255*100)/100]}throw new Error("unknown hex color: "+e)},Ie=E,Me=w,ke=c.type,Ue=d,Oe=Fe;Me.prototype.hex=function(e){return Oe(this._rgb,e)},Ie.hex=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Me,[null].concat(e,["hex"])))},Ue.format.hex=Te,Ue.autodetect.push({p:4,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===ke(e)&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var Qe=c.unpack,Le=c.TWOPI,Ne=Math.min,De=Math.sqrt,Re=Math.acos,He=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=Qe(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Ne(n/=255,a/=255,r/=255),o=(n+a+r)/3,l=o>0?1-s/o:0;return 0===l?A=NaN:(A=(n-a+(n-r))/2,A/=De((n-a)*(n-a)+(n-r)*(a-r)),A=Re(A),r>a&&(A=Le-A),A/=Le),[360*A,l,o]},Pe=c.unpack,Ve=c.limit,Ke=c.TWOPI,Ge=c.PITHIRD,We=Math.cos,ze=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=Pe(e,"hsi"))[0],r=e[1],s=e[2];return isNaN(a)&&(a=0),isNaN(r)&&(r=0),a>360&&(a-=360),a<0&&(a+=360),(a/=360)<1/3?i=1-((n=(1-r)/3)+(A=(1+r*We(Ke*a)/We(Ge-Ke*a))/3)):a<2/3?n=1-((A=(1-r)/3)+(i=(1+r*We(Ke*(a-=1/3))/We(Ge-Ke*a))/3)):A=1-((i=(1-r)/3)+(n=(1+r*We(Ke*(a-=2/3))/We(Ge-Ke*a))/3)),[255*(A=Ve(s*A*3)),255*(i=Ve(s*i*3)),255*(n=Ve(s*n*3)),e.length>3?e[3]:1]},Xe=c.unpack,Ye=c.type,je=E,_e=w,Je=d,Ze=He;_e.prototype.hsi=function(){return Ze(this._rgb)},je.hsi=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(_e,[null].concat(e,["hsi"])))},Je.format.hsi=ze,Je.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=Xe(e,"hsi"),"array"===Ye(e)&&3===e.length)return"hsi"}});var qe=c.unpack,$e=c.type,et=E,tt=w,At=d,it=N;tt.prototype.hsl=function(){return it(this._rgb)},et.hsl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(tt,[null].concat(e,["hsl"])))},At.format.hsl=z,At.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qe(e,"hsl"),"array"===$e(e)&&3===e.length)return"hsl"}});var nt=c.unpack,at=Math.min,rt=Math.max,st=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=nt(e,"rgb"))[0],r=e[1],s=e[2],o=at(a,r,s),l=rt(a,r,s),c=l-o;return n=l/255,0===l?(A=Number.NaN,i=0):(i=c/l,a===l&&(A=(r-s)/c),r===l&&(A=2+(s-a)/c),s===l&&(A=4+(a-r)/c),(A*=60)<0&&(A+=360)),[A,i,n]},ot=c.unpack,lt=Math.floor,ct=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ot(r,"hsv"))[0],h=r[1],u=r[2];if(u*=255,0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var g=lt(d/=60),p=d-g,m=u*(1-h),w=u*(1-h*p),f=u*(1-h*(1-p));switch(g){case 0:o=(e=[u,f,m])[0],l=e[1],c=e[2];break;case 1:o=(t=[w,u,m])[0],l=t[1],c=t[2];break;case 2:o=(A=[m,u,f])[0],l=A[1],c=A[2];break;case 3:o=(i=[m,w,u])[0],l=i[1],c=i[2];break;case 4:o=(n=[f,m,u])[0],l=n[1],c=n[2];break;case 5:o=(a=[u,m,w])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},dt=c.unpack,ht=c.type,ut=E,gt=w,pt=d,mt=st;gt.prototype.hsv=function(){return mt(this._rgb)},ut.hsv=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(gt,[null].concat(e,["hsv"])))},pt.format.hsv=ct,pt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=dt(e,"hsv"),"array"===ht(e)&&3===e.length)return"hsv"}});var wt={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ft=wt,Et=c.unpack,Bt=Math.pow,bt=function(e){return(e/=255)<=.04045?e/12.92:Bt((e+.055)/1.055,2.4)},vt=function(e){return e>ft.t3?Bt(e,1/3):e/ft.t2+ft.t0},Ct=function(e,t,A){return e=bt(e),t=bt(t),A=bt(A),[vt((.4124564*e+.3575761*t+.1804375*A)/ft.Xn),vt((.2126729*e+.7151522*t+.072175*A)/ft.Yn),vt((.0193339*e+.119192*t+.9503041*A)/ft.Zn)]},yt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Et(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Ct(i,n,a),s=r[0],o=r[1],l=116*o-16;return[l<0?0:l,500*(s-o),200*(o-r[2])]},Ft=wt,xt=c.unpack,St=Math.pow,Tt=function(e){return 255*(e<=.00304?12.92*e:1.055*St(e,1/2.4)-.055)},It=function(e){return e>Ft.t1?e*e*e:Ft.t2*(e-Ft.t0)},Mt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=xt(e,"lab"))[0],r=e[1],s=e[2];return i=(a+16)/116,A=isNaN(r)?i:i+r/500,n=isNaN(s)?i:i-s/200,i=Ft.Yn*It(i),A=Ft.Xn*It(A),n=Ft.Zn*It(n),[Tt(3.2404542*A-1.5371385*i-.4985314*n),Tt(-.969266*A+1.8760108*i+.041556*n),Tt(.0556434*A-.2040259*i+1.0572252*n),e.length>3?e[3]:1]},kt=c.unpack,Ut=c.type,Ot=E,Qt=w,Lt=d,Nt=yt;Qt.prototype.lab=function(){return Nt(this._rgb)},Ot.lab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Qt,[null].concat(e,["lab"])))},Lt.format.lab=Mt,Lt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=kt(e,"lab"),"array"===Ut(e)&&3===e.length)return"lab"}});var Dt=c.unpack,Rt=c.RAD2DEG,Ht=Math.sqrt,Pt=Math.atan2,Vt=Math.round,Kt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Dt(e,"lab"),i=A[0],n=A[1],a=A[2],r=Ht(n*n+a*a),s=(Pt(a,n)*Rt+360)%360;return 0===Vt(1e4*r)&&(s=Number.NaN),[i,r,s]},Gt=c.unpack,Wt=yt,zt=Kt,Xt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Gt(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Wt(i,n,a),s=r[0],o=r[1],l=r[2];return zt(s,o,l)},Yt=c.unpack,jt=c.DEG2RAD,_t=Math.sin,Jt=Math.cos,Zt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Yt(e,"lch"),i=A[0],n=A[1],a=A[2];return isNaN(a)&&(a=0),[i,Jt(a*=jt)*n,_t(a)*n]},qt=c.unpack,$t=Zt,eA=Mt,tA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=qt(e,"lch"))[0],i=e[1],n=e[2],a=$t(A,i,n),r=a[0],s=a[1],o=a[2],l=eA(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},AA=c.unpack,iA=tA,nA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=AA(e,"hcl").reverse();return iA.apply(void 0,A)},aA=c.unpack,rA=c.type,sA=E,oA=w,lA=d,cA=Xt;oA.prototype.lch=function(){return cA(this._rgb)},oA.prototype.hcl=function(){return cA(this._rgb).reverse()},sA.lch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["lch"])))},sA.hcl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["hcl"])))},lA.format.lch=tA,lA.format.hcl=nA,["lch","hcl"].forEach((function(e){return lA.autodetect.push({p:2,test:function(){for(var t=[],A=arguments.length;A--;)t[A]=arguments[A];if(t=aA(t,e),"array"===rA(t)&&3===t.length)return e}})}));var dA={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},hA=d,uA=c.type,gA=dA,pA=Te,mA=Fe;w.prototype.name=function(){for(var e=mA(this._rgb,"rgb"),t=0,A=Object.keys(gA);t0;)t[A]=arguments[A+1];if(!t.length&&"string"===uA(e)&&gA[e.toLowerCase()])return"named"}});var wA=c.unpack,fA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=wA(e,"rgb");return(A[0]<<16)+(A[1]<<8)+A[2]},EA=c.type,BA=function(e){if("number"==EA(e)&&e>=0&&e<=16777215)return[e>>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)},bA=E,vA=w,CA=d,yA=c.type,FA=fA;vA.prototype.num=function(){return FA(this._rgb)},bA.num=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(vA,[null].concat(e,["num"])))},CA.format.num=BA,CA.autodetect.push({p:5,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(1===e.length&&"number"===yA(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});var xA=E,SA=w,TA=d,IA=c.unpack,MA=c.type,kA=Math.round;SA.prototype.rgb=function(e){return void 0===e&&(e=!0),!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(kA)},SA.prototype.rgba=function(e){return void 0===e&&(e=!0),this._rgb.slice(0,4).map((function(t,A){return A<3?!1===e?t:kA(t):t}))},xA.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(SA,[null].concat(e,["rgb"])))},TA.format.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=IA(e,"rgba");return void 0===A[3]&&(A[3]=1),A},TA.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=IA(e,"rgba"),"array"===MA(e)&&(3===e.length||4===e.length&&"number"==MA(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});var UA=Math.log,OA=function(e){var t,A,i,n=e/100;return n<66?(t=255,A=n<6?0:-155.25485562709179-.44596950469579133*(A=n-2)+104.49216199393888*UA(A),i=n<20?0:.8274096064007395*(i=n-10)-254.76935184120902+115.67994401066147*UA(i)):(t=351.97690566805693+.114206453784165*(t=n-55)-40.25366309332127*UA(t),A=325.4494125711974+.07943456536662342*(A=n-50)-28.0852963507957*UA(A),i=255),[t,A,i,1]},QA=OA,LA=c.unpack,NA=Math.round,DA=E,RA=w,HA=d,PA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var A,i=LA(e,"rgb"),n=i[0],a=i[2],r=1e3,s=4e4;s-r>.4;){var o=QA(A=.5*(s+r));o[2]/o[0]>=a/n?s=A:r=A}return NA(A)};RA.prototype.temp=RA.prototype.kelvin=RA.prototype.temperature=function(){return PA(this._rgb)},DA.temp=DA.kelvin=DA.temperature=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(RA,[null].concat(e,["temp"])))},HA.format.temp=HA.format.kelvin=HA.format.temperature=OA;var VA=c.unpack,KA=Math.cbrt,GA=Math.pow,WA=Math.sign,zA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=VA(e,"rgb"),i=A[0],n=A[1],a=A[2],r=[XA(i/255),XA(n/255),XA(a/255)],s=r[0],o=r[1],l=r[2],c=KA(.4122214708*s+.5363325363*o+.0514459929*l),d=KA(.2119034982*s+.6806995451*o+.1073969566*l),h=KA(.0883024619*s+.2817188376*o+.6299787005*l);return[.2104542553*c+.793617785*d-.0040720468*h,1.9779984951*c-2.428592205*d+.4505937099*h,.0259040371*c+.7827717662*d-.808675766*h]};function XA(e){var t=Math.abs(e);return t<.04045?e/12.92:(WA(e)||1)*GA((t+.055)/1.055,2.4)}var YA=c.unpack,jA=Math.pow,_A=Math.sign,JA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=YA(e,"lab"))[0],i=e[1],n=e[2],a=jA(A+.3963377774*i+.2158037573*n,3),r=jA(A-.1055613458*i-.0638541728*n,3),s=jA(A-.0894841775*i-1.291485548*n,3);return[255*ZA(4.0767416621*a-3.3077115913*r+.2309699292*s),255*ZA(-1.2684380046*a+2.6097574011*r-.3413193965*s),255*ZA(-.0041960863*a-.7034186147*r+1.707614701*s),e.length>3?e[3]:1]};function ZA(e){var t=Math.abs(e);return t>.0031308?(_A(e)||1)*(1.055*jA(t,1/2.4)-.055):12.92*e}var qA=c.unpack,$A=c.type,ei=E,ti=w,Ai=d,ii=zA;ti.prototype.oklab=function(){return ii(this._rgb)},ei.oklab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ti,[null].concat(e,["oklab"])))},Ai.format.oklab=JA,Ai.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qA(e,"oklab"),"array"===$A(e)&&3===e.length)return"oklab"}});var ni=c.unpack,ai=zA,ri=Kt,si=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ni(e,"rgb"),i=A[0],n=A[1],a=A[2],r=ai(i,n,a),s=r[0],o=r[1],l=r[2];return ri(s,o,l)},oi=c.unpack,li=Zt,ci=JA,di=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=oi(e,"lch"))[0],i=e[1],n=e[2],a=li(A,i,n),r=a[0],s=a[1],o=a[2],l=ci(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},hi=c.unpack,ui=c.type,gi=E,pi=w,mi=d,wi=si;pi.prototype.oklch=function(){return wi(this._rgb)},gi.oklch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(pi,[null].concat(e,["oklch"])))},mi.format.oklch=di,mi.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=hi(e,"oklch"),"array"===ui(e)&&3===e.length)return"oklch"}});var fi=w,Ei=c.type;fi.prototype.alpha=function(e,t){return void 0===t&&(t=!1),void 0!==e&&"number"===Ei(e)?t?(this._rgb[3]=e,this):new fi([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},w.prototype.clipped=function(){return this._rgb._clipped||!1};var Bi=w,bi=wt;Bi.prototype.darken=function(e){void 0===e&&(e=1);var t=this.lab();return t[0]-=bi.Kn*e,new Bi(t,"lab").alpha(this.alpha(),!0)},Bi.prototype.brighten=function(e){return void 0===e&&(e=1),this.darken(-e)},Bi.prototype.darker=Bi.prototype.darken,Bi.prototype.brighter=Bi.prototype.brighten,w.prototype.get=function(e){var t=e.split("."),A=t[0],i=t[1],n=this[A]();if(i){var a=A.indexOf(i)-("ok"===A.substr(0,2)?2:0);if(a>-1)return n[a];throw new Error("unknown channel "+i+" in mode "+A)}return n};var vi=w,Ci=c.type,yi=Math.pow;vi.prototype.luminance=function(e){if(void 0!==e&&"number"===Ci(e)){if(0===e)return new vi([0,0,0,this._rgb[3]],"rgb");if(1===e)return new vi([255,255,255,this._rgb[3]],"rgb");var t=this.luminance(),A=20,i=function(t,n){var a=t.interpolate(n,.5,"rgb"),r=a.luminance();return Math.abs(e-r)<1e-7||!A--?a:r>e?i(t,a):i(a,n)},n=(t>e?i(new vi([0,0,0]),this):i(this,new vi([255,255,255]))).rgb();return new vi(n.concat([this._rgb[3]]))}return Fi.apply(void 0,this._rgb.slice(0,3))};var Fi=function(e,t,A){return.2126*(e=xi(e))+.7152*(t=xi(t))+.0722*xi(A)},xi=function(e){return(e/=255)<=.03928?e/12.92:yi((e+.055)/1.055,2.4)},Si={},Ti=w,Ii=c.type,Mi=Si,ki=function(e,t,A){void 0===A&&(A=.5);for(var i=[],n=arguments.length-3;n-- >0;)i[n]=arguments[n+3];var a=i[0]||"lrgb";if(Mi[a]||i.length||(a=Object.keys(Mi)[0]),!Mi[a])throw new Error("interpolation mode "+a+" is not defined");return"object"!==Ii(e)&&(e=new Ti(e)),"object"!==Ii(t)&&(t=new Ti(t)),Mi[a](e,t,A).alpha(e.alpha()+A*(t.alpha()-e.alpha()))},Ui=w,Oi=ki;Ui.prototype.mix=Ui.prototype.interpolate=function(e,t){void 0===t&&(t=.5);for(var A=[],i=arguments.length-2;i-- >0;)A[i]=arguments[i+2];return Oi.apply(void 0,[this,e,t].concat(A))};var Qi=w;Qi.prototype.premultiply=function(e){void 0===e&&(e=!1);var t=this._rgb,A=t[3];return e?(this._rgb=[t[0]*A,t[1]*A,t[2]*A,A],this):new Qi([t[0]*A,t[1]*A,t[2]*A,A],"rgb")};var Li=w,Ni=wt;Li.prototype.saturate=function(e){void 0===e&&(e=1);var t=this.lch();return t[1]+=Ni.Kn*e,t[1]<0&&(t[1]=0),new Li(t,"lch").alpha(this.alpha(),!0)},Li.prototype.desaturate=function(e){return void 0===e&&(e=1),this.saturate(-e)};var Di=w,Ri=c.type;Di.prototype.set=function(e,t,A){void 0===A&&(A=!1);var i=e.split("."),n=i[0],a=i[1],r=this[n]();if(a){var s=n.indexOf(a)-("ok"===n.substr(0,2)?2:0);if(s>-1){if("string"==Ri(t))switch(t.charAt(0)){case"+":case"-":r[s]+=+t;break;case"*":r[s]*=+t.substr(1);break;case"/":r[s]/=+t.substr(1);break;default:r[s]=+t}else{if("number"!==Ri(t))throw new Error("unsupported value for Color.set");r[s]=t}var o=new Di(r,n);return A?(this._rgb=o._rgb,this):o}throw new Error("unknown channel "+a+" in mode "+n)}return r};var Hi=w;Si.rgb=function(e,t,A){var i=e._rgb,n=t._rgb;return new Hi(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"rgb")};var Pi=w,Vi=Math.sqrt,Ki=Math.pow;Si.lrgb=function(e,t,A){var i=e._rgb,n=i[0],a=i[1],r=i[2],s=t._rgb,o=s[0],l=s[1],c=s[2];return new Pi(Vi(Ki(n,2)*(1-A)+Ki(o,2)*A),Vi(Ki(a,2)*(1-A)+Ki(l,2)*A),Vi(Ki(r,2)*(1-A)+Ki(c,2)*A),"rgb")};var Gi=w;Si.lab=function(e,t,A){var i=e.lab(),n=t.lab();return new Gi(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"lab")};var Wi=w,zi=function(e,t,A,i){var n,a,r,s,o,l,c,d,h,u,g,p,m;return"hsl"===i?(r=e.hsl(),s=t.hsl()):"hsv"===i?(r=e.hsv(),s=t.hsv()):"hcg"===i?(r=e.hcg(),s=t.hcg()):"hsi"===i?(r=e.hsi(),s=t.hsi()):"lch"===i||"hcl"===i?(i="hcl",r=e.hcl(),s=t.hcl()):"oklch"===i&&(r=e.oklch().reverse(),s=t.oklch().reverse()),"h"!==i.substr(0,1)&&"oklch"!==i||(o=(n=r)[0],c=n[1],h=n[2],l=(a=s)[0],d=a[1],u=a[2]),isNaN(o)||isNaN(l)?isNaN(o)?isNaN(l)?p=Number.NaN:(p=l,1!=h&&0!=h||"hsv"==i||(g=d)):(p=o,1!=u&&0!=u||"hsv"==i||(g=c)):p=o+A*(l>o&&l-o>180?l-(o+360):l180?l+360-o:l-o),void 0===g&&(g=c+A*(d-c)),m=h+A*(u-h),new Wi("oklch"===i?[m,g,p]:[p,g,m],i)},Xi=zi,Yi=function(e,t,A){return Xi(e,t,A,"lch")};Si.lch=Yi,Si.hcl=Yi;var ji=w;Si.num=function(e,t,A){var i=e.num(),n=t.num();return new ji(i+A*(n-i),"num")};var _i=zi;Si.hcg=function(e,t,A){return _i(e,t,A,"hcg")};var Ji=zi;Si.hsi=function(e,t,A){return Ji(e,t,A,"hsi")};var Zi=zi;Si.hsl=function(e,t,A){return Zi(e,t,A,"hsl")};var qi=zi;Si.hsv=function(e,t,A){return qi(e,t,A,"hsv")};var $i=w;Si.oklab=function(e,t,A){var i=e.oklab(),n=t.oklab();return new $i(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"oklab")};var en=zi;Si.oklch=function(e,t,A){return en(e,t,A,"oklch")};var tn=w,An=c.clip_rgb,nn=Math.pow,an=Math.sqrt,rn=Math.PI,sn=Math.cos,on=Math.sin,ln=Math.atan2,cn=function(e,t){for(var A=e.length,i=[0,0,0,0],n=0;n.9999999&&(i[3]=1),new tn(An(i))},dn=E,hn=c.type,un=Math.pow,gn=function(e){var t="rgb",A=dn("#ccc"),i=0,n=[0,1],a=[],r=[0,0],s=!1,o=[],l=!1,c=0,d=1,h=!1,u={},g=!0,p=1,m=function(e){if((e=e||["#fff","#000"])&&"string"===hn(e)&&dn.brewer&&dn.brewer[e.toLowerCase()]&&(e=dn.brewer[e.toLowerCase()]),"array"===hn(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(var t=0;t2?function(e){if(null!=s){for(var t=s.length-1,A=0;A=s[A];)A++;return A-1}return 0}(e)/(s.length-2):d!==c?(e-c)/(d-c):1,l=f(l),i||(l=w(l)),1!==p&&(l=un(l,p)),l=r[0]+l*(1-r[0]-r[1]),l=Math.min(1,Math.max(0,l));var h=Math.floor(1e4*l);if(g&&u[h])n=u[h];else{if("array"===hn(o))for(var m=0;m=E&&m===a.length-1){n=o[m];break}if(l>E&&l2){var l=e.map((function(t,A){return A/(e.length-1)})),h=e.map((function(e){return(e-c)/(d-c)}));h.every((function(e,t){return l[t]===e}))||(f=function(e){if(e<=0||e>=1)return e;for(var t=0;e>=h[t+1];)t++;var A=(e-h[t])/(h[t+1]-h[t]);return l[t]+A*(l[t+1]-l[t])})}}return n=[c,d],b},b.mode=function(e){return arguments.length?(t=e,B(),b):t},b.range=function(e,t){return m(e),b},b.out=function(e){return l=e,b},b.spread=function(e){return arguments.length?(i=e,b):i},b.correctLightness=function(e){return null==e&&(e=!0),h=e,B(),w=h?function(e){for(var t=E(0,!0).lab()[0],A=E(1,!0).lab()[0],i=t>A,n=E(e,!0).lab()[0],a=t+(A-t)*e,r=n-a,s=0,o=1,l=20;Math.abs(r)>.01&&l-- >0;)i&&(r*=-1),r<0?(s=e,e+=.5*(o-e)):(o=e,e+=.5*(s-e)),r=(n=E(e,!0).lab()[0])-a;return e}:function(e){return e},b},b.padding=function(e){return null!=e?("number"===hn(e)&&(e=[e,e]),r=e,b):r},b.colors=function(t,A){arguments.length<2&&(A="hex");var i=[];if(0===arguments.length)i=o.slice(0);else if(1===t)i=[b(.5)];else if(t>1){var a=n[0],r=n[1]-a;i=function(e,t,A){for(var i=[],n=ea;n?r++:r--)i.push(r);return i}(0,t,!1).map((function(e){return b(a+e/(t-1)*r)}))}else{e=[];var l=[];if(s&&s.length>2)for(var c=1,d=s.length,h=1<=d;h?cd;h?c++:c--)l.push(.5*(s[c-1]+s[c]));else l=n;i=l.map((function(e){return b(e)}))}return dn[A]&&(i=i.map((function(e){return e[A]()}))),i},b.cache=function(e){return null!=e?(g=e,b):g},b.gamma=function(e){return null!=e?(p=e,b):p},b.nodata=function(e){return null!=e?(A=dn(e),b):A},b};var pn=w,mn=gn,wn=E,fn=function(e,t,A){if(!fn[A])throw new Error("unknown blend mode "+A);return fn[A](e,t)},En=function(e){return function(t,A){var i=wn(A).rgb(),n=wn(t).rgb();return wn.rgb(e(i,n))}},Bn=function(e){return function(t,A){var i=[];return i[0]=e(t[0],A[0]),i[1]=e(t[1],A[1]),i[2]=e(t[2],A[2]),i}};fn.normal=En(Bn((function(e){return e}))),fn.multiply=En(Bn((function(e,t){return e*t/255}))),fn.screen=En(Bn((function(e,t){return 255*(1-(1-e/255)*(1-t/255))}))),fn.overlay=En(Bn((function(e,t){return t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255))}))),fn.darken=En(Bn((function(e,t){return e>t?t:e}))),fn.lighten=En(Bn((function(e,t){return e>t?e:t}))),fn.dodge=En(Bn((function(e,t){return 255===e||(e=t/255*255/(1-e/255))>255?255:e}))),fn.burn=En(Bn((function(e,t){return 255*(1-(1-t/255)/(e/255))})));for(var bn=fn,vn=c.type,Cn=c.clip_rgb,yn=c.TWOPI,Fn=Math.pow,xn=Math.sin,Sn=Math.cos,Tn=E,In=w,Mn=Math.floor,kn=Math.random,Un=r,On=Math.log,Qn=Math.pow,Ln=Math.floor,Nn=Math.abs,Dn=function(e,t){void 0===t&&(t=null);var A={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===Un(e)&&(e=Object.values(e)),e.forEach((function(e){t&&"object"===Un(e)&&(e=e[t]),null==e||isNaN(e)||(A.values.push(e),A.sum+=e,eA.max&&(A.max=e),A.count+=1)})),A.domain=[A.min,A.max],A.limits=function(e,t){return Rn(A,e,t)},A},Rn=function(e,t,A){void 0===t&&(t="equal"),void 0===A&&(A=7),"array"==Un(e)&&(e=Dn(e));var i=e.min,n=e.max,a=e.values.sort((function(e,t){return e-t}));if(1===A)return[i,n];var r=[];if("c"===t.substr(0,1)&&(r.push(i),r.push(n)),"e"===t.substr(0,1)){r.push(i);for(var s=1;s 0");var o=Math.LOG10E*On(i),l=Math.LOG10E*On(n);r.push(i);for(var c=1;c200&&(E=!1)}for(var L={},N=0;N=360;)g-=360;r[u]=g}else r[u]=r[u]/s[u];return h/=i,new tn(r,t).alpha(h>.99999?1:h,!0)},oa.bezier=function(e){var t=function(e){var t,A,i,n,a,r,s;if(e=e.map((function(e){return new pn(e)})),2===e.length)t=e.map((function(e){return e.lab()})),a=t[0],r=t[1],n=function(e){var t=[0,1,2].map((function(t){return a[t]+e*(r[t]-a[t])}));return new pn(t,"lab")};else if(3===e.length)A=e.map((function(e){return e.lab()})),a=A[0],r=A[1],s=A[2],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*a[t]+2*(1-e)*e*r[t]+e*e*s[t]}));return new pn(t,"lab")};else if(4===e.length){var o;i=e.map((function(e){return e.lab()})),a=i[0],r=i[1],s=i[2],o=i[3],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*(1-e)*a[t]+3*(1-e)*(1-e)*e*r[t]+3*(1-e)*e*e*s[t]+e*e*e*o[t]}));return new pn(t,"lab")}}else{if(!(e.length>=5))throw new RangeError("No point in running bezier with only one color.");var l,c,d;l=e.map((function(e){return e.lab()})),d=e.length-1,c=function(e){for(var t=[1,1],A=1;Ai?(A+.05)/(i+.05):(i+.05)/(A+.05)},oa.deltaE=function(e,t,A,i,n){void 0===A&&(A=1),void 0===i&&(i=1),void 0===n&&(n=1);var a=function(e){return 360*e/(2*Zn)},r=function(e){return 2*Zn*e/360};e=new Vn(e),t=new Vn(t);var s=Array.from(e.lab()),o=s[0],l=s[1],c=s[2],d=Array.from(t.lab()),h=d[0],u=d[1],g=d[2],p=(o+h)/2,m=(Kn(Gn(l,2)+Gn(c,2))+Kn(Gn(u,2)+Gn(g,2)))/2,w=.5*(1-Kn(Gn(m,7)/(Gn(m,7)+Gn(25,7)))),f=l*(1+w),E=u*(1+w),B=Kn(Gn(f,2)+Gn(c,2)),b=Kn(Gn(E,2)+Gn(g,2)),v=(B+b)/2,C=a(Xn(c,f)),y=a(Xn(g,E)),F=C>=0?C:C+360,x=y>=0?y:y+360,S=Yn(F-x)>180?(F+x+360)/2:(F+x)/2,T=1-.17*jn(r(S-30))+.24*jn(r(2*S))+.32*jn(r(3*S+6))-.2*jn(r(4*S-63)),I=x-F;I=Yn(I)<=180?I:x<=F?I+360:I-360,I=2*Kn(B*b)*_n(r(I)/2);var M=h-o,k=b-B,U=1+.015*Gn(p-50,2)/Kn(20+Gn(p-50,2)),O=1+.045*v,Q=1+.015*v*T,L=30*Jn(-Gn((S-275)/25,2)),N=-2*Kn(Gn(v,7)/(Gn(v,7)+Gn(25,7)))*_n(2*r(L)),D=Kn(Gn(M/(A*U),2)+Gn(k/(i*O),2)+Gn(I/(n*Q),2)+N*(k/(i*O))*(I/(n*Q)));return zn(0,Wn(100,D))},oa.distance=function(e,t,A){void 0===A&&(A="lab"),e=new qn(e),t=new qn(t);var i=e.get(A),n=t.get(A),a=0;for(var r in i){var s=(i[r]||0)-(n[r]||0);a+=s*s}return Math.sqrt(a)},oa.limits=Hn.limits,oa.valid=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];try{return new(Function.prototype.bind.apply($n,[null].concat(e))),!0}catch(e){return!1}},oa.scales=Aa,oa.colors=dA,oa.brewer=sa,oa}()}(chroma$1,chroma$1.exports);var chromaExports=chroma$1.exports,chroma=getDefaultExportFromCjs(chromaExports);function hexWithAlpha(e,t){return chroma(e).alpha(t).css()}function has(e,t){return e.hasAttribute(t)}function get(e,t,A){return e.getAttribute(t)||A||""}function getNum(e,t,A){const i=Number(get(e,t));return Number.isNaN(i)?A||0:i}const attrHandlers={stroke:({el:e,exVals:t})=>{const A=get(e,"stroke");t.strokeColor=has(e,"stroke-opacity")?hexWithAlpha(A,getNum(e,"stroke-opacity")):A},"stroke-opacity":({el:e,exVals:t})=>{t.strokeColor=hexWithAlpha(get(e,"stroke","#000000"),getNum(e,"stroke-opacity"))},"stroke-width":({el:e,exVals:t})=>{t.strokeWidth=getNum(e,"stroke-width")},fill:({el:e,exVals:t})=>{const A=get(e,"fill");t.backgroundColor="none"===A?"#00000000":A},"fill-opacity":({el:e,exVals:t})=>{t.backgroundColor=hexWithAlpha(get(e,"fill","#000000"),getNum(e,"fill-opacity"))},opacity:({el:e,exVals:t})=>{t.opacity=getNum(e,"opacity",100)}};function presAttrsToElementValues(e){return[...e.attributes].reduce(((t,A)=>{const i=A.name;return Object.keys(attrHandlers).includes(i)&&attrHandlers[i]({el:e,exVals:t}),t}),{})}function filterAttrsToElementValues(e){const t={};return has(e,"x")&&(t.x=getNum(e,"x")),has(e,"y")&&(t.y=getNum(e,"y")),has(e,"width")&&(t.width=getNum(e,"width")),has(e,"height")&&(t.height=getNum(e,"height")),t}function pointsAttrToPoints(e){let t=[];return has(e,"points")&&(t=get(e,"points").split(" ").map((e=>e.split(",").map(parseFloat)))),t}function getGroupAttrs(e){return e.reduce(((e,{element:t})=>{const A=presAttrsToElementValues(t);return Object.assign(Object.assign({},e),A)}),{})}class Group{constructor(e){this.id=randomId(),this.element=e}}function createExElement(){return{id:randomId(),x:0,y:0,strokeColor:"#000000",backgroundColor:"#000000",fillStyle:"solid",strokeWidth:1,strokeStyle:"solid",roundness:null,roughness:0,opacity:100,width:0,height:0,angle:0,seed:randomInteger(),version:0,versionNonce:0,isDeleted:!1,groupIds:[],boundElementIds:null}}function createExRect(){return Object.assign(Object.assign({},createExElement()),{type:"rectangle"})}function createExLine(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}function createExEllipse(){return Object.assign(Object.assign({},createExElement()),{type:"ellipse"})}function createExDraw(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}const transformFunctions={matrix:"matrix",matrix3d:"matrix3d",perspective:"perspective",rotate:"rotate",rotate3d:"rotate3d",rotateX:"rotateX",rotateY:"rotateY",rotateZ:"rotateZ",scale:"scale",scale3d:"scale3d",scaleX:"scaleX",scaleY:"scaleY",scaleZ:"scaleZ",skew:"skew",skewX:"skewX",skewY:"skewY",translate:"translate",translate3d:"translate3d",translateX:"translateX",translateY:"translateY",translateZ:"translateZ"},transformFunctionsArr=Object.keys(transformFunctions),defaultUnits={matrix:"",matrix3d:"",perspective:"perspective",rotate:"deg",rotate3d:"deg",rotateX:"deg",rotateY:"deg",rotateZ:"deg",scale:"",scale3d:"",scaleX:"",scaleY:"",scaleZ:"",skew:"skew",skewX:"deg",skewY:"deg",translate:"px",translate3d:"px",translateX:"px",translateY:"px",translateZ:"px"},svgTransformToCSSTransform=e=>{const t=e.match(/(\w+)\(([^)]*)\)/g);if(!t)return"";const A=t.map((e=>{const t=e.split("(")[0];if(!t)throw new Error("Unable to find transform name");if(!transformFunctionsArr.includes(t))throw new Error(`transform function name "${t}" is not valid`);const A=e.match(/([-+]?[0-9]*\.?[0-9]+)([a-z])*/g);if(!A)return{type:t,values:[]};let i=A.map((e=>{const[A,i]=e.matchAll(/([-+]?[0-9]*\.?[0-9]+)|([a-z])*/g);return{unit:i[0]||defaultUnits[t],value:A[0]}}));return i&&"rotate"===t&&(null==i?void 0:i.length)>1&&(i=[i[0]]),{type:t,values:i}}));return A.map((({type:e,values:t})=>`${e}(${t.map((({unit:e,value:t})=>`${t}${e}`)).join(", ")})`)).join(" ")};function getElementMatrix(e){if(e.hasAttribute("transform")){const t=new DOMMatrix(svgTransformToCSSTransform(e.getAttribute("transform")||""));return multiply(create$1(),create$1(),t.toFloat32Array())}return create$1()}function getTransformMatrix(e,t){return t.map((({element:e})=>getElementMatrix(e))).concat([getElementMatrix(e)]).reduce(((e,t)=>multiply(e,e,t)),create$1())}function transformPoints(e,t){return e.map((([e,A])=>{const[i,n]=transformMat4(create(),fromValues(e,A,1),t);return[i,n]}))}function distance(e,t){return Math.sqrt(distanceSq(e,t))}function distanceSq(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function distanceToSegmentSq(e,t,A){const i=distanceSq(t,A);if(0===i)return distanceSq(e,t);let n=((e[0]-t[0])*(A[0]-t[0])+(e[1]-t[1])*(A[1]-t[1]))/i;return n=Math.max(0,Math.min(1,n)),distanceSq(e,lerp(t,A,n))}function lerp(e,t,A){return[e[0]+(t[0]-e[0])*A,e[1]+(t[1]-e[1])*A]}function flatness(e,t){const A=e[t+0],i=e[t+1],n=e[t+2],a=e[t+3];let r=3*i[0]-2*A[0]-a[0];r*=r;let s=3*i[1]-2*A[1]-a[1];s*=s;let o=3*n[0]-2*a[0]-A[0];o*=o;let l=3*n[1]-2*a[1]-A[1];return l*=l,r1&&n.push(A):n.push(A),n.push(e[t+3])}else{const i=.5,a=e[t+0],r=e[t+1],s=e[t+2],o=e[t+3],l=lerp(a,r,i),c=lerp(r,s,i),d=lerp(s,o,i),h=lerp(l,c,i),u=lerp(c,d,i),g=lerp(h,u,i);getPointsOnBezierCurveWithSplitting([a,l,h,g],0,A,n),getPointsOnBezierCurveWithSplitting([g,u,d,o],0,A,n)}return n}function simplify(e,t){return simplifyPoints(e,0,e.length,t)}function simplifyPoints(e,t,A,i,n){const a=n||[],r=e[t],s=e[A-1];let o=0,l=1;for(let i=t+1;io&&(o=t,l=i)}return Math.sqrt(o)>i?(simplifyPoints(e,t,l+1,i,a),simplifyPoints(e,l,A,i,a)):(a.length||a.push(r),a.push(s)),a}function pointsOnBezierCurves(e,t=.15,A){const i=[],n=(e.length-1)/3;for(let A=0;A0?simplifyPoints(i,0,i.length,A):i}const COMMAND=0,NUMBER=1,EOD=2,PARAMS={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function tokenize(e){const t=new Array;for(;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:COMMAND,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:NUMBER,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return t[t.length]={type:EOD,text:""},t}function isType(e,t){return e.type===t}function parsePath(e){const t=[],A=tokenize(e);let i="BOD",n=0,a=A[n];for(;!isType(a,EOD);){let r=0;const s=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return parsePath("M0,0"+e);n++,r=PARAMS[a.text],i=a.text}else isType(a,NUMBER)?r=PARAMS[i]:(n++,r=PARAMS[a.text],i=a.text);if(!(n+ri%2?e+A:e+t));a.push({key:"C",data:e}),t=e[4],A=e[5];break}case"Q":a.push({key:"Q",data:[...s]}),t=s[2],A=s[3];break;case"q":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"Q",data:e}),t=e[2],A=e[3];break}case"A":a.push({key:"A",data:[...s]}),t=s[5],A=s[6];break;case"a":t+=s[5],A+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],t,A]});break;case"H":a.push({key:"H",data:[...s]}),t=s[0];break;case"h":t+=s[0],a.push({key:"H",data:[t]});break;case"V":a.push({key:"V",data:[...s]}),A=s[0];break;case"v":A+=s[0],a.push({key:"V",data:[A]});break;case"S":a.push({key:"S",data:[...s]}),t=s[2],A=s[3];break;case"s":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"S",data:e}),t=e[2],A=e[3];break}case"T":a.push({key:"T",data:[...s]}),t=s[0],A=s[1];break;case"t":t+=s[0],A+=s[1],a.push({key:"T",data:[t,A]});break;case"Z":case"z":a.push({key:"Z",data:[]}),t=i,A=n}return a}function normalize(e){const t=[];let A="",i=0,n=0,a=0,r=0,s=0,o=0;for(const{key:l,data:c}of e){switch(l){case"M":t.push({key:"M",data:[...c]}),[i,n]=c,[a,r]=c;break;case"C":t.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],o=c[3];break;case"L":t.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],t.push({key:"L",data:[i,n]});break;case"V":n=c[0],t.push({key:"L",data:[i,n]});break;case"S":{let e=0,a=0;"C"===A||"S"===A?(e=i+(i-s),a=n+(n-o)):(e=i,a=n),t.push({key:"C",data:[e,a,...c]}),s=c[0],o=c[1],i=c[2],n=c[3];break}case"T":{const[e,a]=c;let r=0,l=0;"Q"===A||"T"===A?(r=i+(i-s),l=n+(n-o)):(r=i,l=n);const d=i+2*(r-i)/3,h=n+2*(l-n)/3,u=e+2*(r-e)/3,g=a+2*(l-a)/3;t.push({key:"C",data:[d,h,u,g,e,a]}),s=r,o=l,i=e,n=a;break}case"Q":{const[e,A,a,r]=c,l=i+2*(e-i)/3,d=n+2*(A-n)/3,h=a+2*(e-a)/3,u=r+2*(A-r)/3;t.push({key:"C",data:[l,d,h,u,a,r]}),s=e,o=A,i=a,n=r;break}case"A":{const e=Math.abs(c[0]),A=Math.abs(c[1]),a=c[2],r=c[3],s=c[4],o=c[5],l=c[6];0===e||0===A?(t.push({key:"C",data:[i,n,o,l,o,l]}),i=o,n=l):i===o&&n===l||(arcToCubicCurves(i,n,o,l,e,A,a,r,s).forEach((function(e){t.push({key:"C",data:e})})),i=o,n=l);break}case"Z":t.push({key:"Z",data:[]}),i=a,n=r}A=l}return t}function degToRad(e){return Math.PI*e/180}function rotate(e,t,A){return[e*Math.cos(A)-t*Math.sin(A),e*Math.sin(A)+t*Math.cos(A)]}function arcToCubicCurves(e,t,A,i,n,a,r,s,o,l){const c=degToRad(r);let d=[],h=0,u=0,g=0,p=0;if(l)[h,u,g,p]=l;else{[e,t]=rotate(e,t,-c),[A,i]=rotate(A,i,-c);const r=(e-A)/2,l=(t-i)/2;let d=r*r/(n*n)+l*l/(a*a);d>1&&(d=Math.sqrt(d),n*=d,a*=d);const m=n*n,w=a*a,f=m*w-m*l*l-w*r*r,E=m*l*l+w*r*r,B=(s===o?-1:1)*Math.sqrt(Math.abs(f/E));g=B*n*l/a+(e+A)/2,p=B*-a*r/n+(t+i)/2,h=Math.asin(parseFloat(((t-p)/a).toFixed(9))),u=Math.asin(parseFloat(((i-p)/a).toFixed(9))),eu&&(h-=2*Math.PI),!o&&u>h&&(u-=2*Math.PI)}let m=u-h;if(Math.abs(m)>120*Math.PI/180){const e=u,t=A,s=i;u=o&&u>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,d=arcToCubicCurves(A=g+n*Math.cos(u),i=p+a*Math.sin(u),t,s,n,a,r,0,o,[u,e,g,p])}m=u-h;const w=Math.cos(h),f=Math.sin(h),E=Math.cos(u),B=Math.sin(u),b=Math.tan(m/4),v=4/3*n*b,C=4/3*a*b,y=[e,t],F=[e+v*f,t-C*w],x=[A+v*B,i-C*E],S=[A,i];if(F[0]=2*y[0]-F[0],F[1]=2*y[1]-F[1],l)return[F,x,S].concat(d);{d=[F,x,S].concat(d);const e=[];for(let t=0;t{s.length>=4&&a.push(...pointsOnBezierCurves(s,t)),s=[]},l=()=>{o(),a.length&&(n.push(a),a=[])};for(const{key:e,data:t}of i)switch(e){case"M":l(),r=[t[0],t[1]],a.push(r);break;case"L":o(),a.push([t[0],t[1]]);break;case"C":if(!s.length){const e=a.length?a[a.length-1]:r;s.push([e[0],e[1]])}s.push([t[0],t[1]]),s.push([t[2],t[3]]),s.push([t[4],t[5]]);break;case"Z":o(),a.push([r[0],r[1]])}if(l(),!A)return n;const c=[];for(const e of n){const t=simplify(e,A);t.length&&c.push(t)}return c}const SUPPORTED_TAGS=["svg","path","g","use","circle","ellipse","rect","polyline","polygon"],nodeValidator=e=>SUPPORTED_TAGS.includes(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;function createTreeWalker(e){return document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:nodeValidator})}const presAttrs=(e,t)=>Object.assign(Object.assign(Object.assign({},getGroupAttrs(t)),presAttrsToElementValues(e)),filterAttrsToElementValues(e)),skippedUseAttrs=["id"],allwaysPassedUseAttrs=["x","y","width","height","href","xlink:href"],getDefElWithCorrectAttrs=(e,t)=>[...t.attributes].reduce(((A,i)=>(skippedUseAttrs.includes(i.value)||e.hasAttribute(i.name)&&!allwaysPassedUseAttrs.includes(i.name)||A.setAttribute(i.name,t.getAttribute(i.name)||""),A)),e.cloneNode()),walkers={svg:e=>{walk(e,e.tw.nextNode())},g:e=>{const t=Object.assign(Object.assign({},e),{tw:createTreeWalker(e.tw.currentNode),groups:[...e.groups,new Group(e.tw.currentNode)]});walk(t,t.tw.nextNode()),walk(e,e.tw.nextSibling())},use:e=>{const{root:t,tw:A,scene:i}=e,n=A.currentNode,a=n.getAttribute("href")||n.getAttribute("xlink:href");if(!a)throw new Error("unable to get id of use element");const r=t.querySelector(a);if(!r)throw new Error(`unable to find def element with id: ${a}`);const s=new ExcalidrawScene,o=getDefElWithCorrectAttrs(r,n);walk(Object.assign(Object.assign({},e),{scene:s,tw:createTreeWalker(o)}),o);const l=s.elements.pop();l&&i.elements.push(l),walk(e,e.tw.nextNode())},circle:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"r",0),r=2*a,s=getNum(n,"x",0)+getNum(n,"cx",0)-a,o=getNum(n,"y",0)+getNum(n,"cy",0)-a,l=getTransformMatrix(n,i),c=fromValues$1(r,0,0,0,0,r,0,0,0,0,1,0,s,o,0,1),d=multiply(create$1(),l,c),h=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],groupIds:i.map((e=>e.id))});A.elements.push(h),walk(e,t.nextNode())},ellipse:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"rx",0),r=getNum(n,"ry",0),s=getNum(n,"cx",0),o=getNum(n,"cy",0),l=getNum(n,"x",0)+s-a,c=getNum(n,"y",0)+o-r,d=2*a,h=2*r,u=getTransformMatrix(n,i),g=fromValues$1(d,0,0,0,0,h,0,0,0,0,1,0,l,c,0,1),p=multiply(create$1(),u,g),m=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:p[12],y:p[13],width:p[0],height:p[5],groupIds:i.map((e=>e.id))});A.elements.push(m),walk(e,t.nextNode())},line:e=>{walk(e,e.tw.nextNode())},polygon:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=transformPoints(pointsAttrToPoints(n),getTransformMatrix(n,i)),r=a[0][0],s=a[0][1],o=a.map((([e,t])=>[e-r,t-s])),[l,c]=dimensionsFromPoints(o),d=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:o.concat([[0,0]]),x:r,y:s,width:l,height:c});A.elements.push(d),walk(e,e.tw.nextNode())},polyline:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=transformPoints(pointsAttrToPoints(n),a),s=r[0][0],o=r[0][1],l=r.map((([e,t])=>[e-s,t-o])),[c,d]=dimensionsFromPoints(l),h=has(n,"fill"),u=get(n,"fill"),g=!h||h&&"none"!==u,p=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:l.concat(g?[[0,0]]:[]),x:s,y:o,width:c,height:d});A.elements.push(p),walk(e,e.tw.nextNode())},rect:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"x",0),r=getNum(n,"y",0),s=getNum(n,"width",0),o=getNum(n,"height",0),l=getTransformMatrix(n,i),c=fromValues$1(s,0,0,0,0,o,0,0,0,0,1,0,a,r,0,1),d=multiply(create$1(),l,c),h=n.hasAttribute("rx")||n.hasAttribute("ry"),u=Object.assign(Object.assign(Object.assign({},createExRect()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],roundness:h?{type:ROUNDNESS.LEGACY}:null});A.elements.push(u),walk(e,e.tw.nextNode())},path:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=pointsOnPath(get(n,"d")),s=get(n,"fill","black"),o=get(n,"fill-rule","nonzero");let l=[],c=randomId();switch(o){case"nonzero":let e="clockwise";l=r.map(((t,A)=>{const r=transformPoints(t,clone(a)),o=r[0][0],l=r[0][1],[d,h]=dimensionsFromPoints(r),u=r.map((([e,t])=>[e-o,t-l])),g=getWindingOrder(u);0===A&&(e=g,c=randomId());let p=s;return e!==g&&(p="#FFFFFF"),Object.assign(Object.assign(Object.assign(Object.assign({},createExDraw()),{strokeWidth:0,strokeColor:"#00000000"}),presAttrs(n,i)),{points:u,backgroundColor:p,width:d,height:h,x:o+getNum(n,"x",0),y:l+getNum(n,"y",0),groupIds:[c]})}));break;case"evenodd":l=r.map(((e,t)=>{const A=transformPoints(e,clone(a)),r=A[0][0],s=A[0][1],[o,l]=dimensionsFromPoints(A),d=A.map((([e,t])=>[e-r,t-s]));return 0===t&&(c=randomId()),Object.assign(Object.assign(Object.assign({},createExDraw()),presAttrs(n,i)),{points:d,width:o,height:l,x:r+getNum(n,"x",0),y:s+getNum(n,"y",0)})}))}A.elements=A.elements.concat(l),walk(e,t.nextNode())}};function walk(e,t){if(!t)return;const A=t.nodeName;walkers[A]&&walkers[A](e)}const svgToExcalidraw=e=>{const t=(new DOMParser).parseFromString(e,"image/svg+xml"),A=t.querySelectorAll("parsererror"),i=A.length>0;let n=null;if(i)console.error("There were errors while parsing the given SVG: ",[...A].map((e=>e.innerHTML)));else{const e=createTreeWalker(t),A=new ExcalidrawScene;walk({tw:e,scene:A,groups:[],root:t},e.nextNode()),n=A.elements}return{hasErrors:i,errors:i?A:null,content:n}};B([r$d,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const GAP=4;class ExcalidrawAutomate{get obsidian(){return obsidian_module__namespace}get DEVICE(){return DEVICE}async getAttachmentFilepath(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t.file))return errorMessage("targetView not set","getAttachmentFolderAndFilePath()"),null;const A=await getAttachmentsFolderAndFilePath(app,this.targetView.file.path,e);return getNewUniqueFilepath(app.vault,e,A.folder)}async newFilePrompt(e,t,A,i){var n;if(!this.targetView||!(null===(n=this.targetView)||void 0===n?void 0:n.file))return errorMessage("targetView not set","newFileActions()"),null;const a=emulateKeysForLinkClick(A),r=new NewFileActions(this.plugin,e,a,this.targetView,t,i);return r.open(),await r.waitForClose}getLeaf(e,t){const A=emulateKeysForLinkClick(null!=t?t:"new-tab");return getLeaf(this.plugin,e,A)}getActiveEmbeddableViewOrEditor(e){if(!this.targetView&&!e)return null;const t=(e=null!=e?e:this.targetView).getActiveEmbeddable();if(t){if(t.node&&t.node.isEditing)return{file:t.node.file,editor:t.node.child.editor};if(t.leaf&&t.leaf.view)return{view:t.leaf.view}}return null}constructor(e,t){this.mostRecentMarkdownSVG=null,this.targetView=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onPasteHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=e,this.reset(),this.targetView=t}getViewLastPointerPosition(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.currentPosition:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getAPI(e){return new ExcalidrawAutomate(this.plugin,e)}setFillStyle(e){switch(e){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(e){switch(e){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(e){return 0===e?(this.style.roundness={type:ROUNDNESS.LEGACY},"round"):(this.style.roundness=null,"sharp")}setFontFamily(e){switch(e){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(e){return 0===e?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(e){const t=nanoid();return e.forEach((e=>{var A,i;null===(i=null===(A=this.elementsDict[e])||void 0===A?void 0:A.groupIds)||void 0===i||i.push(t)})),t}async toClipboard(e){const t=e?await getTemplate(this.plugin,e,!1,new EmbeddedFilesLoader(this.plugin),0):null;let A=t?t.elements:[];A=A.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:A}))}async getSceneFromFile(e){if(!e)return errorMessage("file not found","getScene()"),null;if(!this.isExcalidrawFile(e))return errorMessage("file is not an Excalidraw file","getScene()"),null;const t=await getTemplate(this.plugin,e.path,!1,new EmbeddedFilesLoader(this.plugin),0);return{elements:t.elements,appState:t.appState}}getElements(){const e=[],t=Object.keys(this.elementsDict);for(let A=0;A{let t=e.plaintext?e.plaintext+"\n\n":"";const A=this.getElements().filter((e=>"text"===e.type));return t+="# Text Elements\n",A.forEach((e=>{var A,i;t+=`${null!==(A=e.rawText)&&void 0!==A?A:null!==(i=e.originalText)&&void 0!==i?i:e.text} ^${e.id}\n\n`})),this.getElements().filter((e=>"text"!==e.type&&e.link)).forEach((e=>{t+=`${e.link} ^${e.id}\n\n`})),t+=Object.keys(this.imagesDict).length>0?"\n# Embedded files\n":"",Object.keys(this.imagesDict).forEach((e=>{const A=this.imagesDict[e];A.latex?t+=`${e}: $$${A.latex}$$\n`:t+=`${e}: [[${A.file}]]\n`})),t})()+getMarkdownDrawingSection(JSON.stringify(G,null,"\t"),this.plugin.settings.compress))}async createSVG(e,t=!1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createSVG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}async createPNG(e,t=1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createPNG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}wrapText(e,t){return wrapTextAtCharLength(e,t,this.plugin.settings.forceWrap)}boxedElement(e,t,A,i,n,a,r=null){return{id:e,type:t,x:A,y:i,width:n,height:a,angle:this.style.angle,strokeColor:this.style.strokeColor,backgroundColor:this.style.backgroundColor,fillStyle:this.style.fillStyle,strokeWidth:this.style.strokeWidth,strokeStyle:this.style.strokeStyle,roughness:this.style.roughness,opacity:this.style.opacity,roundness:this.style.strokeSharpness?"round"===this.style.strokeSharpness?{type:ROUNDNESS.ADAPTIVE_RADIUS}:null:this.style.roundness,seed:Math.floor(1e5*Math.random()),version:1,versionNonce:Math.floor(1e9*Math.random()),updated:Date.now(),isDeleted:!1,groupIds:[],boundElements:[],link:r,locked:!1}}addIFrame(e,t,A,i,n,a){return this.addEmbeddable(e,t,A,i,n,a)}addEmbeddable(e,t,A,i,n,a){var r;if(!this.targetView||!(null===(r=this.targetView)||void 0===r?void 0:r._loaded))return errorMessage("targetView not set","addEmbeddable()"),null;if(!n&&!a)return errorMessage("Either the url or the file must be set. If both are provided the URL takes precedence","addEmbeddable()"),null;const s=nanoid();return this.elementsDict[s]=this.boxedElement(s,"embeddable",e,t,A,i,n||(a?`[[${app.metadataCache.fileToLinktext(a,this.targetView.file.path,!1)}]]`:"")),s}addRect(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"rectangle",e,t,A,i),n}addDiamond(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"diamond",e,t,A,i),n}addEllipse(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"ellipse",e,t,A,i),n}addBlob(e,t,A,i){const n=.5*i,a=.5*A,r=a/9,s=.8*n,o=[],l=(A,i)=>{const l=A+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+A%2*r/6+e,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+A%2*s/6+t])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((e=>{const t=getLineBox(e),n=A/t.w,a=i/t.h;let r;for(r=0;r500){const e=500/Math.max(s.size.width,s.size.height);s.size.width=e*s.size.width,s.size.height=e*s.size.height}return this.elementsDict[a]=this.boxedElement(a,"image",e,t,s.size.width,s.size.height),this.elementsDict[a].fileId=o,this.elementsDict[a].scale=[1,1],!i&&n&&(this.elementsDict[a].customData={isAnchored:!0}),a}async addLaTex(e,t,A){const i=nanoid(),n=await tex2dataURL(A,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:A},this.elementsDict[i]=this.boxedElement(i,"image",e,t,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(e,t,A,i,n){if(!this.elementsDict[e]||!this.elementsDict[A])return;if(["line","arrow","freedraw"].includes(this.elementsDict[e].type)||["line","arrow","freedraw"].includes(this.elementsDict[A].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(e,t)=>{switch(e){case"bottom":return[(t.x+(t.x+t.width))/2,t.y+t.height+a];case"left":return[t.x-a,(t.y+(t.y+t.height))/2];case"right":return[t.x+t.width+a,(t.y+(t.y+t.height))/2];default:return[(t.x+(t.x+t.width))/2,t.y-a]}};let o,l,c,d;const h=this.elementsDict[e],u=this.elementsDict[A];if(!t||!i){const e=h.x+h.width/2,A=u.x+u.width/2,n=h.y+h.height/2,a=u.y+u.height/2;if(!t){const t=intersectElementWithLine(h,[A,a],[e,n],4);0===t.length?[o,l]=[e,n]:[o,l]=t[0]}if(!i){const t=intersectElementWithLine(u,[e,n],[A,a],4);0===t.length?[c,d]=[A,a]:[c,d]=t[0]}}t&&([o,l]=s(t,this.elementsDict[e])),i&&([c,d]=s(i,this.elementsDict[A]));const g=r+2,p=[];for(let e=0;eMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(A.x+A.points[1][0]/2-n.width/2,A.y+A.points[1][1]/2-n.height,t);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,roundness:null,fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(e){return this.plugin.isExcalidrawFile(e)}setView(e){if(!e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(e instanceof ExcalidrawView)this.targetView=e;else{const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}}if("active"==e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(e instanceof ExcalidrawView))return;this.targetView=e}if("first"==e){const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}return e instanceof ExcalidrawView&&(this.targetView=e),this.targetView}getExcalidrawAPI(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var e;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewElements()"),[];const t=this.targetView.excalidrawAPI;return t?t.getSceneElements():[]}deleteViewElements(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((t=>!e.includes(t))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const e=this.getViewSelectedElements();return e?e[0]:null}getViewSelectedElements(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(e){var t,A,i,n;return this.targetView&&(null===(t=this.targetView)||void 0===t?void 0:t._loaded)?e&&"image"===e.type?null===(n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawData)||void 0===i?void 0:i.getFile(e.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(e){e.forEach((e=>{this.elementsDict[e.id]=cloneElement(e)}))}viewToggleFullScreen(e=!1){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView,a=n.isFullscreen();e&&(n.updateScene({appState:{viewModeEnabled:!a},commitToHistory:!1}),null===(i=null===(A=this.targetView.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(!a)),a?n.exitFullscreen():n.gotoFullscreen()}setViewModeEnabled(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView;n.updateScene({appState:{viewModeEnabled:e}}),null===(i=null===(A=n.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(e)}viewUpdateScene(e,t=!1){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.updateScene(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}connectObjectWithViewSelectedElement(e,t,A,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(e,t,a,A,i),delete this.elementsDict[a],!0}viewZoomToElements(e,t){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.zoomToElements(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}async addElementsToView(e=!1,t=!0,A=!1,i=!1){var n;if(!this.targetView||!(null===(n=this.targetView)||void 0===n?void 0:n._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const a=this.getElements();return await this.targetView.addElements(a,e,t,this.imagesDict,A,i)}registerThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(e){return new EmbeddedFilesLoader(this.plugin,e)}getExportSettings(e,t){return{withBackground:e,withTheme:t}}getBoundingBox(e){const t=getCommonBoundingBox(e);return{topX:t.minX,topY:t.minY,width:t.maxX-t.minX,height:t.maxY-t.minY}}getMaximumGroups(e){return getMaximumGroups(e)}getLargestElement(e){if(!e||0===e.length)return null;let t=e[0];const A=e=>e.height*e.width;let i=A(e[0]);for(let n=1;ni&&(i=a,t=e[n])}return t}intersectElementWithLine(e,t,A,i){return intersectElementWithLine(e,t,A,i)}getCommonGroupForElements(e){const t=e.map((e=>e.groupIds)).reduce(((e,t)=>t.filter((t=>e.includes(t)))));return t.length>0?t[0]:null}getElementsInTheSameGroupWithElement(e,t){if(!e||!t)return[];const A="text"===e.type&&e.containerId?t.filter((t=>t.id===e.containerId)):[];return 0===e.groupIds.length?1===A.length?[e,A[0]]:[e]:1===A.length?t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))||t===A[0])):t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))))}getElementsInFrame(e,t){return e&&t&&"frame"===e.type?t.filter((t=>t.frameId===e.id)):[]}getScriptSettings(){var e;return this.activeScript?null!==(e=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==e?e:{}:null}async setScriptSettings(e){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=e,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(e,t){if(!(e&&e instanceof obsidian_module.TFile))return null;if(!this.targetView)return null;const A=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return A.openFile(e,null!=t?t:{active:!0}),A}measureText(e){var t,A;const i=_measureText(e,this.style.fontSize,this.style.fontFamily,getDefaultLineHeight(this.style.fontFamily));return{width:null!==(t=i.w)&&void 0!==t?t:0,height:null!==(A=i.h)&&void 0!==A?A:0}}async getOriginalImageSize(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!e||"image"!==e.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const A=this.targetView.excalidrawData.getFile(e.fileId);if(!A)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const i="dark"===this.getExcalidrawAPI().getAppState().theme,n=A.getImage(i);return await getImageSize(n)}verifyMinimumPluginVersion(e){return verifyMinimumPluginVersion(e)}isExcalidrawView(e){return e instanceof ExcalidrawView}selectElementsInView(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","selectElementsInView()");if(!e||0===e.length)return;const A=this.getExcalidrawAPI();if("string"==typeof e[0]){const t=this.getViewElements().filter((t=>e.includes(t.id)));A.selectElements(t)}else A.selectElements(e)}generateElementId(){return nanoid()}cloneElement(e){const t=JSON.parse(JSON.stringify(e));return t.id=nanoid(),t}moveViewElementToZIndex(e,t){var A;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((t=>t.id===e));if(0===a.length)return void errorMessage(`Element (id: ${e}) not found`,"moveViewElementToZIndex");if(t>=n.length)return void i.bringToFront(a);if(t<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(t,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(e){const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}rgbToHexString(e){return O$1({r:e[0],g:e[1],b:e[2]}).stringHEX({alpha:!1})}hslToRgb(e){const t=O$1({h:e[0],s:e[1],l:e[2]});return[t.red,t.green,t.blue]}rgbToHsl(e){const t=O$1({r:e[0],g:e[1],b:e[2]});return[t.hue,t.saturation,t.lightness]}colorNameToHex(e){return COLOR_NAMES.has(e.toLowerCase().trim())?COLOR_NAMES.get(e.toLowerCase().trim()):e.trim()}getCM(e){if(e)return"string"==typeof e&&(e=this.colorNameToHex(e)),O$1(e);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}importSVG(e){const t=svgToExcalidraw(e);return t.hasErrors?(new obsidian_module.Notice(`There were errors while parsing the given SVG:\n${[...t.errors].map((e=>e.innerHTML))}`),!1):(this.copyViewElementsToEAforEditing(t.content),!0)}}async function initExcalidrawAutomate(e){await initFonts();const t=new ExcalidrawAutomate(e);return window.ExcalidrawAutomate=t,t}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(e){const t=[],[A,i]=e[0];for(let n=0;n-1||t.search("excalidraw-plugin: locked\n")>-1;await r.loadData(t,c,l?TextMode.parsed:TextMode.raw);let h=t.search("# Text Elements\n");-1==h&&(h=t.search("# Drawing\n"));let u=r.scene;A&&await i.loadSceneFiles(r,(e=>{if(e&&0!==e.length){for(const t of e)t.hasSVGwithBitmap&&(d=!0),r.scene.files[t.id]={mimeType:t.mimeType,id:t.id,dataURL:t.dataURL,created:t.created};u=scaleLoadedImage(r.scene,e).scene}}),n);let g=u.elements;if(o.hasGroupref){const t=o.hasSectionref?getTextElementsMatchingQuery(u.elements,["# "+o.sectionref],!0):u.elements.filter((e=>e.id===o.blockref));t.length>0&&(g=e.ea.getElementsInTheSameGroupWithElement(t[0],u.elements))}if(o.hasFrameref){const t=u.elements.filter((e=>e.id===o.blockref));1===t.length&&(g=e.ea.getElementsInFrame(t[0],u.elements))}return o.hasTaskbone&&(g=g.filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!e.isExcalidrawFile(null===(A=r.getFile(t.fileId))||void 0===A?void 0:A.file)}))),{elements:a?updateElementLinksToObsidianLinks({elements:g,hostFile:c}):g,appState:u.appState,frontmatter:t.substring(0,h),files:u.files,hasSVGwithBitmap:d}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:d}}async function createPNG(e=void 0,t=1,A,i,n=void 0,a=void 0,r=void 0,s=[],o,l,c,d){var h,u,g,p,m,w,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const E=e?await getTemplate(o,e,!0,i,l):null;let B=null!==(h=null==E?void 0:E.elements)&&void 0!==h?h:[];B=B.concat(s);const b=null!=d?d:{};return(null==E?void 0:E.files)&&Object.values(E.files).forEach((e=>{e.dataURL.startsWith("http")||(b[e.id]=e)})),await getPNG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:B,appState:{theme:null!==(g=null!=n?n:null===(u=null==E?void 0:E.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(m=null===(p=null==E?void 0:E.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==m?m:r},files:b},{withBackground:null!==(w=null==A?void 0:A.withBackground)&&void 0!==w?w:o.settings.exportWithBackground,withTheme:null!==(f=null==A?void 0:A.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,t)}const updateElementLinksToObsidianLinks=({elements:e,hostFile:t})=>e.map((e=>{if("embeddable"!==e.type&&e.link&&e.link.startsWith("[")){const A=REGEX_LINK.getResList(e.link)[0];if(!(null==A?void 0:A.value))return e;let i=REGEX_LINK.getLink(A);if(i.search("#")>-1&&(i=getLinkParts(i,t).path),i.match(REG_LINKINDEX_INVALIDCHARS))return e;const n=app.metadataCache.getFirstLinkpathDest(i,t.path);if(!n)return e;const a=app.getObsidianUrl(n),r=cloneElement(e);return r.link=a,r}return e}));function addFilterToForeignObjects(e){e.querySelectorAll("foreignObject").forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))}async function createSVG(e=void 0,t=!1,A,i,n=void 0,a=void 0,r=void 0,s=[],o,l,c,d,h=!1){var u,g,p,m,w,f,E;i||(i=new EmbeddedFilesLoader(o));const B=e?await getTemplate(o,e,!0,i,l,h):null;let b=null!==(u=null==B?void 0:B.elements)&&void 0!==u?u:[];b=b.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const v=null!=d?d:{};(null==B?void 0:B.files)&&Object.values(B.files).forEach((e=>{v[e.id]=e}));const C=null!==(p=null!=n?n:null===(g=null==B?void 0:B.appState)||void 0===g?void 0:g.theme)&&void 0!==p?p:a,y=null!==(m=null==A?void 0:A.withTheme)&&void 0!==m?m:o.settings.exportWithTheme,F=await getSVG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:b,appState:{theme:C,viewBackgroundColor:null!==(f=null===(w=null==B?void 0:B.appState)||void 0===w?void 0:w.viewBackgroundColor)&&void 0!==f?f:r},files:v},{withBackground:null!==(E=null==A?void 0:A.withBackground)&&void 0!==E?E:o.settings.exportWithBackground,withTheme:y},c);y&&"dark"===C&&addFilterToForeignObjects(F);const x=getEmbeddedFilenameParts(e);if(!x.hasGroupref&&!x.hasFrameref&&(x.hasBlockref||x.hasSectionref)){let e=x.hasSectionref?getTextElementsMatchingQuery(b,["# "+x.sectionref],!0):b.filter((e=>e.id===x.blockref));if(e.length>0){const t=e[0].containerId;t&&(e=e.concat(b.filter((e=>e.id===t))));const A=o.ea.getBoundingBox(e),i=o.ea.getBoundingBox(b);F.viewBox.baseVal.x=A.topX-i.topX,F.viewBox.baseVal.y=A.topY-i.topY,F.viewBox.baseVal.width=A.width+2*c,F.viewBox.baseVal.height=A.height+2*c}}return(null==B?void 0:B.hasSVGwithBitmap)&&F.setAttribute("hasbitmap","true"),t?embedFontsInSVG(F,o):F}function estimateLineBound(e){let t=1/0,A=1/0,i=-1/0,n=-1/0;for(const[a,r]of e)t=Math.min(t,a),A=Math.min(A,r),i=Math.max(i,a),n=Math.max(n,r);return[t,A,i,n]}function estimateBounds(e){const t=getCommonBoundingBox(e);return[t.minX,t.minY,t.maxX,t.maxY]}function repositionElementsToCursor(e,t,A=!1,i){const[n,a,r,s]=estimateBounds(e);let[o,l]=[0,0];return[o,l]=A?[t.x-(n+r)/2,t.y-(a+s)/2]:[t.x-n,t.y-a],e.forEach((e=>{e.x=e.x+o,e.y=e.y+l})),restore({elements:e},null,null).elements}function errorMessage(e,t){switch(e){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:t,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:t,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:t,message:null!=e?e:"unknown error"})}}const insertLaTeXToView=e=>{const t=e.plugin.app,A=e.plugin.ea;new Prompt(t,t$d("ENTER_LATEX"),e.plugin.settings.latexBoilerplate,"\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async t=>{t&&(A.reset(),await A.addLaTex(0,0,t),A.setView(e),A.addElementsToView(!0,!1,!0))}))},search=async e=>{const t=e.plugin.ea;t.reset(),t.setView(e);const A=t.getViewElements().filter((e=>"text"===e.type||"frame"===e.type));if(0===A.length)return;let i=await ScriptEngine.inputPrompt(e,e.plugin,e.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((e=>0!==e.length))),t.targetView.selectElementsMatchingQuery(A,r)},getTextElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"text"===e.type&&t.some((t=>{if(A){const A=e.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return e.rawText.toLowerCase().replaceAll("\n"," ").trim().match(t.toLowerCase())})))):[],getFrameElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"frame"===e.type&&t.some((t=>{if(A){const A=e.name.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return(e.name?e.name.toLowerCase().replaceAll("\n"," ").trim():"").match(t.toLowerCase())})))):[],cloneElement=e=>{const t=JSON.parse(JSON.stringify(e));return t.version=e.version+1,t.updated=Date.now(),t.versionNonce=Math.floor(1e9*Math.random()),t},verifyMinimumPluginVersion=e=>PLUGIN_VERSION===e||isVersionNewerThanOther(PLUGIN_VERSION,e),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian_module.Modal{constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian_module.request({url:URL$1});if(!e)return new obsidian_module.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian_module.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian_module.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function r(e){var t,A,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.plugin.saveSettings();const e=this.plugin.settings.customPens[this.pen],t=this.view.excalidrawAPI;setPen(e,t),t.setActiveTool({type:"freedraw"})}}async createForm(){const e=e=>{let t="";if(COLOR_NAMES.has(e))return[COLOR_NAMES.get(e),t];const A=(new Option).style;if(A.color=e,A.color){const e=A.color.match(/^[^\d]*(\d*)[^\d]*(\d*)[^\d]*(\d*)[^\d]*([\d\.]*)?/);return e?(t=e[4]?(Math.round(255*parseFloat(e[4]))<<0).toString(16).padStart(2,"0"):"",[`#${(parseInt(e[1])<<0).toString(16).padStart(2,"0")}${(parseInt(e[2])<<0).toString(16).padStart(2,"0")}${(parseInt(e[3])<<0).toString(16).padStart(2,"0")}`,t]):[null,t]}return[null,t]},t=this.plugin.settings.customPens[this.pen],A=this.contentEl;let i,n,a,r,s;A.createEl("h1",{text:"Pen settings"}),new obsidian_module.Setting(A).setName("Pen type").setDesc("Select type of pen").addDropdown((e=>{e.addOption("default","Excalidraw Default").addOption("highlighter","Highlighter").addOption("finetip","Fine tip pen").addOption("fountain","Fountain pen").addOption("marker","Marker with Outline").addOption("thick-thin","Mindmap Thick-Thin").addOption("thin-thick-thin","Mindmap Thin-Thick-Thin").setValue(t.type).onChange((e=>{this.dirty=!0,t.type=e}))})).addButton((e=>e.setButtonText("Apply").onClick((()=>{this.dirty=!0,t.strokeColor=PENS[t.type].strokeColor,t.backgroundColor=PENS[t.type].backgroundColor,t.fillStyle=PENS[t.type].fillStyle,t.strokeWidth=PENS[t.type].strokeWidth,t.roughness=PENS[t.type].roughness,t.penOptions=Object.assign({},PENS[t.type].penOptions),A.empty(),this.createForm()})))),i=new obsidian_module.Setting(A).setName(fragWithHTML(t.freedrawOnly?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")).setDesc(fragWithHTML('"All shapes" means that if for example, you select a blue pen with dashed fill and then switch to a different tool (e.g. to a line, a circle, an arrow - i.e. not the freedraw tool), those will all have the same blue line and dashed fill.
"Only applies to the freedraw line" means that if for example you are writing black text, and you select a custom pen (e.g. a yellow highlighter), then after using the highlighter you switch to another tool, the previous settings (e.g. black stroke color) will apply to the new shape.')).addToggle((e=>e.setValue(t.freedrawOnly).onChange((e=>{this.dirty=!0,i.setName(fragWithHTML(e?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")),t.freedrawOnly=e}))));let o,l,c,d,h,u,g,[p,m]=e(t.strokeColor),w=!1;s=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.strokeColor)?"Stroke color: Preset color":"Stroke color: Current")).setDesc(fragWithHTML("Use current stroke color of the canvas, or set a specific preset color for the pen")).addToggle((A=>A.setValue(!Boolean(t.strokeColor)).onChange((A=>{this.dirty=!0,n.settingEl.style.display=A?"none":"",s.setName(fragWithHTML(A?"Stroke color: Current":"Stroke color: Preset color")),A?delete t.strokeColor:(r.getValue()||([p,m]=e("black"),a.setValue(p),r.setValue("black")),t.strokeColor=r.getValue())})))),n=new obsidian_module.Setting(A).setName("Select stroke color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),s=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemStrokeColor)&&void 0!==i?i:n.currentItemStrokeColor;[p,m]=e(s),t.strokeColor=s,this.dirty=!0,r.setValue(s),w=!0,a.setValue(p)})))).addText((A=>{r=A,A.setValue(t.strokeColor).onChange((A=>{w=!0,this.dirty=!0,t.strokeColor=A,[p,m]=e(A),p&&a.setValue(p)}))})).addColorPicker((e=>{a=e,e.setValue(null!=p?p:"#000000").onChange((e=>{w?w=!1:(this.dirty=!0,t.strokeColor=e+m,r.setValue(e+m))}))})),n.settingEl.style.display=Boolean(t.strokeColor)?"":"none";let[f,E]=e(t.backgroundColor);o=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.backgroundColor)?"Background color: Preset color":"Background color: Current")).setDesc(fragWithHTML("Toggle to use the current background color of the canvas; or a preset color")).addToggle((A=>A.setValue(!Boolean(t.backgroundColor)).onChange((A=>{this.dirty=!0,o.setName(fragWithHTML(A?"Background color: Current":"Background color: Preset color")),c.settingEl.style.display=A?"none":"",l.settingEl.style.display=A||"transparent"===t.backgroundColor?"none":"",A?delete t.backgroundColor:(h.getValue()||([f,E]=e("black"),d.setValue(f),h.setValue("black")),u.setValue(!1))})))),c=new obsidian_module.Setting(A).setName(fragWithHTML("transparent"===t.backgroundColor?"Background: Transparent":"Color: Preset color")).setDesc("Background has color or is transparent").addToggle((e=>{u=e,e.setValue("transparent"===t.backgroundColor).onChange((e=>{this.dirty=!0,l.settingEl.style.display=e?"none":"",g.settingEl.style.display=e?"none":"",c.setName(fragWithHTML(e?"Background: Transparent":"Color: Preset color")),t.backgroundColor=e?"transparent":d.getValue()}))})),c.settingEl.style.display=Boolean(t.backgroundColor)?"":"none";let B,b,v,C,y,F,x,S,T,I=!1;l=new obsidian_module.Setting(A).setName("Background color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),a=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemBackgroundColor)&&void 0!==i?i:n.currentItemBackgroundColor;[f,E]=e(a),t.backgroundColor=a,this.dirty=!0,h.setValue(a),I=!0,d.setValue(f)})))).addText((A=>{h=A,A.setValue(t.backgroundColor).onChange((A=>{I=!0,this.dirty=!0,t.backgroundColor=A,[f,E]=e(A),f&&d.setValue(f)}))})).addColorPicker((e=>{d=e,e.setValue(null!=f?f:"#000000").onChange((e=>{I?I=!1:(this.dirty=!0,t.backgroundColor=e+E,h.setValue(e+E))}))})),l.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",g=new obsidian_module.Setting(A).setName("Fill Style").addDropdown((e=>e.addOption("","Unset").addOption("dots","Dots (⚠ VERY SLOW performance on large objects!)").addOption("zigzag","Zigzag").addOption("zigzag-line","Zigzag-line").addOption("dashed","Dashed").addOption("hachure","Hachure").addOption("cross-hatch","Cross-hatch").addOption("solid","Solid").setValue(t.fillStyle).onChange((e=>{this.dirty=!0,t.fillStyle=e})))),g.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",B=new obsidian_module.Setting(A).setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`)).setDesc("Line sloppiness of the shape fill pattern").addSlider((e=>e.setLimits(-.5,3,.5).setValue(null===t.roughness?-.5:t.roughness).onChange((e=>{this.dirty=!0,t.roughness=-.5===e?null:e,B.setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`))})))),b=new obsidian_module.Setting(A).setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`)).addSlider((e=>e.setLimits(0,5,.5).setValue(t.strokeWidth).onChange((e=>{this.dirty=!0,t.strokeWidth=e,b.setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`))})))),new obsidian_module.Setting(A).setName("Highlighter pen?").addToggle((e=>e.setValue(t.penOptions.highlighter).onChange((e=>{this.dirty=!0,t.penOptions.highlighter=e})))),new obsidian_module.Setting(A).setName("Pressure sensitve pen?").setDesc(fragWithHTML("toggle on: pressure sensitive
toggle off: constant pressure")).addToggle((e=>e.setValue(!t.penOptions.constantPressure).onChange((e=>{this.dirty=!0,t.penOptions.constantPressure=!e,v.settingEl.style.display=t.penOptions.constantPressure?"none":""})))),t.penOptions.hasOutline&&0===t.penOptions.outlineWidth&&(t.penOptions.outlineWidth=.5,this.dirty=!0),!t.penOptions.hasOutline&&t.penOptions.outlineWidth>0&&(t.penOptions.outlineWidth=0,this.dirty=!0),C=new obsidian_module.Setting(A).setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`)).setDesc("If the stroke has an outline, this will mean the stroke color is the outline color, and the background color is the pen stroke's fill color. If the pen does not have an outline then the pen color is the stroke color. The Fill Style setting applies to the fill style of the enclosed shape, not of the line itself. The line can only have solid fill.").addSlider((e=>e.setLimits(0,8,.5).setValue(t.penOptions.outlineWidth).onChange((e=>{this.dirty=!0,t.penOptions.outlineWidth=e,t.penOptions.hasOutline=e>0,C.setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`))})))),A.createEl("h2",{text:"Perfect Freehand settings"}),A.createEl("p").innerHTML='Read the Perfect Freehand documentation following this link.',y=new obsidian_module.Setting(A).setName(fragWithHTML(`Thinnning ${t.penOptions.options.thinning}`)).setDesc(fragWithHTML("The effect of pressure on the stroke's size.
To create a stroke with a steady line, set the thinning option to 0.
To create a stroke that gets thinner with pressure instead of thicker, use a negative number for the thinning option.")).addSlider((e=>e.setLimits(-1,1,.05).setValue(t.penOptions.options.thinning).onChange((e=>{this.dirty,y.setName(fragWithHTML(`Thinnning ${e}`)),t.penOptions.options.thinning=e})))),F=new obsidian_module.Setting(A).setName(fragWithHTML(`Smoothing ${t.penOptions.options.smoothing}`)).setDesc(fragWithHTML("How much to soften the stroke's edges.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.smoothing).onChange((e=>{this.dirty,F.setName(fragWithHTML(`Smoothing ${e}`)),t.penOptions.options.smoothing=e})))),x=new obsidian_module.Setting(A).setName(fragWithHTML(`Streamline ${t.penOptions.options.streamline}`)).setDesc(fragWithHTML("\tHow much to streamline the stroke.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.streamline).onChange((e=>{this.dirty,x.setName(fragWithHTML(`Streamline ${e}`)),t.penOptions.options.streamline=e})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.easing=e})))),v=new obsidian_module.Setting(A).setName("Simulate Pressure").setDesc("Whether to simulate pressure based on velocity.").addDropdown((e=>e.addOption("true","Always").addOption("false","Never").addOption("","Yes for mouse, No for pen").setValue(!0===t.penOptions.options.simulatePressure?"true":!1===t.penOptions.options.simulatePressure?"false":"").onChange((e=>{switch(this.dirty=!0,e){case"true":t.penOptions.options.simulatePressure=!0;break;case"false":t.penOptions.options.simulatePressure=!1;break;default:delete t.penOptions.options.simulatePressure}})))),v.settingEl.style.display=t.penOptions.constantPressure?"none":"",A.createEl("h3",{text:"Start"}),A.createEl("p",{text:"Tapering options for the start of the line."}),new obsidian_module.Setting(A).setName("Cap Start").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.start.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.start.cap=e})))),S=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.start.taper?151:t.penOptions.options.start.taper).onChange((e=>{this.dirty,t.penOptions.options.start.taper=151===e||e,S.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.start.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.start.easing=e})))),A.createEl("h3",{text:"End"}),A.createEl("p",{text:"Tapering options for the end of the line."}),new obsidian_module.Setting(A).setName("Cap End").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.end.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.end.cap=e})))),T=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.end.taper?151:t.penOptions.options.end.taper).onChange((e=>{this.dirty,t.penOptions.options.end.taper=151===e||e,T.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.end.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.end.easing=e}))))}}var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const toKebabCase=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),createLucideIcon=(e,t)=>{const A=React.forwardRef((({color:A="currentColor",size:i=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:r,...s},o)=>{return React.createElement("svg",{ref:o,...defaultAttributes,width:i,height:i,stroke:A,strokeWidth:a?24*Number(n)/Number(i):n,className:`lucide lucide-${l=e,l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...t.map((([e,t])=>React.createElement(e,t))),...(Array.isArray(r)?r:[r])||[]]);var l}));return A.displayName=`${e}`,A};var createLucideIcon$1=createLucideIcon;const Globe=createLucideIcon$1("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",key:"nb9nel"}]]),RotateCcw=createLucideIcon$1("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),Scan=createLucideIcon$1("Scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),ICONS={ExportImage:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("g",{strokeWidth:"1.25"},React__namespace.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),React__namespace.createElement("path",{d:"M15 8h.01"}),React__namespace.createElement("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),React__namespace.createElement("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),React__namespace.createElement("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),React__namespace.createElement("path",{d:"M19 16v6"}),React__namespace.createElement("path",{d:"M22 19l-3 3l-3 -3"}))),Reload:React__namespace.createElement(RotateCcw,null),Globe:React__namespace.createElement(Globe,null),ZoomToSelectedElement:React__namespace.createElement(Scan,null),ZoomToSection:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"6",y:"18",fontSize:"22px"},"#")),ZoomToBlock:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"1",y:"18",fontSize:"22px"},"#^")),Discord:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"var(--icon-fill-color)",stroke:"none",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"})),Github:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),React__namespace.createElement("path",{d:"M9 18c-4.51 2-5-2-7-2"})),YouTube:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M12 19c-2.3 0-6.4-.2-8.1-.6-.7-.2-1.2-.7-1.4-1.4-.3-1.1-.5-3.4-.5-5s.2-3.9.5-5c.2-.7.7-1.2 1.4-1.4C5.6 5.2 9.7 5 12 5s6.4.2 8.1.6c.7.2 1.2.7 1.4 1.4.3 1.1.5 3.4.5 5s-.2 3.9-.5 5c-.2.7-.7 1.2-1.4 1.4-1.7.4-5.8.6-8.1.6 0 0 0 0 0 0z"}),React__namespace.createElement("polygon",{points:"10 15 15 12 10 9"})),heart:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z"})),twitter:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"})),exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertPDF:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"})),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),ocr:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"m6 18 6-12 6 12"}),React__namespace.createElement("path",{d:"M8 14h8"}),React__namespace.createElement("path",{d:"M3 7V5a2 2 0 0 1 2-2h2"}),React__namespace.createElement("path",{d:"M17 3h2a2 2 0 0 1 2 2v2"}),React__namespace.createElement("path",{d:"M21 17v2a2 2 0 0 1-2 2h-2"}),React__namespace.createElement("path",{d:"M7 21H5a2 2 0 0 1-2-2v-2"})),scriptEngine:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"4"},React__namespace.createElement("g",{transform:"translate(-8,-8)"},React__namespace.createElement("path",{d:"M24.318 37.983c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749m.126-.104c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749",fill:"none",strokeWidth:"2"}),React__namespace.createElement("path",{d:"M81.235 56.502a23.3 23.3 0 0 1-1.46 8.068 20.785 20.785 0 0 1-1.762 3.72 24.068 24.068 0 0 1-5.337 6.26 22.575 22.575 0 0 1-3.449 2.358 23.726 23.726 0 0 1-7.803 2.803 24.719 24.719 0 0 1-8.333 0 24.102 24.102 0 0 1-4.028-1.074 23.71 23.71 0 0 1-3.776-1.729 23.259 23.259 0 0 1-6.369-5.265 23.775 23.775 0 0 1-2.416-3.353 24.935 24.935 0 0 1-1.762-3.72 23.765 23.765 0 0 1-1.083-3.981 23.454 23.454 0 0 1 0-8.173c.252-1.336.604-2.698 1.083-3.956a24.935 24.935 0 0 1 1.762-3.72 22.587 22.587 0 0 1 2.416-3.378c.881-1.048 1.888-2.017 2.946-2.908a24.38 24.38 0 0 1 3.423-2.357 23.71 23.71 0 0 1 3.776-1.73 21.74 21.74 0 0 1 4.028-1.047 23.437 23.437 0 0 1 8.333 0 24.282 24.282 0 0 1 7.803 2.777 26.198 26.198 0 0 1 3.45 2.357 24.62 24.62 0 0 1 5.336 6.287 20.785 20.785 0 0 1 1.762 3.72 21.32 21.32 0 0 1 1.083 3.955c.251 1.336.302 3.405.377 4.086.05.681.05-.68 0 0",fill:"none"}),React__namespace.createElement("path",{d:"M69.404 56.633c-6.596-3.3-13.216-6.6-19.51-9.744m19.51 9.744c-6.747-3.379-13.493-6.758-19.51-9.744m0 0v19.489m0-19.49v19.49m0 0c4.355-2.148 8.71-4.322 19.51-9.745m-19.51 9.745c3.978-1.965 7.93-3.956 19.51-9.745m0 0h0m0 0h0"}))),openLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),openLinkProperties:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8",fill:"var(--icon-fill-color)"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"}))),obsidian:React__namespace.createElement("svg",{focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("defs",null,React__namespace.createElement("radialGradient",{id:"b",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-48 -185 123 -32 179 429.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".4"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"c",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(41 -310 229 30 341.6 351.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".6"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"d",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(57 -261 178 39 190.5 296.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".8"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"e",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-79 -133 153 -90 321.4 464.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".3"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"f",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-29 136 -92 -20 300.7 149.9)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:"0"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".2"})),React__namespace.createElement("radialGradient",{id:"g",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(72 73 -155 153 137.8 225.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"h",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(20 118 -251 43 215.1 273.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".1"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"i",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-162 -85 268 -510 374.4 371.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:".5",stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("filter",{id:"a",x:"80.1",y:"37",width:"351.1",height:"443.2",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},React__namespace.createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),React__namespace.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),React__namespace.createElement("feGaussianBlur",{stdDeviation:"6.5",result:"effect1_foregroundBlur_744_9191"}))),React__namespace.createElement("g",{filter:"url(#a)"},React__namespace.createElement("path",{d:"M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z",fill:"#000",fillOpacity:".3"})),React__namespace.createElement("path",{id:"arrow",d:"M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z",fill:"#6c31e3"}),React__namespace.createElement("path",{d:"M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z",fill:"url(#b)"}),React__namespace.createElement("path",{d:"M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z",fill:"url(#c)"}),React__namespace.createElement("path",{d:"M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z",fill:"url(#d)"}),React__namespace.createElement("path",{d:"M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z",fill:"url(#e)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z",fill:"url(#f)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z",fill:"url(#g)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z",fill:"url(#h)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z",fill:"url(#i)"})),"add-file":React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("line",{x1:"12",x2:"12",y1:"18",y2:"12"}),React__namespace.createElement("line",{x1:"9",x2:"15",y1:"15",y2:"15"})),ExcalidrawSword:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 537.9 1150.7"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m281 988 113-124-77-569H213l-37 574 106 120-4 2"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M279 989c37-42 82-84 116-122M279 990c33-33 59-66 113-123m0-1c-22-191-51-385-78-570m78 570c-31-196-58-391-78-570m-4-1c-30-1-56 1-97-1m102 3c-41 1-81 0-106-3m1 3c-11 185-20 369-30 574m30-574c-7 165-16 330-32 575m2-3c38 47 73 81 97 121m-98-116c39 41 76 86 100 114m0 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#af7e00",strokeLinecap:"round",strokeWidth:"4",d:"M279 614v264m-3-259c2 43 8 211 8 254"}),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#646261",strokeWidth:".5",d:"M209 300c2-1 6-5 9-3m-8 3 7-5m-4 7c-1-1 2-6 5-8m-6 9 5-9m-9 16c3-3 6-11 12-18m-11 14c5-2 10-7 12-10m-13 17c5-7 9-15 15-21m-13 18c4-7 8-10 13-15m-15 17c7-2 14-11 18-20m-19 20c7-3 7-8 21-15m-18 17c6-8 11-15 13-15m-12 17c6-7 11-16 14-23m-19 24 28-22m-25 25 25-25m-24 25c7-7 13-14 23-28m-21 30 18-27m-20 29c4-9 17-13 25-30m-28 30c10-4 17-12 31-30m-28 34c11-9 20-20 26-34m-26 34c10-11 15-20 30-32m-32 40c5-12 16-20 31-40m-31 36c9-10 20-20 34-38m-34 38c11-12 23-22 35-37m-33 39c10-12 24-25 33-40m-34 44c10-12 19-25 42-43m-43 46 41-44m-36 42c9-13 31-32 32-44m-35 46c12-11 22-23 38-45m-43 48c13-14 27-20 47-52m-44 52c16-14 33-35 47-50m-43 51c8-12 25-25 38-50m-40 54 43-56m-43 56c9-9 25-28 46-58m-51 61c13-15 30-30 56-57m-51 58c17-20 35-40 46-57m-47 61c14-16 25-32 48-61m-48 63c15-18 27-27 57-63m-62 64c18-20 33-37 59-63m-51 61c13-19 34-37 48-65m-53 70c16-19 31-34 58-68m-61 69c30-25 48-55 63-67m-63 66c20-17 38-40 66-65m-58 67c23-23 42-48 53-67m-55 71c18-27 42-50 59-74m-60 78c12-21 33-35 64-75m-66 74c20-26 46-53 67-77m-63 80c24-27 43-54 66-77m-70 75c30-31 55-63 68-76m-74 80c15-17 32-32 78-85m-75 86c23-25 48-49 74-83m-66 88c18-21 36-50 66-90m-69 88c21-29 43-55 70-87m-77 93c36-34 59-66 80-93m-79 89c27-25 49-54 81-88m-73 89c23-32 48-61 71-89m-76 94 79-96m-77 96c27-32 58-65 84-90m-89 92c34-38 69-78 86-94m-81 98 84-96m-86 97c32-42 66-82 83-100m-82 100c29-39 62-74 87-98m-92 98c27-24 50-52 93-100m-86 105c34-44 72-83 86-106m-87 105c34-36 63-73 88-104m-91 105c26-24 50-47 94-104m-94 106c27-31 57-67 95-107m-96 109c38-39 71-78 99-112m-97 113 96-110M200 414c35-34 57-67 102-115m-98 110c38-42 77-83 102-112m-96 116c17-27 44-59 96-117m-99 116c23-25 45-55 99-117M205 415c35-45 77-87 110-122M203 418c43-43 81-91 108-122M208 420c44-45 84-97 100-128M205 419l108-123M201 421c40-44 83-86 114-127M203 425c33-41 70-82 111-127M205 425c24-29 50-53 107-131M206 428c38-41 72-83 108-132M205 430l109-132M204 429c30-38 65-73 112-125M204 435c31-35 63-72 111-130M205 433c40-46 76-96 112-132M205 441c20-34 43-60 112-135M200 439c33-34 59-66 116-133M202 436c29-30 56-63 114-129M206 440c27-36 57-70 111-133M201 442c26-31 58-61 120-127M202 445c20-30 46-54 117-131M201 450c41-51 79-93 113-138M204 444c34-40 71-82 113-133M203 450c33-42 68-79 115-135M200 451l120-132M204 449c33-26 65-68 113-132M205 451l115-133M200 458l117-138M201 458l119-135M202 459c35-38 69-74 119-139M205 460c31-42 65-82 113-135M199 467c29-29 52-60 119-135M201 462c32-40 70-80 118-135M203 462c47-52 93-98 116-135M205 466c39-47 76-90 113-139M196 472c35-33 62-58 123-137M199 470c31-36 63-68 120-136M205 469c26-33 56-67 114-132M204 473c42-44 80-91 115-137M197 477c45-52 96-107 121-137M199 477c31-42 67-79 122-137M199 481c44-51 78-97 120-145M200 479c39-46 78-94 123-140M196 485c37-47 76-83 124-144M201 483c31-32 59-68 120-138M204 486c41-56 89-104 115-145M204 485l118-142M196 487c35-29 63-70 124-136M201 491c35-48 73-91 123-143M201 494c36-40 66-71 121-147M204 493c26-38 55-69 120-143M196 498c37-47 79-94 125-147M200 495c38-39 76-82 123-139M200 496c48-48 89-100 127-139M200 499c28-32 55-62 125-146M199 500c26-32 62-68 125-137M198 502c42-47 81-95 125-143M204 506c32-42 60-73 122-145M203 504c37-42 75-90 121-142M202 512c37-51 83-95 121-150M197 507c49-52 92-102 127-140M203 515c45-54 89-106 119-153M203 512c37-45 78-93 121-148M196 518c47-61 104-120 127-145M197 514c32-36 67-72 131-145M198 515c38-40 71-78 127-145M198 518c46-52 89-105 127-149M193 521c47-53 96-111 133-149M199 522c42-47 86-94 127-147M203 523c33-45 71-89 124-149M201 524c44-52 88-104 124-149M199 532c38-55 81-97 127-154M199 527c49-60 104-115 127-148M201 533c28-43 61-84 126-150M199 529c50-53 95-113 128-147M199 533c31-34 63-69 132-148M197 533c43-46 86-97 132-145M195 541l135-157M200 536c42-53 86-105 127-148M198 543c33-41 65-79 128-152M196 540c38-46 75-89 131-150M199 542c40-48 85-93 128-148M198 544c28-36 57-69 130-153M194 549c56-57 105-117 137-150M197 546c37-46 79-89 132-148M197 550c39-44 81-94 131-155M201 552c38-51 80-99 130-155M197 554c30-39 62-72 134-153M195 553c37-40 73-79 136-152M199 555c50-61 102-120 131-150M199 558c43-53 84-102 131-155M196 563c34-40 68-82 132-153M193 561c52-54 99-110 139-154M198 564c29-31 56-66 136-157M198 565c39-45 77-86 131-156M192 566c36-40 73-82 143-153M195 568c28-35 57-71 135-154M195 569c53-55 107-115 138-154M198 569l133-157M196 576c32-34 58-75 133-159M193 572c26-33 57-64 141-154M195 579c54-57 103-117 134-158M198 575c36-40 70-82 133-157M190 579c64-65 117-122 141-155M195 582c39-47 82-94 138-158M196 581c28-38 64-72 138-154M198 583l134-159M191 588c52-61 101-114 145-158M194 588c51-64 102-124 141-160M195 586c41-45 85-97 138-154M197 590c41-47 82-95 135-162M195 594c30-42 63-76 139-162M193 594c32-34 59-68 140-161M195 596c42-50 76-93 141-163M197 594c32-37 65-72 136-160M192 603l142-162M192 598c30-31 59-64 144-157M197 604c43-59 95-112 138-164M195 603c54-64 106-127 139-164M194 605l144-163M192 608c39-42 79-87 146-164M199 612c31-46 66-86 139-170M197 608c38-47 79-93 141-163M190 611c62-65 121-129 149-163M193 614c55-69 111-132 144-164M197 615c33-31 64-68 136-162M196 615c49-57 101-120 141-165M195 620c52-65 115-133 142-162M190 621c35-37 66-73 147-167M195 625c35-47 75-89 141-169M194 621c47-50 89-100 143-166M189 623c58-58 112-122 149-163M192 624l147-165M196 631c36-45 73-91 143-173M195 629c33-46 70-89 142-168M193 633c57-61 112-124 146-170M190 631c55-60 109-121 148-167M192 633c34-34 67-76 149-166M193 633c44-46 82-94 147-167M194 638c30-35 61-66 144-168M191 638c55-63 113-125 148-169M193 643c50-63 108-130 148-172M194 643c38-48 76-95 145-173M193 646c55-67 111-135 151-170M189 646c35-43 71-82 152-170M196 649c46-56 91-113 141-171M193 648c36-41 71-86 147-172M193 651c47-56 96-116 146-171M191 654c60-70 123-141 150-174M196 656c40-56 85-105 143-172M194 653c34-42 71-88 146-171M186 659c44-45 78-87 153-171M188 659c54-62 108-119 153-173M195 661c32-40 64-83 147-173M193 661c37-39 70-81 147-176M192 663c59-67 124-133 151-173M190 666c41-50 83-99 152-174M193 666c61-63 115-131 149-173M193 666c59-70 120-136 150-173M189 672c34-38 62-73 157-177M189 673l155-176M190 676c45-55 91-112 157-177M192 674l150-176M188 675c38-33 71-73 156-172M188 678c55-63 108-120 155-176M191 679c51-56 107-118 151-174M191 680c50-56 102-118 152-179M186 682c45-48 92-97 158-173M189 684c34-35 64-74 155-176M187 690c51-51 87-102 161-185M191 687c48-60 95-114 154-180M185 688c32-34 68-69 157-178M188 692l158-181M190 692c43-47 83-101 152-178M191 696l154-184M188 700c47-56 93-114 161-185M188 698c63-70 128-142 158-181M189 700c40-49 79-94 154-179M190 700c45-47 85-98 157-183M188 703c35-35 67-72 157-181M186 703c44-53 91-106 161-180M192 708c61-69 116-137 155-186M188 708c51-54 96-108 158-184M186 709l161-179M185 710c52-54 101-111 163-182M189 712c54-64 111-131 161-185M191 713l158-183M187 720c43-50 83-97 160-183M187 718l161-184M191 719c49-54 99-112 156-184M189 719c56-63 114-131 159-186M183 723c52-52 97-102 169-186M184 725c49-54 96-104 165-187M186 729c62-67 115-138 160-191M189 728c46-57 95-113 160-189M185 728c57-64 116-127 163-183M185 732c33-43 69-80 165-188M187 730c33-38 75-85 159-188M190 732c48-53 96-112 158-188M184 736c57-52 102-110 169-187M186 737c34-43 72-87 163-187M191 742l157-194M189 740c34-44 67-82 162-189M187 746c51-73 111-134 163-188M185 744c62-77 129-150 166-189M187 744c42-47 87-98 162-188M189 747c58-66 115-134 160-191M186 748c61-74 127-141 163-185M186 748c44-47 92-98 166-190M188 750c38-47 79-98 166-193M188 754c48-58 97-118 164-194M185 756c44-55 90-105 168-189M184 755l167-189M187 759c59-63 114-134 166-193M187 758l164-194M186 762c59-64 119-133 169-193M185 761c54-65 111-127 170-191M186 762c40-41 77-85 168-195M187 766c63-71 127-143 165-197M181 767c57-65 116-128 176-192M183 770l171-192M185 773c70-78 131-153 169-195M186 773c41-53 82-101 169-196M182 778l176-200M181 775l174-193M185 777c66-76 126-148 168-198M185 778c41-50 86-101 171-195M180 785c66-74 131-151 177-198M184 783c46-55 96-110 172-195M184 784c59-61 114-126 174-196M185 784c62-68 122-136 171-197M185 789c43-49 90-97 174-200M182 788l174-197M187 792c39-50 80-100 168-198M184 793l172-202M180 797c41-49 86-98 174-203M183 794c38-45 77-91 173-198M184 801c48-61 103-123 171-205M184 798c44-45 85-94 173-202M179 805c45-53 87-102 179-200M182 802c48-56 94-111 176-198M186 805c55-71 115-146 170-200M184 803l174-202M183 807c55-64 111-130 178-200M180 809c64-76 132-150 179-200M185 810c35-47 74-91 171-200M183 811l174-202M180 812c43-41 87-91 177-201M180 816c41-52 83-100 178-205M187 820c35-49 74-96 175-206M184 818c63-77 133-157 176-205M182 818c43-57 95-109 178-201M180 821c41-48 84-94 180-203M182 822c44-46 83-91 175-205M182 824c54-56 105-115 179-206M181 831c44-54 90-101 181-206M178 828c41-48 83-96 183-204M180 828c74-77 141-155 182-205M184 830c60-68 118-135 178-206M180 835c56-66 117-132 183-207M180 834c66-73 127-143 180-204M183 839c41-51 86-99 181-208M183 838c50-61 103-121 178-208M178 843c63-70 120-139 184-207M179 841l184-209M184 845c71-85 135-166 177-214M182 842c73-79 141-162 179-207M181 849c46-58 95-112 179-211M180 849l182-208M181 849c69-77 140-159 179-208M183 848c63-73 131-150 179-210M181 857c46-64 96-123 182-213M177 854c73-84 146-165 185-211M181 859c59-75 121-141 182-213M182 856c74-85 144-170 183-212M176 858c70-78 139-156 188-208M179 862c70-80 137-157 184-213M182 861c35-38 72-84 181-214M180 864c63-77 127-153 184-215M176 865c62-70 125-142 190-208M179 867l186-211M179 871c67-76 129-151 187-215M180 871c67-77 134-156 184-216M178 871c47-55 95-110 190-214M180 872c57-67 115-135 187-211M184 875c40-44 78-91 179-212M183 874l183-213M183 877c62-72 126-144 182-214M181 875l184-209M187 874c69-76 133-157 179-212M186 876c55-69 112-134 181-211M186 874c60-70 126-136 182-205M185 877c41-45 76-88 183-207M190 883l174-212M189 881c52-62 108-128 176-212M185 878c54-62 113-129 183-201M188 880c55-67 112-131 178-205M192 883c56-70 124-145 176-205M191 882c51-58 97-115 176-208M187 886c50-56 93-108 183-203M189 882l181-201M190 885c66-65 126-134 181-201M192 885c58-68 113-135 176-202M190 884c52-51 101-104 179-200M192 886c47-49 90-101 177-200M193 891c71-79 138-160 176-206M196 890l173-203M198 889c36-44 76-92 170-199M195 889c47-50 90-100 174-196M197 893c55-66 106-121 170-202M199 893c59-66 118-135 171-202M201 895c47-56 90-106 167-201M197 891c46-49 90-98 174-194M203 895c34-38 72-85 170-197M201 895l171-197M203 896c50-55 98-112 167-194M201 895c40-47 85-94 170-192M205 899c57-72 118-149 165-194M203 899c63-69 121-141 167-195M204 899c49-58 104-118 169-193M203 898c45-53 93-104 170-192M203 900c61-63 121-138 169-190M207 900c37-38 72-80 165-193M207 901c45-45 84-94 163-186M206 901c41-50 88-101 168-189M209 904c45-56 88-105 162-190M210 906c37-41 72-81 163-194M210 904c33-39 72-81 162-186M209 905c32-44 72-85 165-188M215 909c51-65 107-131 160-193M213 906c35-38 69-79 160-189M213 906c57-71 123-141 162-184M210 908c36-38 73-79 163-183M216 908c53-64 112-124 158-182M215 910c52-62 106-122 159-186M214 910c41-47 79-94 163-185M213 911l163-182M218 914c45-59 97-119 155-183M218 912l157-184M219 911c39-47 81-94 154-179M217 913l158-180M220 915c50-52 92-109 156-181M219 917c48-60 94-115 158-183M222 920c32-35 64-77 156-179M219 918l159-180M219 920c32-34 66-71 158-179M220 920c61-69 123-143 156-181M222 918l156-174M223 920l155-175M228 922c42-49 80-104 146-174M223 922c64-72 124-144 153-177M224 926c53-60 100-123 156-178M223 925l155-176M227 929c48-61 97-116 152-181M227 926c34-39 66-79 152-176M226 927c48-49 89-95 151-172M226 926c52-55 104-109 152-169M228 927l151-174M231 930c30-41 58-74 149-175M231 930c35-42 71-83 148-171M230 929c50-51 92-102 150-169M230 933c55-65 113-138 151-174M231 934c33-37 63-75 148-176M235 933c37-38 74-81 142-164M232 932l147-166M234 936c26-34 58-76 149-171M235 935c49-59 102-121 146-168M234 932c57-65 111-125 147-163M235 934c44-51 90-103 146-164M240 936c51-58 98-115 142-168M237 937c32-34 64-71 144-166M241 936c42-48 85-100 139-159M238 940c48-52 92-102 143-163M240 943c32-39 62-72 142-165M241 942c38-48 76-92 141-167M244 941c54-57 102-118 137-163M242 941c49-60 100-118 139-159M246 943l139-159M242 943c33-40 68-84 139-162M239 944c45-46 81-88 147-160M244 946l138-161M247 948c52-55 100-111 133-162M244 947c55-57 106-120 140-161M243 944c37-32 65-72 142-154M246 946l138-155M247 952c35-44 68-86 133-157M249 952c49-58 90-109 136-159M250 952l131-151M246 950l137-154M249 954c53-55 99-110 132-158M250 952c39-44 77-87 133-154M250 956c30-31 53-60 132-155M250 955c45-57 94-111 134-150M252 960c34-46 66-87 135-154M253 958l131-154M254 953c34-35 75-72 135-142M254 957c27-35 58-67 132-148M260 960c39-57 82-105 124-150M255 958c32-35 61-68 130-149M257 963l129-147M256 962c41-45 86-97 128-150M262 964c27-42 61-78 127-152M260 964l124-151M258 963c47-49 92-99 130-145M259 964l127-147M259 962c30-29 59-66 126-140M260 965c28-34 55-67 128-147M258 966c53-57 99-107 133-139M260 965c29-30 59-66 127-143M262 968c47-52 100-112 126-146M265 967c34-35 64-73 123-141M265 967c24-33 58-66 120-138M263 970c42-45 83-92 124-141M270 974c43-58 90-108 118-142M269 971c37-40 71-84 119-143M268 975c23-31 54-64 122-139M267 971l124-136M269 978c47-55 97-108 122-141M271 975c40-50 83-98 120-142M272 976c46-50 90-107 119-137M267 977c32-33 59-69 122-136M270 977c34-43 69-80 122-135M273 977c30-34 58-71 117-136M275 981c34-41 61-79 115-139M271 978c46-49 91-103 119-131M275 984c47-47 86-101 119-142M275 981l115-136M277 982c24-29 57-62 112-128M273 980c43-45 83-91 119-131M277 983c39-39 76-81 114-130M276 984c36-42 74-85 113-134M275 988c48-55 94-108 120-131M277 985c27-36 59-67 114-130M282 990c29-31 51-64 112-135M281 985l112-128M276 985c46-51 93-91 113-122M278 989c44-50 89-99 116-127M282 989c46-48 79-90 111-132M284 991c36-47 75-96 108-131"}),React__namespace.createElement("path",{stroke:"#000",d:"M283 989c39-52 86-95 106-127M282 989c38-44 73-85 112-126m-2 1c-27-190-56-380-78-570m79 570c-33-223-64-446-78-568m-1 2c-40 1-79 1-101-6m100 5H210m2-4c-15 208-26 416-31 578m31-576c-14 162-22 325-32 575m0 1c25 33 57 69 96 113m-96-114c29 41 62 76 98 117m2 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#dbc9f3",d:"m325 490-71-1-133 118-5 3-4 4-3 5-3 5-19 127 20 15 19 15 16 16 14 17 12 18 9 18 8 20 6 20 15-4 15-3 13-2 13-2 12-1 11-1 15 1 5 1-4-11-5-20-5-20-3-19-2-20-1-19v-19l2-19 2-18 3-19 4-18 6-18 6-19 6-18 8-18 4-9 9-18 4-8 2-8 3-10 1-10v-12l-5-39"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M325 490s0 0 0 0m0 0s0 0 0 0m0 0-71-1m71 1-71-1m0 0L121 607m133-118L121 607m0 0s0 0 0 0m0 0s0 0 0 0m0 0-5 3m5-3-5 3m0 0-4 4m4-4-4 4m0 0-3 5m3-5-3 5m0 0-3 5m3-5-3 5m0 0L87 751m19-127L87 751m0 0s0 0 0 0m0 0s0 0 0 0m0 0 20 15m-20-15 20 15m0 0 19 15m-19-15 19 15m0 0 16 16m-16-16 16 16m0 0 14 17m-14-17 14 17m0 0 12 18m-12-18 12 18m0 0 9 18m-9-18 9 18m0 0 8 20m-8-20 8 20m0 0 6 20m-6-20 6 20m0 0 15-4m-15 4 15-4m0 0 15-3m-15 3 15-3m0 0 13-2m-13 2 13-2m0 0 13-2m-13 2 13-2m0 0 12-1m-12 1 12-1m0 0 11-1m-11 1 11-1m0 0 15 1m-15-1 15 1m0 0 5 1m-5-1 5 1m0 0-4-11m4 11-4-11m0 0-5-20m5 20-5-20m0 0-5-20m5 20-5-20m0 0-3-19m3 19-3-19m0 0-2-20m2 20-2-20m0 0-1-19m1 19-1-19m0 0v-19m0 19v-19m0 0 2-19m-2 19 2-19m0 0 2-18m-2 18 2-18m0 0 3-19m-3 19 3-19m0 0 4-18m-4 18 4-18m0 0 6-18m-6 18 6-18m0 0 6-19m-6 19 6-19m0 0 6-18m-6 18 6-18m0 0 8-18m-8 18 8-18m0 0 4-9m-4 9 4-9m0 0 9-18m-9 18 9-18m0 0 4-8m-4 8 4-8m0 0 2-8m-2 8 2-8m0 0 3-10m-3 10 3-10m0 0 1-10m-1 10 1-10m0 0v-12m0 12v-12m0 0-5-39m5 39-5-39m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#a887e8",d:"m439 634 10 20 4 24 2 26 3 25 5 25 8 25 9 24 12 24 13 24 8 11 9 12 7 10 2 6 2 6v5l-2 5-2 5-5 8-61 99-8-17-8-16-9-14-9-14-9-12-10-11-10-10-11-10-11-8-11-7-12-6-12-5-13-4-13-3-14-2-6-1h-7l-7-20-5-20-4-20-3-19-1-19-1-19 1-28 2-19 3-18 4-18 5-19 6-18 7-18 8-18 9-19 7-14 7-20 2-21-5-41 114 144"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M439 634s0 0 0 0m0 0s0 0 0 0m0 0 10 20m-10-20 10 20m0 0 4 24m-4-24 4 24m0 0 2 26m-2-26 2 26m0 0 3 25m-3-25 3 25m0 0 5 25m-5-25 5 25m0 0 8 25m-8-25 8 25m0 0 9 24m-9-24 9 24m0 0 12 24m-12-24 12 24m0 0 13 24m-13-24 13 24m0 0 8 11m-8-11 8 11m0 0 9 12m-9-12 9 12m0 0 7 10m-7-10 7 10m0 0 2 6m-2-6 2 6m0 0 2 6m-2-6 2 6m0 0v5m0-5v5m0 0-2 5m2-5-2 5m0 0-2 5m2-5-2 5m0 0-5 8m5-8-5 8m0 0-61 99m61-99-61 99m0 0s0 0 0 0m0 0s0 0 0 0m0 0-8-17m8 17-8-17m0 0-8-16m8 16-8-16m0 0-9-14m9 14-9-14m0 0-9-14m9 14-9-14m0 0-9-12m9 12-9-12m0 0-10-11m10 11-10-11m0 0-10-10m10 10-10-10m0 0-11-10m11 10-11-10m0 0-11-8m11 8-11-8m0 0-11-7m11 7-11-7m0 0-12-6m12 6-12-6m0 0-12-5m12 5-12-5m0 0-13-4m13 4-13-4m0 0-13-3m13 3-13-3m0 0-14-2m14 2-14-2m0 0-6-1m6 1-6-1m0 0h-7m7 0h-7m0 0-7-20m7 20-7-20m0 0-5-20m5 20-5-20m0 0-4-20m4 20-4-20m0 0-3-19m3 19-3-19m0 0-1-19m1 19-1-19m0 0-1-19m1 19-1-19m0 0 1-28m-1 28 1-28m0 0 2-19m-2 19 2-19m0 0 3-18m-3 18 3-18m0 0 4-18m-4 18 4-18m0 0 5-19m-5 19 5-19m0 0 6-18m-6 18 6-18m0 0 7-18m-7 18 7-18m0 0 8-18m-8 18 8-18m0 0 9-19m-9 19 9-19m0 0 7-14m-7 14 7-14m0 0 7-20m-7 20 7-20m0 0 2-21m-2 21 2-21m0 0-5-41m5 41-5-41m0 0 114 144M325 490l114 144m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#6342a0",d:"m190 890 6 29 2 29-1 27-2 14-6 27-8 26-11 25-13 25-7 12 28 1 27 1 27 3 27 4 27 5 25 6 26 7 25 9 12 4 12 2 11-1 10-3 9-5 8-9 6-8 8-18 25-85-10-22-11-20-11-18-13-16-13-14-15-13-15-11-17-9-17-7-19-5-19-3-21-2h-21l-23 3-24 4-24 6"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M190 890s0 0 0 0m0 0s0 0 0 0m0 0 6 29m-6-29 6 29m0 0 2 29m-2-29 2 29m0 0-1 27m1-27-1 27m0 0-2 14m2-14-2 14m0 0-6 27m6-27-6 27m0 0-8 26m8-26-8 26m0 0-11 25m11-25-11 25m0 0-13 25m13-25-13 25m0 0-7 12m7-12-7 12m0 0 28 1m-28-1 28 1m0 0 27 1m-27-1 27 1m0 0 27 3m-27-3 27 3m0 0 27 4m-27-4 27 4m0 0 27 5m-27-5 27 5m0 0 25 6m-25-6 25 6m0 0 26 7m-26-7 26 7m0 0 25 9m-25-9 25 9m0 0 12 4m-12-4 12 4m0 0 12 2m-12-2 12 2m0 0 11-1m-11 1 11-1m0 0 10-3m-10 3 10-3m0 0 9-5m-9 5 9-5m0 0 8-9m-8 9 8-9m0 0 6-8m-6 8 6-8m0 0 8-18m-8 18 8-18m0 0 25-85m-25 85 25-85m0 0s0 0 0 0m0 0s0 0 0 0m0 0-10-22m10 22-10-22m0 0-11-20m11 20-11-20m0 0-11-18m11 18-11-18m0 0-13-16m13 16-13-16m0 0-13-14m13 14-13-14m0 0-15-13m15 13-15-13m0 0-15-11m15 11-15-11m0 0-17-9m17 9-17-9m0 0-17-7m17 7-17-7m0 0-19-5m19 5-19-5m0 0-19-3m19 3-19-3m0 0-21-2m21 2-21-2m0 0h-21m21 0h-21m0 0-23 3m23-3-23 3m0 0-24 4m24-4-24 4m0 0-24 6m24-6-24 6m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#390f8c",d:"m87 751 25 19 22 20 20 22 16 24 12 26 9 28 6 27 2 26v27l-4 26-6 26-10 27-13 27-17 26L21 976l-8-12-7-11-1-9v-11l3-9 10-22 69-151"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M87 751s0 0 0 0m0 0s0 0 0 0m0 0 25 19m-25-19 25 19m0 0 22 20m-22-20 22 20m0 0 20 22m-20-22 20 22m0 0 16 24m-16-24 16 24m0 0 12 26m-12-26 12 26m0 0 9 28m-9-28 9 28m0 0 6 27m-6-27 6 27m0 0 2 26m-2-26 2 26m0 0v27m0-27v27m0 0-4 26m4-26-4 26m0 0-6 26m6-26-6 26m0 0-10 27m10-27-10 27m0 0-13 27m13-27-13 27m0 0-17 26m17-26-17 26m0 0L21 976m128 126L21 976m0 0s0 0 0 0m0 0s0 0 0 0m0 0-8-12m8 12-8-12m0 0-7-11m7 11-7-11m0 0-1-9m1 9-1-9m0 0v-11m0 11v-11m0 0 3-9m-3 9 3-9m0 0 10-22M8 924l10-22m0 0 69-151M18 902l69-151m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#CECDCC",strokeLinecap:"round",strokeWidth:"10",d:"M91 753s0 0 0 0m0 0s0 0 0 0m0 0 21 16m-21-16 21 16m0 0 18 17m-18-17 18 17m0 0 16 16m-16-16 16 16m0 0 13 17m-13-17 13 17m0 0 11 17m-11-17 11 17m0 0 8 17m-8-17 8 17m0 0 7 18m-7-18 7 18m0 0 6 18m-6-18 6 18m0 0 15-4m-15 4 15-4m0 0 14-2m-14 2 14-2m0 0 14-2m-14 2 14-2m0 0 13-2m-13 2 13-2m0 0 12-1m-12 1 12-1m0 0 11-1m-11 1 11-1m0 0h10m-10 0h10m0 0h8m-8 0h8m0 0-6-21m6 21-6-21m0 0-6-20m6 20-6-20m0 0-4-20m4 20-4-20m0 0-3-20m3 20-3-20m0 0-1-19m1 19-1-19m0 0-1-19m1 19-1-19m0 0 1-19m-1 19 1-19m0 0 2-18m-2 18 2-18m0 0 2-19m-2 19 2-19m0 0 4-18m-4 18 4-18m0 0 5-18m-5 18 5-18m0 0 6-18m-6 18 6-18m0 0 7-18m-7 18 7-18m0 0 7-18m-7 18 7-18m0 0 9-18m-9 18 9-18m0 0 9-19m-9 19 9-19m0 0 8-22m-8 22 8-22m0 0 2-10m-2 10 2-10"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m154 297-20-26 25-24 207-6 19 26-27 25-205 1-1-3"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"m156 295-20-23m20 24c-7-11-16-19-22-27m6 1c1-11 10-13 21-21m-25 18c6-6 10-11 25-23m0 4c64-2 125-5 200-5m-198 3c64-1 133-4 201-2m-4 0c7 5 16 16 24 23m-20-25c5 6 7 12 20 23m-1 2c-2 8-12 14-18 25m18-24c-7 6-13 13-20 24m-4 1c-82-4-161-3-203 3m207-5c-56 1-110 0-206 4m-1-1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m275 618 12-35 6-12 11-14 23-18 21-16-29-185-5-43-3-5-5-1-45 4-1 14 17 311"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M277 617c2-5 4-24 9-34 4-10 10-19 17-26 7-8 18-13 23-17l10-8c3-3 9-4 11-9 1-5 3 10-2-20l-26-163c-5-31-2-20-3-27l-3-11c-1-4 0-10-2-12s-6 0-11 0l-15 2h-14c-4 0-8-2-10 0s0 7 0 14v30l10 205c3 38 3 13 3 26l1 50m1-1c2-5 7-22 12-31 5-10 11-20 17-27 7-7 17-13 22-17l7-9c4-3 12-5 14-10s3 10-2-20l-28-162c-5-31-2-19-3-25l-1-13c-1-4-1-9-3-11s-5-1-9-1l-17 1h-15c-5 0-10-2-12 0-1 2 3 5 3 13l2 32 10 202c2 39 0 16 0 29l2 49"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#bcb9b8",strokeWidth:".5",d:"m259 300 6-5m-6 5 7-4m-4 7 3-8m-3 8 4-8m-7 10c4-3 6-3 12-9m-12 10 13-11m-11 13c5-4 5-8 10-14m-8 14 8-14m-11 17c6-4 12-9 15-15m-16 16 17-17m-13 20c1-3 7-8 12-19m-13 17c6-5 8-10 15-17m-15 21c5-9 14-16 21-21m-23 22 22-24m-18 24 19-25m-19 26 18-24m-21 27c8-7 18-19 25-27m-27 28 29-28m-24 29c4-5 13-13 24-28m-25 30 25-32m-28 36c10-10 17-19 33-34m-34 34c8-9 15-17 35-35m-30 37 29-38m-30 38 29-37m-32 38c12-10 24-24 37-39m-36 40 38-40m-37 43c13-13 22-27 36-43m-35 43 36-42m-38 45c11-11 24-24 42-46m-42 46 44-46m-41 50c16-18 29-37 40-52m-40 51c14-19 28-35 41-49m-43 51 46-51m-46 51 45-50m-41 53 42-54m-44 55 45-54m-49 58c15-14 24-29 55-57m-54 56c13-14 26-27 51-57m-46 61c17-23 35-45 49-60m-49 58c11-16 24-32 46-59m-51 64 55-60m-54 60 52-59m-51 61c14-19 32-36 50-61m-48 60 49-60m-52 65c10-14 24-25 55-59m-55 59 54-60m-50 59c13-13 25-28 51-59m-52 62 50-62m-54 66c14-16 27-29 53-60m-53 59c18-21 35-40 54-58m-49 61 50-60m-51 59 50-61m-52 65c12-16 23-27 52-61m-53 60c15-15 29-32 54-60m-49 63 51-63m-52 64 51-63m-55 65 55-60m-54 59c15-15 29-31 53-59m-51 61 52-61m-52 62 53-61m-53 65c14-18 30-36 53-62m-55 62 56-60m-51 61 49-63m-50 64c11-15 23-29 51-62m-53 65c15-18 34-38 55-60m-56 61c15-20 34-39 55-60m-52 61c11-10 20-26 52-63m-53 64c12-15 24-31 52-62m-53 67c11-17 26-35 54-64m-55 63 54-61m-50 63c21-26 41-50 52-61m-54 61 52-63m-55 67c20-26 44-50 57-61m-56 61c21-25 44-50 56-62m-52 64 51-63m-52 64 52-65m-56 65c20-17 39-40 55-60m-54 62 56-63m-53 64 53-64m-54 65 54-64m-53 67c10-14 22-29 55-63m-58 64 57-63m-55 66c20-25 42-52 56-66m-54 65c20-24 39-50 54-64m-57 69c19-23 41-44 56-63m-56 61c18-18 33-37 56-61m-51 62 50-62m-51 63 53-64m-56 68c15-16 31-32 56-64m-57 65c19-23 39-43 58-65m-55 68 56-65m-57 64 55-67m-57 69c20-19 37-43 58-65m-59 66c21-20 38-41 60-64m-57 66c22-26 45-52 59-65m-57 65 54-66m-58 70c23-25 43-44 59-67m-58 66c15-15 27-32 57-64m-56 68c16-16 30-36 57-68m-56 67 56-66m-58 69c19-18 35-40 58-63m-59 63c16-16 28-32 60-65m-55 66 55-66m-56 68 57-68m-62 71c18-17 39-39 62-66m-60 66c16-18 32-37 61-67m-60 71 58-69m-56 68c18-19 33-41 57-69m-59 70c21-19 39-40 62-64m-63 65c25-27 48-53 62-66m-60 70c12-14 25-29 57-71m-56 70 58-70m-60 72c19-22 41-40 59-64m-59 66c19-24 40-45 60-67m-58 68 60-69m-59 71 58-71m-59 72c23-23 46-52 62-67m-65 69 63-68m-60 68c18-18 36-39 60-68m-58 71 57-71m-60 72c14-15 32-34 62-69m-63 71c22-26 45-52 63-70m-60 70c19-20 34-38 61-71m-61 72 61-71m-64 73c23-19 41-40 62-68m-62 70 62-70m-60 72 61-72m-59 72 59-71m-60 74c22-26 45-50 60-71m-63 72 64-70m-61 71c14-14 24-29 63-71m-61 72 59-73m-63 75c23-26 46-52 65-70m-65 71 64-71m-62 75c17-17 33-37 62-75m-60 73 61-73m-64 79 62-71m-63 69 64-71m-60 74c19-23 38-43 60-75m-61 74c19-21 37-43 61-73m-62 79c23-26 46-56 65-76m-67 74 66-72m-64 75c25-26 47-55 65-75m-64 75c17-18 31-36 64-76m-64 78c19-22 38-42 62-72m-64 73c15-17 30-35 66-73m-65 74 64-73m-62 75c14-16 26-34 63-75m-68 76c24-22 44-45 67-69m-65 71 67-73m-64 75 64-76m-64 77 62-77m-66 78c15-13 29-31 68-72m-66 72 67-72m-64 77c13-18 28-31 64-79m-64 78 64-76m-66 77c19-20 37-42 66-71m-67 73 67-74m-62 76c19-26 43-52 62-75m-65 74 66-75m-67 81 66-76m-68 75c27-28 55-58 68-75m-62 78c15-21 30-41 64-78m-67 78 65-78m-67 82c20-21 37-40 69-78m-68 76 67-75m-63 78 65-80m-66 81c12-16 26-32 65-78m-68 81c14-19 32-36 69-79m-70 77c26-26 50-55 69-75m-64 81c14-21 29-38 66-79m-68 77c18-20 33-38 66-80m-66 83c18-22 39-44 66-78m-68 78 69-77m-66 81c21-23 39-48 65-81m-66 81c27-31 50-60 67-81m-70 83c29-29 57-63 72-79m-70 79 70-77m-66 79c13-18 25-35 66-79m-68 78 67-79m-68 82c15-13 28-29 68-76m-68 77 69-78m-66 82 65-81m-67 79c18-18 33-39 69-79m-69 83c18-22 40-48 69-76m-72 77c19-19 36-39 71-79m-68 81c25-31 53-59 69-80m-69 81 69-83m-71 84c15-17 32-34 70-78m-69 79 70-79m-68 84 68-86m-69 84c17-19 30-37 70-82m-70 83 70-79m-72 81c16-17 32-34 72-81m-69 82 69-81m-68 82 69-81m-72 85 71-79m-70 78c21-23 43-46 71-81m-70 83c16-16 33-34 71-84m-71 85 71-82m-74 84 21-18m-19 19 20-21m-19 25c6-7 13-17 20-23m-19 22 18-24m11-13c10-13 23-28 42-45m-43 45c12-16 26-29 43-47m-42 48c11-8 18-20 41-48m-40 49 41-49m-72 87c4-6 9-9 10-13m-11 12 14-11m-10 13 8-15m-9 16 10-14m27-38c13-10 26-27 33-33m-30 34 29-32m-25 34 26-35m-29 35 30-34m-75 87c5-3 7-5 9-8m-8 9c2-4 5-6 10-9m-8 11 7-12m-6 11c1-4 4-7 7-10m42-52 24-21m-24 21 22-23m-20 24c5-3 9-13 18-24m-17 25 19-25m-75 90 8-6m-8 5 8-5m-4 7 4-7m-4 8 3-7m-6 9h3m-3 1 4-1m-1 3v-4m0 4 1-3"}),React__namespace.createElement("path",{stroke:"transparent",d:"M276 614c2-6 5-24 10-33 4-10 11-19 17-26 7-7 17-13 22-17l8-6c4-3 12-5 13-11 2-5 2 9-3-21s-22-128-26-159c-5-30-2-17-3-23l-2-15c0-4 1-8-1-9-3-1-7 1-11 1l-17-2c-4 0-9 3-13 4-3 0-8-4-9-2-2 2-1 6 0 13l2 32 10 198 1 28 1 46m0 1c2-5 5-21 10-31 4-10 11-22 18-29 6-7 17-11 22-14 6-4 7-3 10-6s8-7 10-12c1-5 2 10-2-20l-24-160-4-24-2-15c-1-4 0-6-2-7h-28l-14 2c-3 0-6-2-8 0v12l2 29c1 38 7 163 10 201 2 37 2 11 3 24l-1 50"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"M276 613c1-5 6-23 11-33 5-9 11-17 18-24l19-15 10-9c4-3 11-7 12-12 2-5 4 11-1-19l-27-160c-5-31-1-17-2-24l-2-13c-1-4 0-9-2-10-3-2-7 0-11 0h-16l-14 1c-4 0-10-3-11-1-2 2 3 6 3 13 1 8-2-7-1 32l11 198 2 27 1 48m1 0c2-5 5-21 10-31 5-9 14-17 20-24l18-18 8-6c3-3 10-5 11-11 2-5 3 9-2-22l-25-160c-5-31-2-18-3-24l1-12c-1-4-1-8-3-10h-9l-17-1-15 2c-5 0-10 0-11 2-2 2 0 4 1 11s1-7 3 31l7 198c2 37 2 14 3 27l3 50"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m275 626-20-52-11-9-23-19-13-7-11-3-1-9 15-233v-1h41l6 1v12l4 61 12 260"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"m276 625-12-22c-4-9-5-20-10-28s-12-14-20-20c-7-7-19-15-25-18s-9 1-11-2c-2-4 0-5 0-17l4-55 8-154c1-28-3-13 1-16s13 0 21 0c8 1 23-2 27 1 4 4-2-6-1 18l6 128 12 186m-1 1-9-26c-3-9-8-18-13-26l-19-20c-6-6-17-14-23-18-6-3-9 1-11-3-2-3-1-6-1-18l3-53 9-155c2-28-3-10 0-12 4-3 13-2 21-2s22-2 26 1-1-8 0 17l5 128 14 186"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#000",strokeWidth:".3",d:"M211 291s0 0 0 0m0 0s0 0 0 0m0 3h1m-1 0 1-1m-1 5 3-4m-3 4 2-3m-3 6c3-1 5-5 5-6m-5 7 5-7m-3 11 6-10m-6 9c0-4 4-6 6-9m-8 12c7-3 4-8 8-13m-7 13 12-15m-14 20c5-13 11-15 18-17m-19 13c8-6 15-12 15-17m-16 25c10-8 13-16 21-26m-19 24c3-4 9-11 18-19m-16 19c8-9 15-16 20-24m-23 26c8-6 9-9 23-23m-23 23c8-5 11-9 28-26m-25 31c5-8 10-15 22-27m-23 25c5-2 17-12 29-26m-28 28 24-30m-28 33c7-4 14-17 32-28m-31 32c8-12 20-23 30-36m-25 38c6-14 12-22 25-41m-29 41c10-14 19-25 32-36m-35 42 36-47m-34 44c16-15 31-33 34-42m-37 44c9-11 19-21 42-40m-39 40c15-14 26-29 40-41m-38 47c9-14 22-32 42-49m-45 48c10-11 21-24 40-50m-41 52c19-14 35-33 42-49m-41 49c17-15 29-30 46-51m-47 51c18-11 30-32 53-48m-50 52c10-14 20-23 47-55m-47 56c14-10 20-24 52-54m-53 55c17-15 28-33 50-56m-49 59c13-16 23-28 53-58m-52 57c10-14 25-27 49-59m-54 64c21-18 33-32 56-65m-53 64c16-19 34-38 54-59m-54 64c14-19 32-44 52-64m-53 63c14-16 31-31 54-60m-57 62c17-15 22-27 53-55m-50 55c15-16 28-32 53-57m-55 59c23-18 32-35 53-56m-51 58c12-11 22-26 54-58m-55 60c21-22 41-42 53-59m-53 61c15-14 29-30 55-60m-54 65c8-15 23-30 52-62m-50 59c6-14 20-23 51-62m-52 63c15-11 28-27 50-54m-53 56c21-25 46-46 56-59m-53 64c20-19 38-38 54-62m-54 62c14-16 30-34 51-63m-53 64c22-19 31-39 53-59m-52 60 52-59m-49 65c17-26 37-50 51-63m-56 62c16-17 29-30 57-63m-57 64c16-12 28-31 56-59m-54 62c10-15 21-30 55-65m-60 65c18-17 41-43 62-60m-56 63c18-24 38-48 53-64m-59 64c16-19 36-36 55-64m-49 67c12-17 28-34 54-63m-59 64c21-19 37-38 57-65m-53 65c11-16 25-29 54-62m-54 66c10-11 21-22 51-62m-52 61 56-62m-57 67c13-18 28-35 56-64m-56 63 56-63m-53 69c23-29 39-54 56-64m-60 60c22-24 48-48 59-64m-58 72c25-24 40-57 59-67m-59 64c25-27 46-52 58-67m-61 69c22-22 47-48 55-63m-52 65c22-24 41-50 58-65m-60 68 62-68m-59 66c18-19 35-42 56-65m-58 71 61-64m-61 63 59-65m-57 67 53-64m-55 64c23-21 40-48 59-65m-58 69c22-22 42-43 57-66m-56 68c10-15 20-30 58-66m-61 66c15-14 34-36 56-63m-54 65c14-21 32-40 56-67m-56 66c17-11 31-29 55-65m-56 69c18-21 38-42 57-66m-60 65c19-17 34-33 59-61m-57 63c21-21 39-43 60-66m-59 69c20-20 41-47 59-64m-59 66 58-69m-55 69c11-18 29-35 56-68m-58 72c19-24 39-49 57-68m-56 74c10-22 31-44 54-73m-58 69c24-25 44-49 61-69m-57 76c15-20 30-38 58-70m-63 68 61-70m-57 72c25-25 45-54 58-70m-58 69 60-69m-65 77c12-21 33-33 66-71m-63 68c18-24 38-46 60-72m-58 77c18-20 34-39 60-76m-60 72 58-71m-63 73c21-21 47-45 60-71m-59 74c18-18 36-37 64-71m-61 77c22-27 43-52 59-74m-59 71 59-70m-63 76c16-21 36-42 66-75m-63 71c13-13 25-29 63-71m-66 74c16-15 36-32 67-68m-66 71c23-23 44-46 64-74m-67 77c21-17 39-38 62-74m-60 72 64-72m-65 79c23-31 45-58 64-77m-60 73c16-21 38-41 63-72m-67 80c32-28 54-58 68-75m-64 69c15-20 32-41 61-71m-62 81c15-24 38-45 60-81m-62 79c18-22 35-42 66-74m-63 78c14-23 30-41 60-78m-62 76c15-19 28-35 64-73m-63 72c22-27 44-44 63-70m-65 72 65-75m-66 78c16-15 31-35 68-77m-66 76c23-26 46-54 66-72m-65 77c14-25 37-45 63-74m-64 73c15-17 29-32 64-74m-67 80c22-26 48-59 68-76m-67 75c23-25 46-50 67-76m-62 77c7-10 25-28 59-71m-62 73 65-76m-65 78c16-19 38-41 61-78m-61 79 66-76m-70 79c32-30 56-65 72-80m-67 82c22-29 43-55 66-78m-66 78c22-28 47-62 62-75m-64 76c17-18 32-36 66-77m-65 84c18-29 39-48 63-77m-65 72 68-75m-70 84c21-25 41-54 70-80m-69 76c17-16 33-35 69-76m-68 78c26-27 46-52 69-74m-70 73c24-24 46-49 69-75m-68 84c25-31 50-58 65-78m-66 76 69-81m-69 84c25-24 41-49 73-83m-73 82 70-80m-70 80c21-27 42-49 72-79m-71 83c19-24 41-48 70-80m-69 76c11-9 25-29 71-71m-71 73c23-22 47-49 66-74m-62 75c19-17 33-40 67-74m-67 74c22-23 45-50 63-72m-61 71 62-71m-64 76c14-20 31-39 66-77m-67 74c27-27 46-46 64-71m-61 71c15-17 28-33 62-67m-59 73c22-25 44-55 61-72m-61 71c16-18 30-39 60-71m-62 73c28-28 47-55 65-69m-63 66c23-26 47-50 61-65m-59 69c14-21 30-30 61-64m-59 60c21-23 38-46 54-62m-52 61c10-15 30-32 58-59m-60 61c20-22 39-39 56-61m-52 64c18-22 29-39 50-62m-53 63 56-64m-55 64c19-24 34-42 52-57m-49 55 50-57m-45 59c15-24 37-44 46-55m-49 54c18-19 32-38 51-55m-53 53c17-8 27-18 50-50m-48 54c9-12 22-22 50-55m-49 58c21-25 34-41 51-58m-47 57c7-15 19-25 46-54m-50 57c15-13 24-29 47-57m-43 54c12-11 21-23 46-52m-48 55c22-22 36-39 45-55m-42 55c16-20 29-34 46-53m-44 50c12-13 19-22 46-48m-45 53c10-18 21-28 40-53m-36 49c4-8 14-25 37-43m-42 45 44-46m-39 47c8-16 17-24 39-49m-42 52 39-48m-36 51c13-19 25-29 37-51m-37 48c10-10 16-22 39-47m-40 47c13-6 21-17 40-39m-40 41 40-46m-37 43c15-6 20-20 33-42m-31 47c8-13 15-19 33-43m-33 42c14-12 22-28 32-37m-31 36 35-40m-31 39c7-8 17-17 26-33m-32 35c8-7 17-15 34-36m-31 35c9-8 18-20 35-36m-34 42c8-13 19-23 32-37m-30 35c8-4 13-18 27-34m-27 34c10-13 18-22 30-34m-29 33c11-5 15-16 27-31m-28 33c12-10 24-24 32-32m-27 34c3-9 11-15 24-34m-27 36c13-13 25-27 28-32m-22 28 20-25m-23 30 24-32m-23 34 26-27m-26 25 24-28m-21 31c6-6 11-13 23-30m-25 28c5-8 13-14 22-28m-19 33c3-10 15-20 19-29m-21 28 21-29m-23 31c11-9 15-9 25-30m-21 28c4-6 8-13 23-26m-23 27 23-22m-21 22c5-10 16-16 19-22m-20 27c3-12 13-12 16-28m-14 24c4-3 9-9 17-21m-17 27c2-10 8-11 17-22m-15 19 16-22m-20 20c7 0 12-4 19-13m-14 19c2-8 10-16 14-21m-15 19c0 1 6-8 18-17m-17 18 15-19m-14 20c6-2 3-6 19-18m-20 20c4-6 11-12 17-19m-15 17c4-2 11-8 13-16m-14 20c4-6 6-10 14-17m-9 15 9-10m-12 14c4-7 10-10 15-15m-14 20c4-9 7-10 12-15m-11 11 12-16m-12 20c-1-2 7-10 9-14m-11 11c6-1 8-7 16-14m-11 22c-1-11 6-11 9-16m-11 11 12-14m-10 14 6-11m-9 13c6-5 10-9 10-13m-9 18c0-7 5-5 9-12m-9 10c4-3 9-8 12-14m-11 14 9-13m-8 14c3-3 6-5 8-9m-6 11c2-1 6-6 6-8m-8 9c4-3 7-5 9-11m-6 10c-1-2 7-4 6-8m-7 11c-1-1 3-6 9-10m-9 14c1-4 3-6 6-11m-8 9 10-9m-8 9c3-2 2-3 10-6m-10 7c2 0 3-3 8-9m-8 13c2-2 8-5 7-10m-5 9 6-8m-6 9 7-6m-6 8 5-8m-5 9 5-4m-6 5 7-7m-5 8c1-2 4-2 4-6m-3 7c0-3 2-4 3-6m-3 8 5-5m-5 5 4-5m-4 6c2 0 3 0 4-3m-3 4 3-5m-3 7 4-4m-3 4 2-3m-1 4 2-2m-3 3 2-3m-1 5 1-1m-1 1 2-2"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"m277 624-11-21c-4-9-7-22-11-30-5-8-10-13-17-19-8-6-22-15-29-18-6-3-10 1-12-1-2-3 1-5 2-17l4-55 8-153c2-29-2-15 1-17 4-2 13 2 21 2s23-3 27-1c4 3-4-8-3 16 2 24 7 76 10 128 3 53 6 155 7 186m0 5-10-31-11-23c-4-7-7-13-13-19-7-6-19-16-26-20-7-3-12 0-15-3-2-4 1-5 2-17v-53c1-35 4-127 7-156 2-28 2-14 6-16 5-1 13 7 20 7 8 0 19-7 23-4s-1-3 0 21c2 24 7 71 10 122l6 186"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"m275 627-10-24c-4-9-6-20-11-27-5-8-12-13-19-19l-25-19c-6-4-10-1-12-4-2-4 0-5 0-17l4-55 9-154c2-28-2-12 2-14 3-2 10 0 18 0s23-3 27 1c5 3-2-7-1 18l6 129 12 184m2 0-13-25c-4-9-5-17-10-25a124 124 0 0 0-45-38c-6-3-8 1-10-2s0-5 0-17l3-54 8-155c2-28 0-11 4-13 3-3 10-2 17-2 7-1 22-4 26-1 4 4-2-3 0 21l9 127 9 183"}),React__namespace.createElement("path",{fill:"none",stroke:"#E6E6E5",strokeLinecap:"round",strokeWidth:"10",d:"M460 1010s0 0 0 0m0 0s0 0 0 0m0 0-10-21m10 21-10-21m0 0-11-19m11 19-11-19m0 0-11-17m11 17-11-17m0 0-13-15m13 15-13-15m0 0-13-14m13 14-13-14m0 0-14-11m14 11-14-11m0 0-16-10m16 10-16-10m0 0-16-9m16 9-16-9m0 0-17-6m17 6-17-6m0 0-18-5m18 5-18-5m0 0-19-3m19 3-19-3m0 0-20-2m20 2-20-2m0 0-21 1m21-1-21 1m0 0-22 2m22-2-22 2m0 0-24 4m24-4-24 4m0 0-24 5m24-5-24 5m0 0 6 29m-6-29 6 29m0 0 2 27m-2-27 2 27m0 0v26m0-26v26m0 0-4 26m4-26-4 26m0 0-7 24m7-24-7 24m0 0-9 24m9-24-9 24m0 0-11 24m11-24-11 24m0 0-13 25m13-25-13 25"}),React__namespace.createElement("path",{fill:"none",stroke:"#6d6d6d",strokeLinecap:"round",strokeWidth:"10",d:"M190 890s0 0 0 0m0 0s0 0 0 0m0 0 6 27m-6-27 6 27m0 0 2 26m-2-26 2 26m0 0v26m0-26v26m0 0-3 25m3-25-3 25m0 0-6 25m6-25-6 25m0 0-9 26m9-26-9 26m0 0-12 25m12-25-12 25m0 0-15 26m15-26-15 26"}),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#ea0",strokeWidth:".3",d:"M137 269s0 0 0 0m0 0s0 0 0 0m0 0c3-5 5-6 12-12m-11 15c2-4 7-9 11-13m-11 10c2 2 6-7 25-17m-25 19c7-5 16-15 20-21m-17 23c9-4 11-13 24-25m-23 25 20-23m-19 23c4-7 18-21 22-26m-25 31c5-9 13-17 27-32m-28 29c13-12 19-16 28-29m-24 30c6-7 11-14 25-26m-23 33c10-12 20-28 28-36m-29 34c8-9 13-20 28-34m-30 37c16-16 23-29 35-35m-34 32 32-31m-29 35c7-14 18-16 34-33m-32 29c11-11 19-24 27-32m-27 32c5-8 19-18 35-32m-37 34c13-12 24-21 34-34m-30 37c12-14 17-24 30-39m-32 40 35-40m-35 42c14-18 23-30 35-38m-33 36 34-38m-29 40c10-17 26-32 32-38m-35 37c13-13 23-27 37-38m-40 37c15-5 22-12 39-37m-37 41c7-9 18-17 39-43m-38 47c18-22 28-35 43-50m-39 49c5-14 15-21 38-46m-43 49c14-12 22-26 43-52m-39 49c11-10 19-20 41-47m-42 50c20-21 33-36 42-52m-40 52 44-50m-41 47c11-12 18-22 45-48m-45 53c10-17 21-27 40-53m-34 48c4-9 14-26 37-45m-43 47 46-47m-39 46c8-16 18-25 42-52m-46 55c13-14 25-28 43-51m-39 54c15-21 28-32 42-57m-41 54c10-12 18-26 43-52m-43 50c14-7 23-20 44-45m-44 47c15-19 32-37 45-52m-41 48c17-9 24-25 40-50m-38 55c10-15 18-23 40-51m-38 48c16-15 27-34 39-46m-39 45c14-14 26-29 43-49m-38 47c10-12 23-24 36-44m-41 46c10-10 21-20 43-47m-40 45c13-13 26-29 46-48m-45 54c11-17 25-30 42-50m-39 47c10-8 18-24 40-49m-40 49c14-18 27-31 43-48m-40 46c14-11 24-26 40-47m-42 48c18-16 34-36 46-47m-40 48c8-13 19-25 39-52m-42 54c20-20 37-40 43-49m-35 44c12-17 26-32 36-45m-40 49 41-51m-38 52 44-47m-44 45 42-49m-38 50c10-10 19-22 42-51m-44 49c11-13 23-25 42-49m-37 53c9-18 29-37 39-53m-41 52 42-53m-42 53c16-14 24-19 46-55m-42 53c9-12 18-25 43-51m-42 50 45-47m-43 47c13-19 32-34 40-47m-40 52c8-19 25-26 40-56m-38 51c9-9 20-21 40-48m-39 52c10-18 23-27 42-50m-39 47 40-50m-42 46c13-8 24-19 44-42m-40 48c11-16 27-34 40-50m-38 46c6-7 18-23 43-47m-42 47 40-48m-38 47c13-9 17-21 45-47m-46 50 43-49m-39 45c13-13 30-30 40-48m-41 51c12-13 21-26 41-47m-35 45 37-44m-40 47c13-17 29-32 43-47m-40 50c13-19 26-31 41-49m-40 45c9-10 20-22 41-49m-39 50c5-8 21-24 38-46m-40 44c14-11 26-27 45-48m-38 53c8-20 25-31 39-49m-41 44 41-47m-37 45c6-7 15-17 36-46m-39 49c17-19 33-36 41-49m-39 52c8-17 22-22 40-48m-40 46c15-16 30-33 44-51m-41 48c6-9 15-17 41-50m-40 52 41-47m-35 46c9-11 22-26 35-44m-39 46c14-15 26-27 41-48m-34 43c8-16 32-32 37-45m-39 48c5-8 16-22 42-47m-41 51c6-13 16-22 38-51m-41 48c17-18 34-34 45-48m-41 45c12-11 16-21 46-45m-45 47c9-8 17-20 42-49m-41 52c13-17 34-32 41-52m-39 49c13-11 23-27 41-47m-39 45c9-13 17-17 44-47m-42 51c12-18 26-30 41-50m-40 48c15-15 25-23 41-45m-43 47c12-13 26-27 45-51m-41 49c12-15 27-25 43-51m-40 53c12-20 29-37 40-51m-39 52c9-12 22-24 45-52m-45 51c15-19 28-35 43-51m-43 49c14-10 23-17 46-47m-44 50c14-16 24-32 44-52m-44 53c11-10 17-20 49-55m-45 52c13-18 31-35 41-48m-38 45c5-8 19-19 45-48m-48 49c19-16 32-34 45-48m-41 54 41-49m-41 47c16-19 32-40 45-50m-40 51c8-14 22-30 36-55m-37 53c17-18 31-37 41-49m-36 47c11-18 27-33 37-50m-38 50 41-48m-41 49c8-13 22-25 46-48m-46 48c12-11 23-23 42-50m-37 47c13-16 22-31 42-46m-46 48c12-8 19-20 46-49m-38 54c9-23 30-38 39-54m-43 50c15-20 35-37 45-49m-42 47 40-47m-38 48 40-48m-37 50c13-17 26-36 44-49m-47 47c10-10 17-20 42-49m-34 50c9-15 24-28 34-47m-36 45c10-13 23-25 41-45m-44 47c18-23 35-42 46-46m-43 45c19-18 34-34 44-49m-40 47 38-43m-38 44c14-14 26-28 41-49m-38 52c9-17 23-26 42-53m-44 51c13-16 29-29 44-46m-39 44c17-19 31-33 42-49m-42 52c16-16 29-36 40-47m-40 48c8-15 17-23 46-50m-46 47c15-15 28-31 44-45m-38 47c9-18 23-32 43-48m-45 47c11-13 27-28 43-49m-40 51c13-17 20-32 43-49m-43 49c17-17 28-35 43-48m-40 46c14-17 31-32 42-48m-44 47c14-14 28-34 42-47m-37 50c12-14 22-26 37-49m-37 47c13-17 25-33 40-47m-35 45c10-12 23-31 42-44m-45 47c13-17 22-27 44-50m-43 51c10-15 22-30 45-47m-45 44c17-16 32-37 43-46m-41 43c11-11 24-18 45-44m-43 48c15-19 33-36 39-46m-38 47c11-17 26-27 43-41m-40 38 36-41m-36 46c14-15 27-30 36-45m-34 40c7-11 19-23 37-41m-36 46c10-16 26-30 37-47m-37 46c10-10 20-20 37-41m-33 39c11-11 17-22 37-42m-37 40c8-7 17-15 35-38m-34 39c11-15 22-23 37-41m-36 41c10-10 19-19 34-38m-29 41c7-12 15-24 33-36m-33 35 30-38m-28 36c10-8 22-25 29-35m-29 37c8-11 19-22 27-36m-22 33c5-9 15-18 27-31m-31 33c10-11 23-26 29-35m-30 34c10-13 26-24 33-31m-29 31c10-7 15-18 26-30m-20 34c0-10 7-13 20-30m-22 27c6-7 12-13 23-30m-24 28c11-6 15-13 27-31m-24 33c8-7 12-15 25-28m-18 27c-1-6 13-18 17-26m-20 28c6-12 14-19 22-27m-21 24c9-7 17-16 19-20m-20 19 23-23m-228 28s0 0 0 0m0 0s0 0 0 0m3 0-7-7m7 7-8-8m11 5c-9-2-15-11-14-15m16 17c-6-4-11-9-19-13m22 17c-14-12-22-18-27-29m27 27-27-24m31 23c-14-6-19-18-30-26m29 26c-15-9-26-20-32-29m32 30c-3-5-15-17-31-33m30 30-30-28m31 27c-9-7-19-21-28-27m30 27-34-26m36 31c-9-13-22-25-30-34m32 33c-5-7-15-16-32-32m39 30c-11-10-23-12-37-31m34 32c-11-12-20-19-35-32m35 30c-8-14-27-28-31-29m35 28c-16-10-29-26-41-30m41 30c-9-11-21-19-35-31m36 31-40-32m44 31c-17-8-30-24-41-32m41 33c-13-7-25-21-42-33m43 37c-7-12-20-24-38-38m42 38c-16-15-32-27-45-40m49 42c-15-11-29-25-43-43m39 39c-10-11-24-22-45-38m52 41c-14-10-26-19-49-39m46 35c-18-12-32-29-44-37m45 35c-15-11-28-29-48-40m52 44-51-40m51 37c-9-10-18-14-51-37m52 40-48-44m52 42c-20-11-30-27-55-43m53 45-49-45m52 45c-19-15-35-33-49-48m48 46c-10-10-20-21-50-43m54 47c-15-22-34-37-52-46m54 41-55-45m54 46c-16-16-26-29-50-45m55 45c-22-18-44-36-58-45m61 50c-19-22-40-38-55-52m52 49-54-48m58 44c-14-15-35-28-56-44m58 45c-20-13-36-28-57-47m55 48c-12-13-20-15-55-50m59 49c-14-9-25-20-55-46m53 50c-12-16-26-28-49-55m53 52c-12-11-27-21-55-49m56 51c-17-21-41-33-57-50m60 51c-22-16-39-35-56-50m61 51c-17-16-36-33-61-52m58 49c-20-18-35-35-55-50m59 46c-14-9-36-27-53-42m52 47c-16-15-28-27-57-51m62 47c-22-15-49-36-56-43m53 47c-17-17-35-32-53-51m55 51c-6-9-22-23-54-48m57 46c-13-9-28-21-56-49m55 52c-14-19-37-37-57-49m60 45-58-48m57 51c-10-14-32-31-54-52m57 51c-12-14-29-26-56-48m64 45c-17-16-34-30-60-46m56 47-57-47m63 44c-20-12-35-20-60-41m56 46c-14-11-28-25-53-49m61 46c-19-12-33-24-64-46m62 47c-15-13-33-24-57-47m57 48c-19-20-44-36-52-50m52 51-53-48m55 45c-6-5-21-14-56-43m58 46c-15-17-34-32-56-49m58 50c-11-12-26-24-53-50m53 50-57-52m64 54c-20-24-40-38-61-49m58 43c-15-10-28-22-57-48m63 51c-24-24-49-41-61-50m58 51c-15-13-28-28-55-51m56 46c-13-12-31-30-58-47m61 51c-20-18-35-32-59-50m64 47c-17-10-37-25-55-47m52 49c-19-17-38-34-56-48m59 46c-15-16-31-28-53-50m54 52c-17-15-33-26-58-49m61 46c-18-14-44-31-59-48m60 51-57-48m59 47c-16-10-35-24-60-46m61 46c-17-11-31-26-57-46m58 46c-13-12-26-17-53-51m53 50c-17-11-35-29-57-47m62 46c-15-11-27-21-61-50m57 53c-15-16-30-29-54-49m61 47c-15-12-33-26-58-48m55 51c-18-19-42-41-54-49m55 48c-12-16-26-32-52-50m57 49c-18-13-35-30-56-48m55 47-50-50m52 51c-15-12-32-27-55-49m55 47c-16-13-35-29-56-50m60 52c-21-22-46-41-58-49m60 53c-14-14-20-26-57-53m58 50c-21-20-42-39-55-47m54 45c-5-5-25-20-52-50m56 51c-19-19-42-36-58-49m60 47c-18-13-39-26-52-49m53 52c-20-16-39-31-57-51m56 52c-11-15-27-29-57-54m60 50c-17-13-37-30-57-48m63 48c-23-11-46-28-56-42m52 43-54-46m58 46-57-48m58 47c-22-15-41-31-56-46m56 45c-19-10-31-32-54-44m55 45c-12-8-26-21-57-47m61 49c-18-14-36-37-53-50m53 52-57-52m58 50-55-47m56 45c-11-9-22-17-53-47m60 46c-25-12-42-35-56-48m54 49c-12-11-25-19-57-48m60 48c-17-11-34-25-59-47m60 50c-18-14-33-27-58-50m62 46c-22-11-36-28-56-43m51 46c-11-11-19-20-53-49m58 50c-18-21-38-39-55-52m55 52c-15-14-30-28-55-48m59 45c-15-12-27-24-58-47m55 47-55-48m62 50c-22-17-40-29-56-52m54 54c-13-17-29-28-55-51m62 47c-20-14-42-28-63-45m58 48c-20-21-43-40-56-52m63 54c-15-17-33-32-60-55m57 49c-21-15-38-30-57-47m62 49c-20-15-36-29-55-48m53 49c-16-16-32-32-55-50m61 47c-26-15-46-34-58-49m53 52c-12-14-24-24-52-49m53 47c-9-16-18-22-50-50m50 48-51-46m54 44c-13-10-26-23-48-40m50 42c-15-10-28-22-54-43m56 40c-19-16-37-33-51-43m50 45c-18-17-36-33-51-42m48 39c-10-9-26-23-44-44m48 44c-11-8-20-17-51-40m52 39c-11-7-22-19-44-43m43 43c-18-13-31-27-48-42m51 37c-19-12-37-30-49-37m47 41-44-38m45 37c-15-8-25-23-40-41m42 40c-7-5-17-15-46-36m47 32c-11-4-25-16-43-30m41 34c-12-14-29-32-39-37m41 36c-15-17-27-24-36-33m35 31c-14-10-27-23-37-33m38 29c-12-5-15-15-34-27m36 29c-12-8-24-17-37-33m42 32c-16-13-29-22-40-28m35 29c-11-13-26-22-36-32m38 31c-3-11-15-15-34-29m35 30c-8-10-16-18-34-32m35 31c-9-6-12-16-32-31m32 31c-10-9-21-17-35-31m37 28-33-30m33 30c-7-9-17-15-33-30m33 31c-8-11-18-19-26-26m26 21c-9-7-19-18-28-23m32 25c-9-8-14-15-29-26m28 24c-12-8-22-19-30-24m30 22c-7-2-10-13-27-26m26 27c-5-7-13-13-26-24m17 13c-5-3-7-7-13-15m12 12c-4 0-6-4-14-8"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"M160 294c-10-1-8-9-26-22m23 24c-6-8-12-13-21-27m1 0c5-5 16-11 21-25m-21 25 25-22m-3-1c86-2 164-7 206-5m-202 7c70-1 138-1 202-4m0 0c3 10 11 15 17 24m-19-24 20 23m2 5c-6-1-10 10-25 24m23-29-20 25m-3 4c-61 0-123-4-204 1m205-5-205 5m0-1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"M153 298c0-10-9-23-15-29m19 23c-8-6-14-14-21-25m1 4c4-9 16-15 21-29m-23 27c8-8 14-14 27-22m1 1c50-4 103-3 198-6m-200 5c46-2 90-3 201-3m2-4c9 6 16 22 20 27m-23-25 22 23m-1 1c-7 10-12 15-19 21m21-22c-9 10-17 19-20 25m-1 0c-64 2-119 5-208 4m207-5c-48-1-97 2-207 4m1 1s0 0 0 0m0 0s0 0 0 0"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m305 241-9-42-4-18v-21l6-46 9-35 11-32 8-17-10 1-27-4-20-12-11-8-14 11-16 8-25 7-8-4-4 9 21 70 9 43 1 36-5 57 6 2 78-4"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M303 241c-1-10-11-36-11-61 0-24 7-62 11-85 5-22 12-39 16-50 3-11 7-11 7-14-1-3-2-1-8-2s-21-1-29-4c-9-2-16-7-21-10s-6-7-9-8c-2 0-2 2-6 5-5 3-14 12-22 15-9 3-24 3-30 4-7 0-7-3-8 0-1 2 1 8 2 13l5 15a771 771 0 0 1 22 106c2 16-1 27-1 37l-1 25c-1 6-3 12-1 15s6 2 14 2l34-2 36-1m-1 0c-1-11-8-38-8-63 0-24 5-60 9-82s12-39 16-50c4-12 9-15 8-18 0-2-5 4-11 3a170 170 0 0 1-49-16c-5-3-4-8-6-9-2 0-3 2-8 5s-13 10-21 14c-9 3-22 4-29 5s-11-3-13 0c-1 2 2 9 4 14 2 4 4 4 7 14s9 29 12 47a465 465 0 0 1 10 97l-1 22c-1 7-4 17-3 20 2 3 4 0 13 0h36l35-4"})),React__namespace.createElement("g",{fill:"none",fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{stroke:"#c24c0e",strokeWidth:".5",d:"M191 30s0 0 0 0m0 0s0 0 0 0m-1 5c2 0 3 0 5-6m-4 7 6-5m-4 8 8-9m-7 9c2-3 5-7 7-7m-4 13c2-9 5-10 7-13m-10 11c6-5 7-8 14-13m-8 20c1-5 8-13 13-23m-16 20c7-8 11-14 17-18m-18 25c3-11 8-14 22-22m-20 23c7-11 17-24 23-27m-25 30 27-29m-24 28c8-8 12-16 25-29m-23 34c2-6 9-17 27-39m-29 39c7-7 16-15 33-35m-34 40c14-13 20-18 45-46m-41 47c16-18 30-38 41-47m-40 46c13-16 33-34 56-60m-58 65c18-18 34-37 56-65m-57 71c15-19 33-35 65-72m-59 69c14-16 26-33 54-64m-56 70c17-23 40-41 56-70m-53 69c20-25 45-53 58-65m-62 73c15-17 31-29 61-72m-58 70c21-27 46-51 60-70m-55 76c19-24 40-49 63-73m-66 71c16-19 31-38 63-71m-59 76c18-27 36-47 62-75m-64 74c14-18 33-33 63-73m-61 78c24-31 50-58 70-78m-71 79c23-33 48-59 66-80m-63 87c21-34 43-56 67-82m-71 77c24-24 45-46 71-80m-65 85c21-22 42-43 70-80m-71 83 71-86m-69 91c24-37 54-65 71-86m-73 85c16-24 36-46 75-88m-77 96c31-35 66-75 84-91m-81 85 79-90m-79 100c15-20 34-46 80-94m-79 89c32-35 65-72 82-93m-85 101c28-27 51-53 91-98m-88 97c18-23 38-45 87-99m-90 105c28-27 46-50 93-105m-88 104c28-32 56-62 88-104m-87 110c17-25 37-42 90-108m-93 108c25-27 51-55 95-107m-93 113c19-23 44-47 95-114m-93 114c30-33 59-70 97-114m-98 121c37-43 75-94 102-118M220 150c27-34 52-65 103-119m-99 121c30-36 67-77 99-122M220 155c27-31 49-58 106-122M223 162c40-45 79-92 103-117M221 161c23-27 44-55 103-117M222 166c17-25 44-48 98-113m-97 112c20-27 45-56 94-112m-96 122c35-39 73-81 96-112m-93 108c27-35 51-65 92-107m-96 114c21-27 41-46 89-95m-85 94c17-22 39-47 82-94m-79 98c14-22 39-50 74-93m-77 96c22-31 52-60 80-94m-77 99c13-20 27-34 78-90m-82 87c24-23 42-46 81-90m-81 98c25-31 59-66 76-94m-76 95c23-24 42-47 78-92m-81 94c20-13 31-32 85-87m-84 91c17-22 35-38 81-91m-76 100c22-36 50-65 77-90m-80 85c17-22 36-43 77-87m-82 100 83-90m-80 88c29-34 56-66 79-90m-78 98c16-22 35-45 74-94m-73 90c23-28 44-50 73-87m-71 95c16-25 38-44 71-83m-74 81 74-85m-76 96c30-36 54-64 76-87m-74 82c25-30 49-60 71-84m-73 96c18-23 37-46 74-88m-77 85c30-34 56-63 75-87m-72 93c34-40 60-66 77-84m-72 80c22-26 43-53 69-81m-63 79c17-17 30-33 62-77m-66 78 67-75m-56 73c18-22 47-49 56-67m-60 70 60-68m-56 71c20-32 48-56 57-64m-56 62c19-24 39-47 57-63m-48 59c8-15 27-25 47-51m-49 54c13-17 23-30 49-58m-42 55c15-13 23-31 38-51m-38 53c10-17 25-31 43-50m-42 47c10-6 13-13 38-44m-36 46 36-41m-28 43c10-17 27-27 31-41m-33 42 32-40m-28 36c6-7 14-12 32-28m-31 30c6-9 16-16 27-32m-25 33c15-10 16-18 26-32m-25 30c7-7 14-15 27-25m-16 25c-1-5 8-17 15-19m-18 20c5-4 11-10 20-25m-16 21c6 1 14-11 14-14m-12 18c3-6 7-9 15-18m-12 19c1-2 7-11 13-13m-13 13c3-6 5-8 14-14m-6 12c2-4 3-7 7-8m-7 8 5-7m0 7 2-2m-3 1 2-2m-84 4s0 0 0 0m0 0s0 0 0 0m6 0s-4-4-7-4m8 4-7-5m10 2c0 1-4-6-12-6m13 9-10-9m20 10c-8-5-11-7-16-19m11 16c-3-1-6-5-14-12m22 16c-12-8-14-12-19-20m18 18c-6-4-10-11-21-18m25 17c-1-2-12-8-25-24m26 27c-7-12-18-20-28-27m33 23c-5-6-16-21-29-30m31 31-34-29m42 31c-5-11-13-17-39-35m39 34-42-36m44 39c-8-13-23-26-44-39m48 35c-12-8-19-17-46-40m50 43c-20-18-37-32-47-46m48 42-50-43m59 43c-24-20-48-40-60-52m58 55c-24-19-46-38-59-51m61 49c-13-18-37-35-62-53m65 53-61-55m68 54c-17-21-40-32-66-58m65 60c-17-18-35-30-68-58m74 53c-24-17-53-43-74-56m73 62c-25-25-48-46-72-65m80 62c-23-18-45-39-84-67m83 69c-30-26-57-53-78-69m79 68c-20-22-41-41-80-76m83 72c-30-24-56-48-83-73m83 64-81-67m77 70c-21-14-42-33-80-69m79 66-83-72m86 69c-28-21-51-40-81-71m78 64c-23-21-44-36-76-68m74 69c-27-22-54-48-79-68m81 59c-25-17-45-36-83-65m81 67c-31-27-63-57-79-69m82 59c-31-13-54-33-81-68m75 72c-15-16-31-30-77-69m74 61c-25-20-48-43-76-63m75 60-73-64m77 62c-25-21-54-42-76-68m73 66-77-66m74 58c-11-15-33-28-77-61m81 63c-26-19-48-39-79-66m77 63c-27-31-56-51-78-68m81 68c-32-27-63-55-82-69m81 60c-20-18-47-43-85-66m83 69c-25-25-55-47-82-72m83 64c-28-23-57-48-83-74m83 76-83-74m86 68c-23-17-46-38-89-77m85 79c-18-13-32-29-85-77m88 71c-31-27-66-50-93-80m90 79c-32-27-67-54-87-74m86 73c-20-26-48-52-86-82m90 79c-27-25-54-50-91-80m90 72c-22-17-48-41-92-75m94 76c-23-13-40-30-93-79m94 76c-24-21-50-47-100-84m98 86-94-84m95 77c-22-16-42-38-94-83m95 83c-25-17-47-36-99-85m103 82c-39-30-74-60-102-85m99 85c-42-38-82-71-103-87m101 82c-35-34-79-65-104-92m106 91c-35-27-66-56-102-88m101 87c-39-33-76-68-104-95m106 90c-26-20-54-47-104-91m107 84c-30-19-52-41-107-85m102 88c-40-32-80-70-106-92m110 91c-29-20-50-43-104-91m104 88L197 31m106 82c-34-23-55-44-100-87m96 85c-34-26-67-57-97-84m98 81c-28-27-62-53-92-85m93 83c-28-21-52-47-96-79m99 76c-38-26-72-58-93-74m91 75c-23-20-43-35-90-80m93 72c-24-17-45-36-88-69m86 72c-27-19-48-39-85-73m85 66c-30-25-64-51-83-71m82 73c-27-24-57-53-81-70m84 67c-19-14-35-30-74-63m73 62c-14-13-33-25-75-67m76 66c-24-26-47-41-75-64m73 59c-14-12-33-27-71-64m70 58c-19-25-51-42-69-59m71 62c-20-19-42-37-66-62m66 60-62-59m65 56c-25-21-53-43-66-56m67 50c-28-19-51-40-69-55m71 55c-23-18-46-38-69-53m67 52c-10-9-29-22-65-56m67 55c-26-23-47-42-64-53m63 51-61-56m62 55c-21-22-48-44-62-55m63 49c-18-12-40-29-55-49m56 51c-13-13-29-25-57-53m61 50c-23-14-41-35-49-44m46 42-48-42m0 2-8-10m9 10-10-8m62 41c-12-5-18-11-35-27m34 32-36-31m37 28c-7-4-14-9-26-29m25 26c-9-7-22-16-28-22m33 20c-13-6-16-12-27-17m22 17c-2-5-7-12-22-22m22 18c0-7-10-12-10-19m13 16c-4-2-14-10-15-14m16 15c-4-3-5-12-13-14m15 12c-6-5-12-10-12-12m12 6c-2-1-6-4-5-5m5 6c-3-3-4-5-7-5"}),React__namespace.createElement("path",{stroke:"transparent",d:"M300 239c-2-10-8-38-8-62 1-24 6-60 11-82s13-41 17-52c3-11 7-12 6-15-1-2-5 0-12-1s-21 0-29-2-13-7-18-10c-4-2-5-7-8-7-2-1-2 2-7 5s-14 10-23 12c-8 3-21 3-28 3-6 1-8-2-9 1-1 2 1 12 2 17l3 12c3 10 10 28 14 46l7 62c2 16 2 27 2 37l-2 25c-1 6-1 11 1 14s4 3 12 3l37-4 32 1m5-6c-3-10-14-34-14-57s8-59 11-81l11-54c4-11 10-13 10-15 1-2 0 4-6 3-7-1-23-8-32-11-8-2-15-4-20-7-5-2-7-9-9-9s2 3-2 7c-5 4-14 12-23 16-10 4-26 6-32 7s-5-3-6-1v12l4 10c4 11 12 32 16 51 5 18 9 45 10 61s-5 27-6 37c-2 10-4 18-3 24 1 7 4 14 7 17 2 2 1-3 7-3 7 0 21 3 33 3s31-4 38-5"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeOpacity:".8",strokeWidth:"4",d:"M301 240c-2-10-9-37-9-62 0-24 4-60 9-83 4-22 13-40 18-50 4-11 8-13 7-15 0-3-3 0-9-1l-28-5-22-7c-5-3-7-8-9-9-3-1 0 1-5 4s-15 10-24 13-23 5-29 6-8-3-8 0c-1 2 2 8 3 13l3 14 13 47c4 18 7 44 9 60s1 25 1 35l-1 26c0 7-4 13-2 16s6 1 14 1h33l37-2m1-1c-2-10-12-37-12-61 0-23 7-60 12-83 5-22 13-40 16-51 4-11 7-12 6-15s-5-1-11-1l-25-3c-8-2-18-6-23-9s-4-9-7-10c-2-1-3 2-8 5s-13 11-21 14-22 5-28 5c-6 1-9-3-10-1s1 8 2 13l4 15c3 10 10 31 14 49s9 43 10 59c1 15-2 24-3 34v27c0 7-2 14 0 17 2 2 4-1 12-2l34-1 37-1"}),React__namespace.createElement("g",{strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#ff0800",d:"M257 42c2 0 7 1 9 3 3 2 5 6 5 10v15c-1 4-3 6-5 8l-9 3c-3-1-6-3-8-7-2-3-3-8-3-13 0-4 1-9 4-12 2-3 8-5 10-5h2m-6-1c3-2 5-2 7 0 3 2 7 6 9 10 1 4-1 9-1 13-1 4-1 8-3 10-2 3-6 6-9 6s-8-2-10-5c-3-3-4-9-4-13s1-8 3-11l6-9c2-1 2 2 2 2"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M257 42c2-1 6 1 8 2 2 2 5 6 6 10s2 9 1 13c0 4-3 9-6 11-2 3-6 4-9 4l-7-8-4-12c0-4 0-9 2-12 1-3 7-6 9-7 1-1 1 1 1 1m5 0c3 1 6 5 8 8s3 8 2 12c0 4-4 9-6 12s-4 5-6 5c-3 0-6-3-9-5-3-3-6-6-7-10s1-11 3-14c2-4 4-7 7-8h10"})))},saveIcon=e=>React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"})),penIcon=e=>{var t,A,i,n,a,r,s,o,l,c,d,h;switch(e.type){case"highlighter":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(t=e.strokeColor)&&void 0!==t?t:"var(--icon-fill-color)",strokeWidth:"2",d:"m9 11-6 6v3h9l3-3"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"}));case"finetip":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:null!==(A=e.strokeColor)&&void 0!==A?A:"var(--icon-fill-color)",stroke:null!==(i=e.strokeColor)&&void 0!==i?i:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{strokeWidth:"2",d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"}));case"fountain":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(n=e.strokeColor)&&void 0!==n?n:"var(--icon-fill-color)",d:"m12 19 7-7 3 3-7 7-3-3z"}),React__namespace.createElement("path",{fill:"none",d:"m18 13-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"}),React__namespace.createElement("path",{fill:"none",d:"m2 2 7.586 7.586"}),React__namespace.createElement("circle",{fill:"none",cx:"11",cy:"11",r:"2"}));case"marker":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",fill:null!==(a=e.strokeColor)&&void 0!==a?a:"var(--icon-fill-color)",stroke:null!==(r=e.strokeColor)&&void 0!==r?r:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"}));case"thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 108 106",strokeWidth:"2",fill:null!==(s=e.strokeColor)&&void 0!==s?s:"var(--icon-fill-color)",stroke:null!==(o=e.strokeColor)&&void 0!==o?o:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m-.58 95.628.22-.89q.22-.89.49-2.44.26-1.54.77-3.35t1.31-3.43q.79-1.61.2-.26-.6 1.34-.03-.14.58-1.49 1.54-2.97.96-1.49 2.54-3.18 1.59-1.68 3.46-2.96 1.86-1.27.81-.54-1.04.73.6-.46 1.64-1.19 2.8-1.81 1.16-.63.16-.08-.99.54 1.21-.5 2.2-1.03 1.11-.58-1.1.45-.03-.07 1.06-.53 2.32-.82 1.26-.3 2.91-.52 1.64-.23 3.05-.18 1.4.05 2.5.12 1.09.07 2.25.24 1.16.17 2.3.49 1.15.32 2.11.78.96.47 2.21 1.01 1.25.55 2.37 1.04t2.34.89q1.22.4 2.5.65 1.29.25 2.44.33 1.16.08 2.35.17 1.18.08 2.26-.1 1.08-.19 2-1.1.92-.91 1.25-1.93.32-1.02.38-2.15t.57.21q.51 1.34-.03-.02-.55-1.37-.96-2.83-.41-1.45.5-.67.92.79-.03-.06-.95-.85-1.52-1.8-.57-.94-1.5-1.52-.93-.57-1.94-1.22-1.01-.65-1.97-1.88-.96-1.22-1.44-2.54-.49-1.32-.65-2.57-.17-1.24-.11-2.35.06-1.11.31-2.91.24-1.79.76-2.77.51-.97 1.29-1.8.77-.84 1.64-1.55.88-.72 1.9-1.33 1.03-.61 2.43-1.15 1.41-.55 2.69-.92 1.29-.37 2.81-.68 1.53-.31 2.83-.58 1.31-.27 2.78-.47 1.47-.2 2.58-.49 1.12-.28 2.19-.58 1.08-.31 2.13-.73 1.05-.42 2.44-1.32 1.39-.9 2.68-1.85 1.3-.95 2.25-1.87.95-.91 2.06-2 1.11-1.09 1.92-1.93.82-.84 1.54-1.82.71-.98 1.4-1.88.69-.9 1.38-1.96.69-1.07 1.25-2.04.55-.97 1.21-1.94.65-.96 1.35-1.79.69-.83 1.46-1.74.77-.9 1.66-1.73.89-.84 2.72-2.31 1.84-1.48 1.84-1.47v.01l-1.1 1.03q-1.1 1.02-1.77 1.92-.68.9-1.39 1.85-.71.96-1.41 1.91-.7.96-1.19 1.92-.48.95-.95 1.92-.46.96-.9 1.95-.43.99-1.02 2.16-.59 1.17-1.17 2.15-.58.97-1.23 2.13t-1.29 2.02q-.64.86-1.3 1.73-.66.88-1.42 1.78-.75.9-1.72 2.03-.97 1.14-1.81 1.89-.85.75-1.98 1.71-1.14.96-2.05 1.61-.91.64-2.42 1.38-1.51.73-2.71 1.21t-2.49.92q-1.3.44-2.35.69-1.06.24-2.1.59-1.03.34-2.06.74-1.03.4-2.29.94-1.26.54-2.27 1.11-1.01.58-1.57 1.57-.56.99-.81 2.06-.25 1.08.56 2.02.8.94-.21-.02-1.02-.96-.01-.48 1 .49 1.87 1.25.87.77 0 0-.88-.77.46-.01 1.34.75 2.6 1.68 1.26.94 2.08 2.03.81 1.09.01.27-.8-.82.3.26 1.11 1.08 1.71 2.1.61 1.02 1.21 2.25.6 1.24.92 2.36.32 1.12-.16.13-.49-.98.02.36.51 1.35.71 2.69.2 1.34.24 2.46.03 1.12-.09 2.42-.13 1.29-.72 3.21-.6 1.92-1.4 3.49-.81 1.58-1.77 2.83-.96 1.24-2.88 2.72-1.92 1.48-2.95 1.85-1.04.36-2.47.76-1.44.41-3.33.72-1.89.32-3.37.41-1.48.09-2.63.15-1.15.05-2.74-.06-1.59-.1-2.8-.29-1.2-.19-3.2-.63-1.99-.45-3.63-.92-1.63-.48-3.28-.79-1.65-.31-2.76-.2-1.11.1-2.21.42-1.11.32.39-.29 1.49-.6-.12.21-1.61.8-.39.19 1.21-.61.29.13-.92.74-1.83 1.34-.92.61.15-.19t.3-.05q-.77.75-1.58 1.57-.81.82.01-.18.82-1 .24.23t-.72 2.72q-.15 1.48-.08 2.4.07.91-.19 2.16-.26 1.26-.81 2.41-.55 1.16-1.36 2.15t-1.84 1.75q-1.03.77-2.21 1.27t-2.44.7q-1.27.2-2.53.1-1.28-.11-2.49-.52-1.22-.41-2.3-1.1-1.08-.68-1.96-1.61-.89-.92-1.52-2.04-.64-1.11-.99-2.34-.36-1.23-.41-2.51l-.04-1.27Z"}));case"thin-thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 114 113",strokeWidth:"2",fill:null!==(l=e.strokeColor)&&void 0!==l?l:"var(--icon-fill-color)",stroke:null!==(c=e.strokeColor)&&void 0!==c?c:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m10 103.405.13-1.22q.14-1.22 1.3-3.16 1.15-1.94 2.74-3.46 1.59-1.53 3.35-2.72 1.77-1.2 4-1.95 2.23-.76 4.45-1t4.86-.4q2.64-.15 5.14-.34 2.51-.19 4.85-.94 2.35-.75 4.55-1.71 2.21-.97 4.16-2.26 1.95-1.3 4.03-2.97 2.07-1.67 3.85-3.05 1.78-1.37 3.72-2.48 1.94-1.11 3.3-2.99 1.36-1.89 2.58-3.74 1.22-1.85-.63-3.42-1.85-1.57-3.82-2.86-1.97-1.3-4.11-2.08-2.15-.78-4.21-1.6-2.06-.81-4.02-1.96-1.96-1.14-3.71-2.48-1.74-1.33-3.37-2.77-1.63-1.43-3.23-3.62-1.6-2.18-2.23-4.64-.62-2.46-.36-4.96.27-2.49 1.19-4.46.91-1.97 2.42-3.7 1.5-1.73 3.5-3.15t4.11-2.28q2.1-.86 4.33-1.44 2.24-.58 4.92-.84 2.68-.26 4.83-.19t4.69.35q2.53.28 4.75.66 2.23.38 4.48.2 2.26-.19 4.43-1.3 2.17-1.12 4.2-2.36 2.04-1.24 3.93-2.43 1.9-1.19 3.84-2.14 1.95-.95 4.04-1.78 2.09-.83 4.56-2.28 2.46-1.46 2.46-1.45h.01q.01 0-1.38 1.3-1.38 1.29-3.08 2.59-1.7 1.3-3.5 2.5t-3.42 2.65q-1.62 1.45-3.18 3-1.57 1.56-3.37 3.13-1.8 1.57-3.6 2.91-1.81 1.33-3.92 2.12t-4.24.92q-2.13.14-4.31.26-2.18.12-4.5.39t-4.56.88q-2.25.61-4.24 1.6-1.99 1-3.83 2.29-1.83 1.29.18 2.44 2.01 1.15 4.2 1.92 2.2.78 4.34 1 2.15.22 4.4.69 2.25.46 4.34 1.16 2.08.71 4.33 1.91 2.25 1.21 4.11 2.73 1.87 1.52 3.68 4.03 1.82 2.5 2.74 5 .93 2.5 1.18 5.03.26 2.53-.04 4.81t-1.4 4.85q-1.09 2.58-2.4 4.26-1.3 1.68-3.1 3.44t-4.02 3.62q-2.23 1.85-4.32 3.07-2.08 1.23-4.34 1.99-2.25.76-4.46 1.96t-4.37 2.14q-2.15.93-4.22 1.81t-4.36 1.35q-2.3.46-4.52.82-2.22.35-4.76.38-2.54.04-4.87-.28t-4.67-.67q-2.34-.35-4.72-.54-2.39-.19-4.64.37-2.25.56-4.16 1.66-1.91 1.11-3.52 2.71-1.61 1.6-2.55 2.39l-.94.78Z"}));default:return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:null!==(d=e.strokeColor)&&void 0!==d?d:"var(--icon-fill-color)",stroke:null!==(h=e.strokeColor)&&void 0!==h?h:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"}))}},stringToSVG=e=>(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("React__namespace.createElement("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor"},e," ");var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce((function(e,t){return e.concat([t+"-"+start,t+"-"+end])}),[]),placements=[].concat(basePlacements,[auto]).reduce((function(e,t){return e.concat([t,t+"-"+start,t+"-"+end])}),[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(e){return e?(e.nodeName||"").toLowerCase():null}function getWindow(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function isElement(e){return e instanceof getWindow(e).Element||e instanceof Element}function isHTMLElement(e){return e instanceof getWindow(e).HTMLElement||e instanceof HTMLElement}function isShadowRoot(e){return"undefined"!=typeof ShadowRoot&&(e instanceof getWindow(e).ShadowRoot||e instanceof ShadowRoot)}function applyStyles(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var A=t.styles[e]||{},i=t.attributes[e]||{},n=t.elements[e];isHTMLElement(n)&&getNodeName(n)&&(Object.assign(n.style,A),Object.keys(i).forEach((function(e){var t=i[e];!1===t?n.removeAttribute(e):n.setAttribute(e,!0===t?"":t)})))}))}function effect$2(e){var t=e.state,A={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,A.popper),t.styles=A,t.elements.arrow&&Object.assign(t.elements.arrow.style,A.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],n=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:A[e]).reduce((function(e,t){return e[t]="",e}),{});isHTMLElement(i)&&getNodeName(i)&&(Object.assign(i.style,a),Object.keys(n).forEach((function(e){i.removeAttribute(e)})))}))}}var applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(e){return e.split("-")[0]}var max=Math.max,min=Math.min,round=Math.round;function getUAString(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(e,t,A){void 0===t&&(t=!1),void 0===A&&(A=!1);var i=e.getBoundingClientRect(),n=1,a=1;t&&isHTMLElement(e)&&(n=e.offsetWidth>0&&round(i.width)/e.offsetWidth||1,a=e.offsetHeight>0&&round(i.height)/e.offsetHeight||1);var r=(isElement(e)?getWindow(e):window).visualViewport,s=!isLayoutViewport()&&A,o=(i.left+(s&&r?r.offsetLeft:0))/n,l=(i.top+(s&&r?r.offsetTop:0))/a,c=i.width/n,d=i.height/a;return{width:c,height:d,top:l,right:o+c,bottom:l+d,left:o,x:o,y:l}}function getLayoutRect(e){var t=getBoundingClientRect(e),A=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-A)<=1&&(A=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:A,height:i}}function contains(e,t){var A=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(A&&isShadowRoot(A)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement(e)&&"fixed"===getComputedStyle$1(e).position)return null;var A=getParentNode(e);for(isShadowRoot(A)&&(A=A.host);isHTMLElement(A)&&["html","body"].indexOf(getNodeName(A))<0;){var i=getComputedStyle$1(A);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return A;A=A.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),A=getTrueOffsetParent(e);A&&isTableElement(A)&&"static"===getComputedStyle$1(A).position;)A=getTrueOffsetParent(A);return A&&("html"===getNodeName(A)||"body"===getNodeName(A)&&"static"===getComputedStyle$1(A).position)?t:A||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,A){return max(e,min(t,A))}function withinMaxClamp(e,t,A){var i=within(e,t,A);return i>A?A:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce((function(t,A){return t[A]=e,t}),{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,A=e.state,i=e.name,n=e.options,a=A.elements.arrow,r=A.modifiersData.popperOffsets,s=getBasePlacement(A.placement),o=getMainAxisFromPlacement(s),l=[left,right].indexOf(s)>=0?"height":"width";if(a&&r){var c=toPaddingObject(n.padding,A),d=getLayoutRect(a),h="y"===o?top:left,u="y"===o?bottom:right,g=A.rects.reference[l]+A.rects.reference[o]-r[o]-A.rects.popper[l],p=r[o]-A.rects.reference[o],m=getOffsetParent(a),w=m?"y"===o?m.clientHeight||0:m.clientWidth||0:0,f=g/2-p/2,E=c[h],B=w-d[l]-c[u],b=w/2-d[l]/2+f,v=within(E,b,B),C=o;A.modifiersData[i]=((t={})[C]=v,t.centerOffset=v-b,t)}}function effect$1(e){var t=e.state,A=e.options.element,i=void 0===A?"[data-popper-arrow]":A;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e,t){var A=e.x,i=e.y,n=t.devicePixelRatio||1;return{x:round(A*n)/n||0,y:round(i*n)/n||0}}function mapToStyles(e){var t,A=e.popper,i=e.popperRect,n=e.placement,a=e.variation,r=e.offsets,s=e.position,o=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,h=r.x,u=void 0===h?0:h,g=r.y,p=void 0===g?0:g,m="function"==typeof c?c({x:u,y:p}):{x:u,y:p};u=m.x,p=m.y;var w=r.hasOwnProperty("x"),f=r.hasOwnProperty("y"),E=left,B=top,b=window;if(l){var v=getOffsetParent(A),C="clientHeight",y="clientWidth";v===getWindow(A)&&"static"!==getComputedStyle$1(v=getDocumentElement(A)).position&&"absolute"===s&&(C="scrollHeight",y="scrollWidth"),(n===top||(n===left||n===right)&&a===end)&&(B=bottom,p-=(d&&v===b&&b.visualViewport?b.visualViewport.height:v[C])-i.height,p*=o?1:-1),n!==left&&(n!==top&&n!==bottom||a!==end)||(E=right,u-=(d&&v===b&&b.visualViewport?b.visualViewport.width:v[y])-i.width,u*=o?1:-1)}var F,x=Object.assign({position:s},l&&unsetSides),S=!0===c?roundOffsetsByDPR({x:u,y:p},getWindow(A)):{x:u,y:p};return u=S.x,p=S.y,o?Object.assign({},x,((F={})[B]=f?"0":"",F[E]=w?"0":"",F.transform=(b.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",F)):Object.assign({},x,((t={})[B]=f?p+"px":"",t[E]=w?u+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,A=e.options,i=A.gpuAcceleration,n=void 0===i||i,a=A.adaptive,r=void 0===a||a,s=A.roundOffsets,o=void 0===s||s,l={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:o})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,A=e.instance,i=e.options,n=i.scroll,a=void 0===n||n,r=i.resize,s=void 0===r||r,o=getWindow(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach((function(e){e.addEventListener("scroll",A.update,passive)})),s&&o.addEventListener("resize",A.update,passive),function(){a&&l.forEach((function(e){e.removeEventListener("scroll",A.update,passive)})),s&&o.removeEventListener("resize",A.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(function(e){return hash$1[e]}))}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,(function(e){return hash[e]}))}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var A=getWindow(e),i=getDocumentElement(e),n=A.visualViewport,a=i.clientWidth,r=i.clientHeight,s=0,o=0;if(n){a=n.width,r=n.height;var l=isLayoutViewport();(l||!l&&"fixed"===t)&&(s=n.offsetLeft,o=n.offsetTop)}return{width:a,height:r,x:s+getWindowScrollBarX(e),y:o}}function getDocumentRect(e){var t,A=getDocumentElement(e),i=getWindowScroll(e),n=null==(t=e.ownerDocument)?void 0:t.body,a=max(A.scrollWidth,A.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=max(A.scrollHeight,A.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),s=-i.scrollLeft+getWindowScrollBarX(e),o=-i.scrollTop;return"rtl"===getComputedStyle$1(n||A).direction&&(s+=max(A.clientWidth,n?n.clientWidth:0)-a),{width:a,height:r,x:s,y:o}}function isScrollParent(e){var t=getComputedStyle$1(e),A=t.overflow,i=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(A+n+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var A;void 0===t&&(t=[]);var i=getScrollParent(e),n=i===(null==(A=e.ownerDocument)?void 0:A.body),a=getWindow(i),r=n?[a].concat(a.visualViewport||[],isScrollParent(i)?i:[]):i,s=t.concat(r);return n?s:s.concat(listScrollParents(getParentNode(r)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var A=getBoundingClientRect(e,!1,"fixed"===t);return A.top=A.top+e.clientTop,A.left=A.left+e.clientLeft,A.bottom=A.top+e.clientHeight,A.right=A.left+e.clientWidth,A.width=e.clientWidth,A.height=e.clientHeight,A.x=A.left,A.y=A.top,A}function getClientRectFromMixedType(e,t,A){return t===viewport?rectToClientRect(getViewportRect(e,A)):isElement(t)?getInnerBoundingClientRect(t,A):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),A=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement(e)?getOffsetParent(e):e;return isElement(A)?t.filter((function(e){return isElement(e)&&contains(e,A)&&"body"!==getNodeName(e)})):[]}function getClippingRect(e,t,A,i){var n="clippingParents"===t?getClippingParents(e):[].concat(t),a=[].concat(n,[A]),r=a[0],s=a.reduce((function(t,A){var n=getClientRectFromMixedType(e,A,i);return t.top=max(n.top,t.top),t.right=min(n.right,t.right),t.bottom=min(n.bottom,t.bottom),t.left=max(n.left,t.left),t}),getClientRectFromMixedType(e,r,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function computeOffsets(e){var t,A=e.reference,i=e.element,n=e.placement,a=n?getBasePlacement(n):null,r=n?getVariation(n):null,s=A.x+A.width/2-i.width/2,o=A.y+A.height/2-i.height/2;switch(a){case top:t={x:s,y:A.y-i.height};break;case bottom:t={x:s,y:A.y+A.height};break;case right:t={x:A.x+A.width,y:o};break;case left:t={x:A.x-i.width,y:o};break;default:t={x:A.x,y:A.y}}var l=a?getMainAxisFromPlacement(a):null;if(null!=l){var c="y"===l?"height":"width";switch(r){case start:t[l]=t[l]-(A[c]/2-i[c]/2);break;case end:t[l]=t[l]+(A[c]/2-i[c]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=void 0===i?e.placement:i,a=A.strategy,r=void 0===a?e.strategy:a,s=A.boundary,o=void 0===s?clippingParents:s,l=A.rootBoundary,c=void 0===l?viewport:l,d=A.elementContext,h=void 0===d?popper:d,u=A.altBoundary,g=void 0!==u&&u,p=A.padding,m=void 0===p?0:p,w=mergePaddingObject("number"!=typeof m?m:expandToHashMap(m,basePlacements)),f=h===popper?reference:popper,E=e.rects.popper,B=e.elements[g?f:h],b=getClippingRect(isElement(B)?B:B.contextElement||getDocumentElement(e.elements.popper),o,c,r),v=getBoundingClientRect(e.elements.reference),C=computeOffsets({reference:v,element:E,strategy:"absolute",placement:n}),y=rectToClientRect(Object.assign({},E,C)),F=h===popper?y:v,x={top:b.top-F.top+w.top,bottom:F.bottom-b.bottom+w.bottom,left:b.left-F.left+w.left,right:F.right-b.right+w.right},S=e.modifiersData.offset;if(h===popper&&S){var T=S[n];Object.keys(x).forEach((function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,A=[top,bottom].indexOf(e)>=0?"y":"x";x[e]+=T[A]*t}))}return x}function computeAutoPlacement(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=A.boundary,a=A.rootBoundary,r=A.padding,s=A.flipVariations,o=A.allowedAutoPlacements,l=void 0===o?placements:o,c=getVariation(i),d=c?s?variationPlacements:variationPlacements.filter((function(e){return getVariation(e)===c})):basePlacements,h=d.filter((function(e){return l.indexOf(e)>=0}));0===h.length&&(h=d);var u=h.reduce((function(t,A){return t[A]=detectOverflow(e,{placement:A,boundary:n,rootBoundary:a,padding:r})[getBasePlacement(A)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,A=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0===r||r,o=A.fallbackPlacements,l=A.padding,c=A.boundary,d=A.rootBoundary,h=A.altBoundary,u=A.flipVariations,g=void 0===u||u,p=A.allowedAutoPlacements,m=t.options.placement,w=getBasePlacement(m),f=o||(w!==m&&g?getExpandedFallbackPlacements(m):[getOppositePlacement(m)]),E=[m].concat(f).reduce((function(e,A){return e.concat(getBasePlacement(A)===auto?computeAutoPlacement(t,{placement:A,boundary:c,rootBoundary:d,padding:l,flipVariations:g,allowedAutoPlacements:p}):A)}),[]),B=t.rects.reference,b=t.rects.popper,v=new Map,C=!0,y=E[0],F=0;F=0,M=I?"width":"height",k=detectOverflow(t,{placement:x,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),U=I?T?right:left:T?bottom:top;B[M]>b[M]&&(U=getOppositePlacement(U));var O=getOppositePlacement(U),Q=[];if(a&&Q.push(k[S]<=0),s&&Q.push(k[U]<=0,k[O]<=0),Q.every((function(e){return e}))){y=x,C=!1;break}v.set(x,Q)}if(C)for(var L=function(e){var t=E.find((function(t){var A=v.get(t);if(A)return A.slice(0,e).every((function(e){return e}))}));if(t)return y=t,"break"},N=g?3:1;N>0&&"break"!==L(N);N--);t.placement!==y&&(t.modifiersData[i]._skip=!0,t.placement=y,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,A){return void 0===A&&(A={x:0,y:0}),{top:e.top-t.height-A.y,right:e.right-t.width+A.x,bottom:e.bottom-t.height+A.y,left:e.left-t.width-A.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some((function(t){return e[t]>=0}))}function hide(e){var t=e.state,A=e.name,i=t.rects.reference,n=t.rects.popper,a=t.modifiersData.preventOverflow,r=detectOverflow(t,{elementContext:"reference"}),s=detectOverflow(t,{altBoundary:!0}),o=getSideOffsets(r,i),l=getSideOffsets(s,n,a),c=isAnySideFullyClipped(o),d=isAnySideFullyClipped(l);t.modifiersData[A]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,A){var i=getBasePlacement(e),n=[left,top].indexOf(i)>=0?-1:1,a="function"==typeof A?A(Object.assign({},t,{placement:e})):A,r=a[0],s=a[1];return r=r||0,s=(s||0)*n,[left,right].indexOf(i)>=0?{x:s,y:r}:{x:r,y:s}}function offset(e){var t=e.state,A=e.options,i=e.name,n=A.offset,a=void 0===n?[0,0]:n,r=placements.reduce((function(e,A){return e[A]=distanceAndSkiddingToXY(A,t.rects,a),e}),{}),s=r[t.placement],o=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=l),t.modifiersData[i]=r}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,A=e.name;t.modifiersData[A]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,A=e.options,i=e.name,n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0!==r&&r,o=A.boundary,l=A.rootBoundary,c=A.altBoundary,d=A.padding,h=A.tether,u=void 0===h||h,g=A.tetherOffset,p=void 0===g?0:g,m=detectOverflow(t,{boundary:o,rootBoundary:l,padding:d,altBoundary:c}),w=getBasePlacement(t.placement),f=getVariation(t.placement),E=!f,B=getMainAxisFromPlacement(w),b=getAltAxis(B),v=t.modifiersData.popperOffsets,C=t.rects.reference,y=t.rects.popper,F="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,x="number"==typeof F?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(v){if(a){var I,M="y"===B?top:left,k="y"===B?bottom:right,U="y"===B?"height":"width",O=v[B],Q=O+m[M],L=O-m[k],N=u?-y[U]/2:0,D=f===start?C[U]:y[U],R=f===start?-y[U]:-C[U],H=t.elements.arrow,P=u&&H?getLayoutRect(H):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),K=V[M],G=V[k],W=within(0,C[U],P[U]),z=E?C[U]/2-N-W-K-x.mainAxis:D-W-K-x.mainAxis,X=E?-C[U]/2+N+W+G+x.mainAxis:R+W+G+x.mainAxis,Y=t.elements.arrow&&getOffsetParent(t.elements.arrow),j=Y?"y"===B?Y.clientTop||0:Y.clientLeft||0:0,_=null!=(I=null==S?void 0:S[B])?I:0,J=O+X-_,Z=within(u?min(Q,O+z-_-j):Q,O,u?max(L,J):L);v[B]=Z,T[B]=Z-O}if(s){var q,$="x"===B?top:left,ee="x"===B?bottom:right,te=v[b],Ae="y"===b?"height":"width",ie=te+m[$],ne=te-m[ee],ae=-1!==[top,left].indexOf(w),re=null!=(q=null==S?void 0:S[b])?q:0,se=ae?ie:te-C[Ae]-y[Ae]-re+x.altAxis,oe=ae?te+C[Ae]+y[Ae]-re-x.altAxis:ne,le=u&&ae?withinMaxClamp(se,te,oe):within(u?se:ie,te,u?oe:ne);v[b]=le,T[b]=le-te}t.modifiersData[i]=T}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),A=round(t.width)/e.offsetWidth||1,i=round(t.height)/e.offsetHeight||1;return 1!==A||1!==i}function getCompositeRect(e,t,A){void 0===A&&(A=!1);var i=isHTMLElement(t),n=isHTMLElement(t)&&isElementScaled(t),a=getDocumentElement(t),r=getBoundingClientRect(e,n,A),s={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(i||!i&&!A)&&(("body"!==getNodeName(t)||isScrollParent(a))&&(s=getNodeScroll(t)),isHTMLElement(t)?((o=getBoundingClientRect(t,!0)).x+=t.clientLeft,o.y+=t.clientTop):a&&(o.x=getWindowScrollBarX(a))),{x:r.left+s.scrollLeft-o.x,y:r.top+s.scrollTop-o.y,width:r.width,height:r.height}}function order(e){var t=new Map,A=new Set,i=[];function n(e){A.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!A.has(e)){var i=t.get(e);i&&n(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){A.has(e.name)||n(e)})),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce((function(e,A){return e.concat(t.filter((function(e){return e.phase===A})))}),[])}function debounce(e){var t;return function(){return t||(t=new Promise((function(A){Promise.resolve().then((function(){t=void 0,A(e())}))}))),t}}function mergeByName(e){var t=e.reduce((function(e,t){var A=e[t.name];return e[t.name]=A?Object.assign({},A,t,{options:Object.assign({},A.options,t.options),data:Object.assign({},A.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),A=0;A(this.setSelectedItem(this.selectedItem-1,!0),!1))),A.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),A.register([],"Enter",(e=>(this.useSelectedItem(e),!1))),A.register([],"Tab",(e=>(this.chooseSuggestion(e),!1)))}chooseSuggestion(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.onChooseSuggestion(t,e)}onSuggestionClick(e,t){if(e.preventDefault(),!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){if(!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1)}empty(){this.containerEl.empty()}setSuggestions(e){this.containerEl.empty();const t=[];e.forEach((e=>{const A=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(e,A),t.push(A)})),this.items=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}wrap(e,t){return(e%t+t)%t}setSelectedItem(e,t){const A=this.wrap(e,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[A];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=A,t&&n.scrollIntoView(!1)}}class SuggestionModal extends obsidian_module.FuzzySuggestModal{constructor(e,t,A){super(e),this.items=[],this.scope=new obsidian_module.Scope(this.app.scope),this.emptyStateText="No match found",this.limit=100,this.inputEl=t,this.items=A,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Suggester(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(e=>{e.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const e=this.modifyInput(this.inputEl.value),t=this.getSuggestions(e);t.length>0?this.suggester.setSuggestions(t.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(e){return e}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),this.inputEl.ownerDocument.body.appendChild(this.suggestEl),this.popper=createPopper(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(e){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));const t=this.promptEl.createDiv("prompt-instruction");for(const A of e)t.appendChild(A)}}class FileSuggestionModal extends SuggestionModal{constructor(e,t,A){super(e,t.inputEl,A),this.limit=20,this.files=[...A],this.text=t,this.inputEl.addEventListener("input",(()=>this.getFile()))}getFile(){const e=this.inputEl.value,t=this.app.vault.getAbstractFileByPath(e);t!==this.file&&t instanceof obsidian_module.TFile&&(this.file=t,this.onInputChanged())}getSelectedItem(){return this.file}getItemText(e){return e.path}onChooseItem(e){this.file=e,this.text.setValue(e.path),this.text.onChanged()}selectSuggestion({item:e}){this.file=e,this.text.setValue(e.path),this.onClose(),this.text.onChanged(),this.close()}renderSuggestion(e,t){const{item:A,match:i}=e||{},n=t.createDiv({cls:"suggestion-content"});if(!A)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const a=A.path.length-A.name.length,r=i.matches.map((e=>createSpan("suggestion-highlight")));for(let e=a;et[0]===e));if(t){const a=r[i.matches.indexOf(t)];n.appendChild(a),a.appendText(A.path.substring(t[0],t[1])),e+=t[1]-t[0]-1}else n.appendText(A.path[e])}t.createDiv({cls:"suggestion-note",text:A.path})}getItems(){return this.files}}const insertImageToView=async(e,t,A,i)=>{e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent";const n=e.getExcalidrawAPI();e.canvas.theme=n.getAppState().theme;const a=await e.addImage(t.x,t.y,A,i);return await e.addElementsToView(!1,!0,!0),a},insertEmbeddableToView=async(e,t,A,i)=>{if(e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent",A&&IMAGE_TYPES.contains(A.extension)||e.isExcalidrawFile(A))return await insertImageToView(e,t,A);{const n=e.addEmbeddable(t.x,t.y,500,500,i,A);return await e.addElementsToView(!1,!0,!0),n}},getEA=e=>{try{return window.ExcalidrawAutomate.getAPI(e)}catch(e){return console.log({message:"Excalidraw not available",fn:getEA}),null}};class InsertPDFModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.borderBox=!0,this.gapSize=20,this.numColumns=1,this.lockAfterImport=!0,this.pagesToImport=[],this.pageDimensions={width:0,height:0},this.importScale=.3,this.dirty=!1,this.setImageSizeMessage=()=>this.imageSizeMessage.innerText=`${Math.round(this.pageDimensions.width*this.importScale)} x ${Math.round(this.pageDimensions.height*this.importScale)}`}open(e){e&&"pdf"===e.extension.toLowerCase()&&(this.pdfFile=e),super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Import PDF"),this.createForm()}async onClose(){this.dirty&&(this.plugin.settings.pdfImportScale=this.importScale,this.plugin.settings.pdfBorderBox=this.borderBox,this.plugin.settings.pdfGapSize=this.gapSize,this.plugin.settings.pdfNumColumns=this.numColumns,this.plugin.settings.pdfLockAfterImport=this.lockAfterImport,this.plugin.saveSettings()),this.pdfDoc&&(this.pdfDoc.destroy(),this.pdfDoc=null)}async getPageDimensions(e){try{const t=this.plugin.settings.pdfScale,A=createEl("canvas"),i=(await e.getPage(1)).getViewport({scale:t});this.pageDimensions.height=i.height,this.pageDimensions.width=i.width,A.width=0,A.height=0,this.setImageSizeMessage()}catch(e){console.log(e)}}createPageListFromString(e){const t=e=>e.replace(/\D/g,"");return this.pagesToImport=[],e.split(",").forEach((e=>{const A=e.split("-");if(1===A.length){const e=parseInt(t(A[0]));!isNaN(e)&&this.pagesToImport.push(e)}else if(2===A.length){const e=parseInt(t(A[0])),i=parseInt(t(A[1]));if(isNaN(e)||isNaN(i))return;for(let t=e;t<=i;t++)this.pagesToImport.push(t)}})),this.pagesToImport}async createForm(){await this.plugin.loadSettings(),this.borderBox=this.plugin.settings.pdfBorderBox,this.gapSize=this.plugin.settings.pdfGapSize,this.numColumns=this.plugin.settings.pdfNumColumns,this.lockAfterImport=this.plugin.settings.pdfLockAfterImport,this.importScale=this.plugin.settings.pdfImportScale;const e=this.contentEl;let t,A,i,n;const a=()=>this.pdfDoc?0===this.pagesToImport.length?(i.buttonEl.style.display="none",void(n.innerText="Please select pages to import")):Math.max(...this.pagesToImport)<=this.pdfDoc.numPages?(i.buttonEl.style.display="block",void(n.innerText="")):(i.buttonEl.style.display="none",void(n.innerText=`The selected document has ${this.pdfDoc.numPages} pages. Please select pages between 1 and ${this.pdfDoc.numPages}`)):(n.innerText="Please select a PDF file",void(i.buttonEl.style.display="none")),r=()=>{0!==A?t.innerHTML=`There are ${A} pages in the selected document.`:t.innerText="Please select a PDF file"},s=async e=>{this.pdfDoc&&await this.pdfDoc.destroy(),this.pdfDoc=null,e&&(this.pdfDoc=await getPDFDoc(e),this.pdfFile=e,this.pdfDoc?(A=this.pdfDoc.numPages,a(),r(),this.getPageDimensions(this.pdfDoc)):i.setDisabled(!0))},o=new obsidian_module.TextComponent(e);o.inputEl.style.width="100%";const l=new FileSuggestionModal(this.app,o,app.vault.getFiles().filter((e=>"pdf"===e.extension.toLowerCase())));let c,d,h,u;o.onChange((async()=>{const e=l.getSelectedItem();await s(e)})),t=e.createEl("p",{text:""}),r(),new obsidian_module.Setting(e).setName("Pages to import").addText((e=>{d=e,e.setPlaceholder("e.g.: 1,3-5,7,9-10").onChange((e=>{const t=this.createPageListFromString(e);t.length>15?c.innerHTML=`You are importing ${t.length} pages. ⚠️ This may take a while. ⚠️`:c.innerHTML=`You are importing ${t.length} pages.`,a()})),e.inputEl.style.width="100%"})),c=e.createEl("p",{text:""}),new obsidian_module.Setting(e).setName("Add border box").addToggle((e=>e.setValue(this.borderBox).onChange((e=>{this.borderBox=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Lock pages on canvas after import").addToggle((e=>e.setValue(this.lockAfterImport).onChange((e=>{this.lockAfterImport=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Number of columns").addSlider((e=>e.setLimits(1,100,1).setValue(this.numColumns).onChange((e=>{this.numColumns=e,h.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{h=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.numColumns.toString()}`})),new obsidian_module.Setting(e).setName("Size of gap between pages").addSlider((e=>e.setLimits(10,200,10).setValue(this.gapSize).onChange((e=>{this.gapSize=e,u.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{u=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.gapSize.toString()}`}));const g=new obsidian_module.Setting(e).setName("Imported page size").setDesc(`${this.pageDimensions.width*this.importScale} x ${this.pageDimensions.height*this.importScale}`).addSlider((e=>e.setLimits(.1,1.5,.1).setValue(this.importScale).onChange((e=>{this.importScale=e,this.dirty=!0,this.setImageSizeMessage()}))));this.imageSizeMessage=g.descEl;const p=new obsidian_module.Setting(e).setDesc("Select a document first").addButton((e=>{e.setButtonText("Import PDF").setCta().onClick((async()=>{const e=getEA(this.view);let t=0,A=0;const i=Math.round(this.pageDimensions.width*this.importScale),a=Math.round(this.pageDimensions.height*this.importScale);for(let r=0;re.id)),o=e.getViewElements().filter((e=>s.includes(e.id)));r.selectElements(o),r.zoomToFit(o),this.close()})),i=e,i.buttonEl.style.display="none"}));n=p.descEl,n.addClass("mod-warning"),this.pdfFile?(o.setValue(this.pdfFile.path),await s(this.pdfFile),l.close(),d.inputEl.focus()):o.inputEl.focus(),a()}}class UniversalInsertFileModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.center={x:0,y:0};const A=t.excalidrawAPI.getAppState(),i=t.containerEl.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,a=window.innerHeight||document.documentElement.clientHeight,r=sceneCoordsToViewportCoords({sceneX:t.currentPosition.x,sceneY:t.currentPosition.y},A);if(r.x>=i.left+150&&r.y<=i.right-150&&r.y>=i.top+150&&r.y<=i.bottom-150){const e=t.currentPosition.x-250,A=t.currentPosition.y-250;this.center={x:e,y:A}}else{const e=i.left+i.width/2,t=i.top+i.height/2,r=Math.max(0,Math.min(n,e)),s=Math.max(0,Math.min(a,t));this.center=viewportCoordsToSceneCoords({clientX:r,clientY:s},A),this.center={x:this.center.x-250,y:this.center.y-250}}}open(e,t){this.file=e,this.center=null!=t?t:this.center,super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Insert File From Vault"),this.createForm()}async createForm(){const e=this.contentEl;let t,A,i,n,a,r,s=!1,o=this.file;const l=async()=>{const e=this.plugin.ea,s=o&&"md"===o.extension&&!e.isExcalidrawFile(o),l=o&&(IMAGE_TYPES.contains(o.extension)||e.isExcalidrawFile(o)),c=o&&!l,d=o&&"pdf"===o.extension,h=o&&e.isExcalidrawFile(o);if(s){for(A.settingEl.style.display="",t.selectEl.style.display="block";t.selectEl.options.length>0;)t.selectEl.remove(0);t.addOption("",""),(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},o)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})).forEach((e=>{t.addOption(`#${cleanSectionHeading(e.display)}`,e.display)}))}else A.settingEl.style.display="none",t.selectEl.style.display="none";r.settingEl.style.display=h?"":"none",l||"md"===(null==o?void 0:o.extension)?n.buttonEl.style.display="block":n.buttonEl.style.display="none",i.buttonEl.style.display=c?"block":"none",a.buttonEl.style.display=d?"block":"none"},c=new obsidian_module.TextComponent(e);c.inputEl.style.width="100%";const d=new FileSuggestionModal(this.app,c,app.vault.getFiles().filter((e=>e!==this.view.file)));c.onChange((()=>{o=d.getSelectedItem(),l()})),A=new obsidian_module.Setting(e).setName("Select section heading").addDropdown((e=>{t=e,t.selectEl.style.width="100%"})),r=new obsidian_module.Setting(e).setName("Anchor to 100% of original size").setDesc("This is a pro feature, use it only if you understand how it works. If enabled even if you change the size of the imported image in Excalidraw, the next time you open the drawing this image will pop back to 100% size. This is useful when embedding an atomic Excalidraw idea into another note and preserving relative sizing of text and icons.").addToggle((e=>{e.setValue(s).onChange((e=>{s=e}))})),new obsidian_module.Setting(e).addButton((e=>{e.setButtonText("as iFrame").onClick((async()=>{const e=app.metadataCache.fileToLinktext(o,this.view.file.path,"md"===o.extension),A=getEA(this.view);A.selectElementsInView([await insertEmbeddableToView(A,this.center,void 0,`[[${e}${t.selectEl.value}]]`)]),this.close()})),i=e})).addButton((e=>{e.setButtonText("as Pdf").onClick((()=>{new InsertPDFModal(this.plugin,this.view).open(o),this.close()})),a=e})).addButton((e=>{e.setButtonText("as Image").onClick((async()=>{const e=getEA(this.view),A=o&&"md"===o.extension&&!e.isExcalidrawFile(o);e.selectElementsInView([await insertImageToView(e,this.center,A&&t.selectEl.value&&""!==t.selectEl.value?`${o.path}${t.selectEl.value}`:o,e.isExcalidrawFile(o)?!s:void 0)]),this.close()})),n=e})),this.view.ownerWindow.addEventListener("keydown",this.onKeyDown=e=>{const t=e=>"none"!==e.buttonEl.style.display;switch(e.key){case"Escape":return void this.close();case"Enter":return!t(i)||t(n)||t(a)?!t(n)||t(i)||t(a)?!t(a)||t(i)||t(n)?void 0:void a.buttonEl.click():void n.buttonEl.click():void i.buttonEl.click();case"i":return void(t(n)&&n.buttonEl.click());case"p":return void(t(a)&&a.buttonEl.click());case"f":return void(t(i)&&i.buttonEl.click())}}),c.inputEl.focus(),o&&(c.setValue(o.path),d.close()),l()}onClose(){this.view.ownerWindow.removeEventListener("keydown",this.onKeyDown)}}const setPen=(e,t)=>{const A=t.getAppState();t.updateScene({appState:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({currentStrokeOptions:e.penOptions},e.strokeWidth&&0!==e.strokeWidth?{currentItemStrokeWidth:e.strokeWidth}:null),e.backgroundColor?{currentItemBackgroundColor:e.backgroundColor}:null),e.strokeColor?{currentItemStrokeColor:e.strokeColor}:null),""===e.fillStyle?null:{currentItemFillStyle:e.fillStyle}),e.roughness?null:{currentItemRoughness:e.roughness}),e.freedrawOnly&&!A.resetCustomPen?{resetCustomPen:{currentItemStrokeWidth:A.currentItemStrokeWidth,currentItemBackgroundColor:A.currentItemBackgroundColor,currentItemStrokeColor:A.currentItemStrokeColor,currentItemFillStyle:A.currentItemFillStyle,currentItemRoughness:A.currentItemRoughness}}:null)})},resetStrokeOptions=(e,t,A)=>{t.updateScene({appState:Object.assign(Object.assign(Object.assign({},e?{currentItemStrokeWidth:e.currentItemStrokeWidth,currentItemBackgroundColor:e.currentItemBackgroundColor,currentItemStrokeColor:e.currentItemStrokeColor,currentItemFillStyle:e.currentItemFillStyle,currentItemRoughness:e.currentItemRoughness}:null),{resetCustomPen:null}),A?{currentStrokeOptions:null}:null)})};class ObsidianMenu{constructor(e,t,A){this.plugin=e,this.toolsRef=t,this.view=A,this.renderCustomPens=(e,t)=>{var A;return null===(A=t.customPens)||void 0===A?void 0:A.map(((A,i)=>{const n=this.plugin.settings.customPens[i];return t.resetCustomPen&&"freedraw"!==t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&setTimeout((()=>resetStrokeOptions(t.resetCustomPen,this.view.excalidrawAPI,!1))),!t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&setTimeout((()=>setPen(this.activePen,this.view.excalidrawAPI))),this.activePen&&t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&(this.activePen.strokeWidth=t.currentItemStrokeWidth,this.activePen.backgroundColor=t.currentItemBackgroundColor,this.activePen.strokeColor=t.currentItemStrokeColor,this.activePen.fillStyle=t.currentItemFillStyle,this.activePen.roughness=t.currentItemRoughness),React__namespace.createElement("label",{key:i,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{const e=Date.now();if(e-this.clickTimestamp[i]<500){const e=new PenSettingsModal(this.plugin,this.view,i);return void(async()=>{await this.plugin.loadSettings(),e.open()})()}this.clickTimestamp[i]=e;const t=this.view.excalidrawAPI,A=t.getAppState();A.currentStrokeOptions!==n.penOptions||"freedraw"!==A.activeTool.type?(this.activePen=Object.assign({},n),setPen(n,t),t.setActiveTool({type:"freedraw"})):resetStrokeOptions(A.resetCustomPen,t,!0)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":n.type,style:Object.assign({},"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions?{background:"var(--color-primary)"}:{})},penIcon(n)))}))},this.longpressTimeout={},this.renderPinnedScriptButtons=(e,t)=>{var A;let i=0;return null===(A=null==t?void 0:t.pinnedScripts)||void 0===A?void 0:A.map(((t,A)=>{var n;const a=this.plugin.scriptEngine.scriptIconMap[t],r=null!==(n=null==a?void 0:a.name)&&void 0!==n?n:"",s=(null==a?void 0:a.svgString)?stringToSVG(a.svgString):ICONS.cog;return this.longpressTimeout[A]||(this.longpressTimeout[A]=0),React__namespace.createElement("label",{key:A,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onPointerUp:()=>{this.longpressTimeout[A]&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0,(async()=>{const e=app.vault.getAbstractFileByPath(t);e&&e instanceof obsidian_module.TFile&&this.plugin.scriptEngine.executeScript(this.view,await app.vault.read(e),this.plugin.scriptEngine.getScriptName(e),e)})())},onPointerDown:()=>{const e=Date.now();this.longpressTimeout[A]>0&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0),e-i>=500&&(this.longpressTimeout[A]=window.setTimeout((()=>{this.longpressTimeout[A]=0,(async()=>{var e;await this.plugin.loadSettings();const A=this.plugin.settings.pinnedScripts.indexOf(t);A>-1&&(this.plugin.settings.pinnedScripts.splice(A,1),null===(e=this.view.excalidrawAPI)||void 0===e||e.setToast({message:`Pin removed: ${r}`,duration:3e3,closable:!0})),await this.plugin.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))})()}),1500)),i=e}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":r},s))}))},this.renderButton=(e,t)=>React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{this.toolsRef.current.setTheme(t.theme),this.toolsRef.current.toggleVisibility(t.zenModeEnabled||e)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("OBSIDIAN_TOOLS_PANEL")},ICONS.obsidian)),React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{new UniversalInsertFileModal(this.plugin,this.view).open()}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("UNIVERSAL_ADD_FILE")},ICONS["add-file"])),this.renderCustomPens(e,t),this.renderPinnedScriptButtons(e,t)),this.clickTimestamp=Array.from({length:Object.keys(PENS).length},(()=>0))}}class ActionButton extends React__namespace.Component{constructor(e){super(e),this.toastMessageTimeout=0,this.longpressTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0,this.props.action(e)),this.longpressTimeout&&(window.clearTimeout(this.longpressTimeout),this.longpressTimeout=0)},onPointerDown:e=>{this.toastMessageTimeout=window.setTimeout((()=>{var e;null===(e=this.props.view.excalidrawAPI)||void 0===e||e.setToast({message:this.props.title,duration:3e3,closable:!0}),this.toastMessageTimeout=0}),400),this.longpressTimeout=window.setTimeout((()=>{var t;this.props.longpress?this.props.longpress(e):null===(t=this.props.view.excalidrawAPI)||void 0===t||t.setToast({message:"Cannot pin this action",duration:3e3,closable:!0}),this.longpressTimeout=0}),1500)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
\n\n
\n',RELEASE_NOTES={Intro:'After each update you\'ll be prompted with the release notes. You can disable this in plugin settings.\n\nI develop this plugin as a hobby, spending my free time doing this. If you find it valuable, then please say THANK YOU or...\n\n
\n',"1.9.14":`\n# Fixed\n- **Dynamic Styling**: Excalidraw ${String.fromCharCode(96)}Plugin Settings/Display/Dynamic Styling${String.fromCharCode(96)} did not handle theme changes correctly.\n- **Section References**: Section Headings that contained a dot (e.g. #2022.01.01) (or other special characters) did not work when focusing markdown embeds to a section. [#1262](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1262)\n- **PNG Export**: When using images from the web (i.e. based on URL and not a file from your Vault), embedding the Excalidraw file into a markdown document as PNG, or exporting as PNG failed. This is because due to browser cross-origin restrictions, Excalidraw is unable to access the image. In such cases, a placeholder will be included in the export, but the export will not fail, as until now.\n\n# New in ExcalidrawAutomate\n- ${String.fromCharCode(96)}getActiveEmbeddableViewOrEditor${String.fromCharCode(96)} will return the active editor and file in case of a markdown document or the active leaf.view for other files (e.g. PDF, MP4 player, Kanban, Canvas, etc) of the currently active embedded object. This function can be used by plugins to check if an editor is available and obtain the view or editor to perform their actions. Example: [package.json](https://github.com/zsviczian/excalibrain/blob/2056a021af7c3a53ed08203a77f6eae304ca6e39/package.json#L23), [Checking for EA](https://github.com/zsviczian/excalibrain/blob/2056a021af7c3a53ed08203a77f6eae304ca6e39/src/excalibrain-main.ts#L114-L127), and [Running the function](https://github.com/zsviczian/excalibrain/blob/2056a021af7c3a53ed08203a77f6eae304ca6e39/src/excalibrain-main.ts#L362-L399)\n\n${String.fromCharCode(96,96,96)}typescript\npublic getActiveEmbeddableViewOrEditor (view?:ExcalidrawView): {view:any}|{file:TFile, editor:Editor}|null;\n${String.fromCharCode(96,96,96)}\n`,"1.9.13":`\n
\n\n
\n\n# New\n- **Templater support**: You can now execute Templater scripts on an embedded Markdown document when the document is active for editing\n- **Interactive image-embeds**: I added a new image embed option "SVG Native". In "SVG Native" mode embedded items such as videos, webpages, and links (including links within the Vault) work.\n- **Anchored image resizing**: When you embed an Excalidraw drawing using the Anchor to 100% option, resizing the image will be disabled.\n\n# Fixed\n- when opening a new document in the Excalidraw view while a markdown document was open for editing in an embeddable, Excalidraw terminated with errors\n- shift-click to select multiple elements\n- dynamic styling when canvas background with transparent\n \n# New in ExcalidrawAutomate\n- added openState to the ${String.fromCharCode(96)}openFileInNewOrAdjacentLeaf${String.fromCharCode(96)}. For details see: [OpenViewState](https://github.com/obsidianmd/obsidian-api/blob/f86f95386d439c19d9a77831d5cac5748d80e7ec/obsidian.d.ts#L2686-L2695)\n${String.fromCharCode(96,96,96)}typescript\nopenFileInNewOrAdjacentLeaf(file: TFile, openState?: OpenViewState): WorkspaceLeaf\n${String.fromCharCode(96,96,96)}\n`,"1.9.12":`\n## New\n- If you create a Text Element that includes only a transclusion e.g.: ${String.fromCharCode(96)}![[My Image.png]]${String.fromCharCode(96)} then excalidraw will automatically replace the transclusion with the embedded image.\n- New Excalidraw splash screen icon contributed by Felix Häberle. 😍\n\n
\n\n
\n\n## Fixed\n- Popout windows behaved inconsistently losing focus at the time when a markdown file was embedded. Hopefully, this is now working as intended.\n- A number of small fixes that will also improve the ExcaliBrain experience\n`,"1.9.11":"\n# New\n- I added 2 new command palette actions: 1) to toggle frame clipping and 2) to toggle frame rendering.\n\n# Updated\n- I released a minor update to the slideshow script. Frame sequence (Frame 1, 2, 3, ...) will now be displayed in proper order. Frames will be hidden during the presentation (this was there before, but there was a change to excalidraw.com that broke this feature of the slideshow script).\n\n# Fixed: \n- Excalidraw Automate error introduced with 1.9.10 - when elements are repositioned to cursor and no ExcalidrawView is active\n","1.9.10":'\n## New\n- @mazurov added a new script: [Ellipse Selected Elements](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Ellipse%20Selected%20Elements.md)\n\n## Fixed\n- **Image Saving Error**: Previously, inserting an image from Firebase Storage or other URLs could result in an error that prevented the entire drawing from being saved. I have now improved the error handling and image fetching from the web, ensuring smooth image insertion and saving. \n- **Text Search Bug**: There was an issue where text search failed when frames had default names like "Frame 1," "Frame 2," etc. This has been resolved, and now the text search works correctly in such cases. ([#1239](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1239)) \n- **Image Positioning Fix**: An annoying bug caused the image to jump after inserting it using the "Insert Image" command palette action. I\'ve fixed this issue, and now the image behaves as expected when positioning it for the first time.\n',"1.9.9":`\n## ⚠️⚠️ IMPORTANT: PLEASE READ ⚠️⚠️\n\nI updated embedded frames for compatibility with excalidraw.com. To ensure everything works smoothly:\n\n🔄 Update Excalidraw on all your devices.\n\nThis will avoid any issues with converted files and let you enjoy the new features seamlessly.\n\nThank you for your understanding. If you have any questions, feel free to reach out.\n\n---\n\n## Fixed:\n- PNG image caching resulting in broken images after Obsidian restarts\n- SVG export now displays embedded iframes with the correct embed link (note this feature only works when you open the SVGs in a browser outside Obsidian).\n\n## Updated / fixed in Excalidraw Automate\n- I updated ${String.fromCharCode(96)}lib/ExcalidrawAutomate.d.ts${String.fromCharCode(96)} and published a new version of obsidian-excalidraw-plugin type library to npmjs.\n- Added new ExcalidrawAutomate functions: ${String.fromCharCode(96)} addEmbeddable()${String.fromCharCode(96)}, ${String.fromCharCode(96)}DEVICE${String.fromCharCode(96)}, ${String.fromCharCode(96)}newFilePrompt()${String.fromCharCode(96)}, and ${String.fromCharCode(96)}getLeaf()${String.fromCharCode(96)}\n- ${String.fromCharCode(96)}addImage${String.fromCharCode(96)} and ${String.fromCharCode(96)}addElementsToView${String.fromCharCode(96)} were extended with 1-1 additional optional parameter. As a result of ${String.fromCharCode(96)}shouldRestoreElements${String.fromCharCode(96)} defaulting to false, all elements in the scene will no longer be updated (iframes will not blink) when you add elements via script.\n- There is a new event hook: ${String.fromCharCode(96)}onPasteHook${String.fromCharCode(96)}. This will be called whenever the user pastes something to the canvas. You can use this callback if you want to do something additional during the onPaste event. In case you want to prevent the Excalidraw default onPaste action you must return false\n\n${String.fromCharCode(96,96,96)}typescript\nasync addImage(\n topX: number,\n topY: number,\n imageFile: TFile | string,\n scale: boolean = true,\n anchor: boolean = true,\n): Promise;\n\nasync addElementsToView(\n repositionToCursor: boolean = false,\n save: boolean = true,\n newElementsOnTop: boolean = false,\n shouldRestoreElements: boolean = false,\n): Promise;\n\n onPasteHook: (data: {\n ea: ExcalidrawAutomate;\n payload: ClipboardData;\n event: ClipboardEvent;\n excalidrawFile: TFile;\n view: ExcalidrawView;\n pointerPosition: { x: number; y: number };\n }) => boolean = null;\n\naddEmbeddable(\n topX: number,\n topY: number,\n width: number,\n height: number,\n url?: string,\n file?: TFile\n): string;\n\nget DEVICE(): DeviceType;\n\nnewFilePrompt(\n newFileNameOrPath: string,\n shouldOpenNewFile: boolean,\n targetPane?: PaneTarget,\n parentFile?: TFile\n): Promise;\n\ngetLeaf(\n origo: WorkspaceLeaf,\n targetPane?: PaneTarget\n): WorkspaceLeaf;\n${String.fromCharCode(96,96,96)}\n`,"1.9.8":'\n## New Features\n- Zoom to heading and block in markdown frames.\n- Added an iframe menu that allows users to change heading/block zoom, center the element, and open it in the browser.\n- Replaced twitframe with platform.twitter for tweets. The "Read more" and "Reply" buttons now work. Embedded tweets will honor theme settings.\n\n## Bug Fixes\n- Fixed an issue where embedded markdown frames disappeared in fullscreen mode. [#1197](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1197)\n- Resolved a problem with the "Embed Markdown as Image" feature where changes to embed properties were not always honored. [#1201](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1201)\n- When inserting any file from the Vault and embedding a Markdown document as an image, the embed now correctly honors the section heading if specified. [#1200](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1200)\n- SVG and PNG autoexport now function properly when closing a popout window. [#1209](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1209)\n- Many other minor fixes\n',"1.9.7":`\n## Fixed:\n\n- Fixed an issue where using the color picker shortcut would cause the UI to disappear in mobile view mode.\n- You can now add YouTube playlists to iframes.\n- Fixed a bug where the "Add any file" dropdown suggester opened in the main Obsidian workspace instead of the popout window when Excalidraw was running. ([#1179](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1191))\n- Made some improvements to the logic of opening in the adjacent pane, although it is still not perfect.\n- Fixed an issue where Obsidian sync would result in the loss of the last approximately 20 seconds of work. Excalidraw's handling of sync is now fixed. ([#1189](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1189))\n\n## New:\n\n- Introducing Image Cache: Excalidraw will now cache rendered images embedded in Markdown documents, which will enhance the markdown rendering experience.\n- Backup Cache: Excalidraw now stores a backup on your device when saving, in case the application is terminated during a save operation. If you are using sync, you can find the latest backup on the device you last used to edit your drawing.\n- Added ${String.fromCharCode(96)}frame=${String.fromCharCode(96)} parameter to image references. ([#1194](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1194)) For more details about this feature, check out this [YouTube video](https://youtu.be/yZQoJg2RCKI).\n- When an SVG image from Draw.io is embedded in Excalidraw, clicking the image will open the file in the [Diagram plugin](https://github.com/zapthedingbat/drawio-obsidian) (if available).\n- Added the [Create DrawIO file](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Create%20DrawIO%20file.md) Excalidraw Automate Script to the library, which allows you to create a new draw.io drawing and add it to the current Excalidraw canvas.\n\n## New in ExcalidrawAutomate\n\n${String.fromCharCode(96,96,96)}typescript\nasync getAttachmentFilepath(filename: string): Promise\n${String.fromCharCode(96,96,96)}\n\nThis asynchronous function retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. It creates the attachment folder if it doesn't already exist. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.\n\n${String.fromCharCode(96,96,96)}typescript\ngetElementsInFrame(frameElement: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}\n\nThis function returns the elements contained within a frame.\n`,"1.9.6":`\n## Fixed\n- help shortcuts are really hard to see [#1176](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1179)\n- link icons not visible on elements after 1.9.5 release (reported on Discord)\n- PDFs in iFrames will now respect the ${String.fromCharCode(96)}[[document.pdf#page=155]]${String.fromCharCode(96)} format\n- Keyboard shortcuts were not working properly on external drop. Check [updated keyboard map](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\nKeyboard map\n`,"1.9.5":`\n
\n\n
\n\n## New\n- IFrame support: insert documents from your Obsidian Vault and insert youtube, Vimeo, and generally any website from the internet\n- Frame support: use frames to group items on your board\n\n## New in ExcalidrawAutomate\n- selectElementsInView now also accepts a list of element IDs\n- new addIFrame function that accepts an Obsidian file or a URL string\n${String.fromCharCode(96,96,96)}typescript\nselectElementsInView(elements: ExcalidrawElement[] | string[]): void;\naddIFrame(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;\n${String.fromCharCode(96,96,96)}\n`,"1.9.3":'\n## New from Excalidraw.com\n- Eyedropper tool. The eyedropper is triggered with "i". If you hold the ALT key while clicking the color it will set the stroke color of the selected element, else the background color.\n- Flipping multiple elements\n- Improved stencil library rendering performance + the stencil library will remember the scroll position from the previous time it was open\n\n## Fixed\n- Replaced command palette and tab export SVG/PNG/Excalidraw actions with "export image" which will take the user to the export image dialog.\n',"1.9.2":`\n
\n\n
\n\n## New\n- Excalidraw.com Color Picker redesign [#6216](https://github.com/excalidraw/excalidraw/pull/6216)\n- Updated palette loader script in the script library\n- New ExcalidrawAutomate API to load Elements and AppState from another Excalidraw file.\n${String.fromCharCode(96,96,96)}typescript\nasync getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>\n${String.fromCharCode(96,96,96)}\n`,"1.9.1":'\n## Updates from Excalidraw.com\n- "Unlock all elements" - new action available via the context menu [#5894](https://github.com/excalidraw/excalidraw/pull/5894)\n- Minor improvements to improve the speed [#6560](https://github.com/excalidraw/excalidraw/pull/6560)\n- Retain Seed on Shift Paste [#6509](https://github.com/excalidraw/excalidraw/pull/6509)\n\n## New/Fixed\n- Clicking on the link handle (top right corner) will open the link in the same window\n- CTRL/CMD click on a link will open the link in a new tab and will focus on the new tab\n- Linking to parts of images. In some cases clicking search results, links, or backlinks did not focus on the right element according to the link. Fixed.\n',"1.9.0":`\n
\n\n
\n\n## Fixed\n- Embedded images, markdowns, PDFs will load one by one, not in one go after a long wait\n\n## New\n- Embed PDF\n\n## New in ExcalidrawAutomate\n- onFileCreateHook: if set this hook is called whenever a new drawing is created using Excalidraw command palette menu actions. If the excalidraw file is created using Templater or other means, the trigger will not fire. [#1124](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1124)\n${String.fromCharCode(96,96,96)}typescript\n onFileCreateHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being created\n view: ExcalidrawView;\n }) => Promise;\n ${String.fromCharCode(96,96,96)}\n`,"1.8.26":"\n## Fixed\n- Dynamic styling did not pick up correctly\n - the accent color with the default Obsidian theme\n - the drawing theme color with the out of the box, default new drawing (not using a template)\n- The Obsidian tools panel did not pick up user scripts when installing your very first script. A reload of Obsidian was required.\n","1.8.25":'\n
\n\n
\n\n## New & improved\n- Multi-link support\n- Updated [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script for better handwritten text support. \n - Add links to text elements\n - Creating wrapped text in transparent sticky notes\n - Add text to arrows and lines\n - Handwriting support on iOS via Scribble\n\n## Fixed\n - The long-standing issue of jumping text\n \n',"1.8.24":`\n## Updates from Excalidraw.com\n- fix: color picker keyboard handling not working\n- fix: center align text when bind to the container via context menu\n- fix: split "Edit selected shape" shortcut\n\n## Fixed\n- BUG: Area embed link of svg inside excalidraw embed entire svg instead of area [#1098](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1098)\n\n## New\n- I updated the [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script with tons of new features. I am still beta testing the script. I will release a demo video in the next few days.\n\n## New in Excalidraw Automate\n- I added many more configuration options for the scriptEngine utils.inputPrompt function. See [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) for a demonstration of this new feature.\n${String.fromCharCode(96,96,96)}typescript\n public static async inputPrompt(\n view: ExcalidrawView,\n plugin: ExcalidrawPlugin,\n app: App,\n header: string,\n placeholder?: string,\n value?: string,\n buttons?: { caption: string; tooltip?:string; action: Function }[],\n lines?: number,\n displayEditorButtons?: boolean,\n customComponents?: (container: HTMLElement) => void\n )\n${String.fromCharCode(96,96,96)}`,"1.8.23":'\n## Fixes\n- Fixed palm rejection to prevent unwanted spikes when using the freedraw tool. ([#1065](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1065))\n- Fixed issue where images disappeared when zoomed in. ([#6417](https://github.com/excalidraw/excalidraw/pull/6417))\n- Autosave will now save the drawing when you change the theme from dark to light or vice versa. ([#1080](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1080))\n- Added padding to short LaTeX formulas to prevent cropping. ([#1053](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1053))\n\n## New Features\n- Added a new command palette action: Toggle to invert default binding behavior. This new feature allows you to switch between normal and inverted mode. In normal mode, arrows will bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects. In inverted mode, arrows will not bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects.\n- You can now set a template LaTeX formula in the plugin settings (under experimental features) to be used when creating a new LaTeX formula. ([#1090](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1090))\n- Redesigned the Image Export dialog. I hope dropdowns are now more intuitive than the toggles were.\n- Added the ability to export only the selected part of a drawing. See the Export dialog for more information.\n- Added a zigzag fill easter egg. See a demo of this feature [here](https://twitter.com/excalidraw/status/1645428942344445952?s=61&t=nivKLx2vgl6hdv2EbW4mZg).\n- Added a new expert function: recolor embedded Excalidraw and SVG images (not JPG, PNG, BMP, WEBP, GIF). See a demo of this feature here:\n\n
\n\n
\n',"1.8.22":`\n## Fixed\n- Styling of custom pen and script buttons in the side panel was inverted.\n- Minor tweaks to dynamic styling. [see this video to understand dynamic styling](https://youtu.be/fypDth_-8q0)\n\n## New\n- New scripts by @threethan:\n - [Auto Draw for Pen](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Auto%20Draw%20for%20Pen.md): Automatically switches between the select and draw tools, based on whether a pen is being used. Supports most pens including Apple Pencil.\n - [Hardware Eraser Support](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Hardware%20Eraser%20Support.md): Adds support for pen inversion, a.k.a. the hardware eraser on the back of your pen. Supports Windows based styluses. Does not suppoprt Apple Pencil or S-Pen.\n- Added separate buttons to support copying link, area or group references to objects on the drawing. [#1063](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1063). See [this video](https://youtu.be/yZQoJg2RCKI) for more details on how this works.\n- Hover preview will no longer trigger for image files (.png, .svg, .jpg, .gif, .webp, .bmp, .ico, .excalidraw)\n- Minor updates to the [Slideshow](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) script. You can download the updated script from the Excalidraw script library. The slideshow will now correctly run also when initiated in a popout window. When the drawing is in a popout window, the slideshow will not be full screen, but will only occupy the popout window. If you run the slideshow from the main Obsidian workspace, it will be displayed in full-screen mode.\n- Updated the Icon Library script to now include image keywords under each of the images to allow searching for keywords (CTRL/CMD+F). I've uploaded the new script to [here](https://gist.github.com/zsviczian/33ff695d5b990de1ebe8b82e541c26ad). If you need further information watch this [video](https://youtu.be/_OEljzZ33H8)\n\n## New in ExcalidrawAutomate\n- ${String.fromCharCode(96)}addText${String.fromCharCode(96)} ${String.fromCharCode(96)}formatting${String.fromCharCode(96)} parameter now accepts ${String.fromCharCode(96)}boxStrokeColor${String.fromCharCode(96)} and ${String.fromCharCode(96)}textVerticalAlign${String.fromCharCode(96)} values.\n${String.fromCharCode(96,96,96)}typescript\naddText(\n topX: number,\n topY: number,\n text: string,\n formatting?: {\n wrapAt?: number;\n width?: number;\n height?: number;\n textAlign?: "left" | "center" | "right";\n box?: boolean | "box" | "blob" | "ellipse" | "diamond";\n boxPadding?: number;\n boxStrokeColor?: string;\n textVerticalAlign?: "top" | "middle" | "bottom";\n },\n id?: string,\n ): string;\n${String.fromCharCode(96,96,96)}\n- new ${String.fromCharCode(96)}onFileOpenHook${String.fromCharCode(96)}. If set, this callback is triggered, when an Excalidraw file is opened. You can use this callback in case you want to do something additional when the file is opened. This will run before the file level script defined in the ${String.fromCharCode(96)}excalidraw-onload-script${String.fromCharCode(96)} frontmatter is executed. Excalidraw will await the result of operations here. Handle with care. If you change data such as the frontmatter of the underlying file, I haven't tested how it will behave.\n${String.fromCharCode(96,96,96)}typescript\nonFileOpenHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being loaded\n view: ExcalidrawView;\n}) => Promise;\n${String.fromCharCode(96,96,96)}`,"1.8.21":'\n## Quality of Life improvements\n- Dynamic Styling (see plugin settings / Display). When Dynamic Styling is enabled it fixes Excalidraw issues with the Minimal Theme\n- New "Invert Colors" script\n\n
\n\n
\n\n### Note\nThe few of you, that are using the Dynamic Styling Templater script, please remove it and restart Obsidian.\n',"1.8.20":"\n## Fixed\n- Excalidraw froze Obsidian in certain rare situations [#1054](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1054)\n- File loading error [#1062](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1062)\n- Embedded images in markdown documents no longer have the line on the side. Image sizing works better. [#1059](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1059)\n- Locked elements will not show a hover preview [#1060](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1060)\n- CTRL/CMD + K correctly triggers add link [#1056](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1056)\n\n## New\n- Grid color adjusts to the view background color\n\nI'm sorry, but the sticky note editing issue on Android with the on-screen keyboard has still not been resolved. If you also experience this error, please help raise the priority with the core Excalidraw team by commenting on this issue: [#6330](https://github.com/excalidraw/excalidraw/issues/6330)\n","1.8.19":"\n## Fixed: Text wrapping issue in sticky notes\n\nI fixed an issue where text would wrap differently and words would disappear during text editing in sticky notes. You can check out the details on [GitHub #6318](https://github.com/excalidraw/excalidraw/issues/6331).\n\nI am aware of three additional issues related to container text editing that are still open. I apologize for any inconvenience caused by the recent change in how text size is calculated on Excalidraw.com, which has had a knock-on effect on Obsidian. I am actively working to address the following issues:\n\n- Pinch zooming while editing text in a text container [GitHub #6331](https://github.com/excalidraw/excalidraw/issues/6331)\n- Container text jumps on edit on Android with on-screen keyboard [GitHub #6330](https://github.com/excalidraw/excalidraw/issues/6330)\n- Shadow text when editing text containers without a keyboard on iOS [GitHub #6329](https://github.com/excalidraw/excalidraw/issues/6329)\n\nThank you for your patience while I work on resolving these issues.\n","1.8.18":`\n## Fixed\n- Text scaling issue introduced in 1.8.17\n- [#1043](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1043): Error handling when ${String.fromCharCode(96)}onCanvasColorChangeHook${String.fromCharCode(96)} is executed. This is used in the [Dynamic Styling Script](https://youtu.be/LtR04fNTKTM). \n`,"1.8.17":'\n## New from Excalidraw.com\n- Improved text wrapping in the ellipse and diamond shapes [6172](https://github.com/excalidraw/excalidraw/pull/6172)\n\n## New\n- Updated slideshow script\n\n
\n\n
\n\n## Fixed: \n- "Save to..." in the Stencil Library menu now works as expected [#1032](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1032)\n',"1.8.16":'\n**!!! Modifier keys have changed, please review the table below !!!**\n[Click this to see the new shortcuts overview image](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\n## Fixed \n- This version was extensively tested and developed on MacOS to remove usability issues.\n- New command palette action to create a new drawing in a new tab\n- Modifier keys to open links in the active window, splitting the current view to the right, in a new tab, or in a popout window now behave consistently both in Excalidraw and when clicking a drawing that is embedded in a markdown note.\n- Drag & Drop properly works from within Obsidian, from a web browser, and from the OS file explorer\n\n
\n\n
\n',"1.8.14":"\n## Fixed\n- text element link gets deleted when the drawing is reloaded\n","1.8.13":'\n## Fixed\n- When changing a text element in markdown mode, the change seem to have showed up when switching back to Excalidraw mode, but then lost these changes when loading the file the next time.\n- Scrolling through a page that has embedded drawings on Obsidian Mobile accidently opens the drawing in Excalidraw when touching the image. Now you need to press and hold to open the image in Excalidraw. [#1003](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1003)\n- The scrollbar is no longer visible when presenting using the SlideShow script\n- Stroke properties could not be changed when custom pen settings had "Stroke & fill applies to: All shapes". It works now.\n\n## QoL\n- Custom pens will remember the stroke changes until you press the pen preset button again.\n - This is a bit hard to explain, let me try... Essentially, when you use a custom pen, it will keep the changes you made to the pen (like changing the stroke width) until you press the pen-prereset button again. So, for example, if you\'re using a mind mapping custom pen and change its color, and then switch to a different tool like text, when you switch back to the freedraw tool using the Excalidraw tools panel, the pen will still have the same color you set earlier, but if you press the mind mapping pen-preset button, it will default back to your custom pen settings including your preset color.\n- Added new buttons to load current stroke color and background color in the pen settings dialog. Also added an edit box so you can configure any valid color string (including with transparency) for pen stroke and background colors. [#991](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/991)\n',"1.8.11":'\n
\n\n
\n\n# New\n- Support for referencing images from the internet in Excalidraw drawings, including YouTube thumbnail support. [#913](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/913)\n - Link to images on the internet without creating a copy in your Vault by holding down the CTRL key while dropping the link or image.\n - Automatic conversion of image URLs and YouTube links into image elements with original links added as a link on the element when pasting. Note, that if you only want to paste the plain text link (not the image), first double-click the canvas to start a new text element, then paste the link.\n- Two new options added to plugin settings:\n - Make mouse wheel zoom by default [#474](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/474)\n - Allow pinch zoom in pen mode [#828](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/828)\n- Update to the [Set Grid](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20Grid.svg) script now saves the grid setting for the current file.\n',"1.8.10":'\n
\n\n
\n\n# QoL improvements\n- You can structure icons in the Obsidian tools panel by moving scripts to folders\n![image|300](https://user-images.githubusercontent.com/14358394/212389592-306130d0-209a-49df-99bb-c538f2155b23.png)\n- I added useful actions to the hamburger menu in both tray-mode and normal-mode. \n![image|150](https://user-images.githubusercontent.com/14358394/212534508-9107fd19-27ab-4415-8abc-bc97c73afc0b.png)\n- I added a new Export Image dialog. You can access the new export screen from the hamburger-menu\n![image|200](https://user-images.githubusercontent.com/14358394/212534654-7a479e23-8d5d-452e-9a18-a9896278aa27.png)\n- Links in help now point to Obsidian-Excalidraw relevant content.\n- I added a welcome screen\n![image|150](https://user-images.githubusercontent.com/14358394/212534568-3cd1e8a1-5b20-4a30-96e4-40d7dac57e33.png)\n- I updated the alternative dark mode / dynamic styling [script](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n',"1.8.9":"\n# Minor QoL improvements\n- When you open a second drawing in the same Excalidraw view (i.e. by navigating a link) and make a change to this drawing, and then press UNDO, the entire drawing disappeared. Redo brought the image back, however, this behavior was frustrating. Not anymore...\n- On iPad\n - when you open the command palette, autozoom resized the drawing. If the Obsidian command palette or some other modal window is shown Excalidraw will not resize the view.\n - when you add a link to the drawing using the Command Palette, sometimes the link was added in a far corner of the drawing outside the current view area. This should be fixed now.","1.8.8":`\n
\n\n
\n\n# New\n- The plugin now includes support for [Perfect Freehand](https://perfect-freehand-example.vercel.app/) pen-options. I've also added a new [Alternative Pens](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Alternative%20Pens.md) script.\n- Embed scene in exported PNG and SVG images [#860](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/860). This means that the export will be a normal PNG or SVG image with the added functionality that if someone loads the image into excalidraw.com it will open as a normal excalidraw file.\n - I've added 2 new Command Palette actions (export PNG, export SVG with embedded scene).\n - If you SHIFT click ${String.fromCharCode(96)} Save as PNG (or SVG)${String.fromCharCode(96)} in the workspace-tab menu, Excalidraw will embed the scene in the export.\n- I updated the [Organic Line](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Organic%20Line.md) script. It has an improved thick-to-thin look and a new thin-to-thick-to-thin line type.\n\n# Fixed\n- Intelligent image width setting [#955](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/955). Before this change, when the embedded image was small, the image would be extended to meet the image width setting in plugin settings. From now on, if the image is smaller than max-width, it will only extend to max-width. You can still set 100% width using custom CSS. See more on that [here](https://github.com/zsviczian/obsidian-excalidraw-plugin#embedded-images).\n\n# New in ExcalidrawAutomate\n- I added the ${String.fromCharCode(96)} plaintext${String.fromCharCode(96)} parameter to ${String.fromCharCode(96)}ExcalidrawAutomate.create${String.fromCharCode(96)} . Using this, you can add some text below the frontmatter but above the ${String.fromCharCode(96)}# Text Elements${String.fromCharCode(96)} section. Use this for example to add metadata to your file. (e.g. I use this in my Daily Quote template to add a Dataview field for the ${String.fromCharCode(96)}Author::${String.fromCharCode(96)} and add the quote with a standard block reference, so I can easily reference it in other files. I also add the ${String.fromCharCode(96)}#quote${String.fromCharCode(96)} tag to the file using this.)\n- The script running in the ScriptEngine now also receives the ${String.fromCharCode(96)}TFile${String.fromCharCode(96)} object for the script itself. You can access this object during execution via the ${String.fromCharCode(96)}utils.scriptFile${String.fromCharCode(96)} variable. \n`,"1.8.7":'\n## New from Excalidraw.com\n- Support shrinking text containers to their original height when text is removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)\n
\n\n
\n\n## Fixed\n- removed the white background when editing arrow-label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)\n- Minor style tweaks\n - for embedding Excalidraw into Obsidian Canvas. e.g. dragging no longer accidentally creates an image copy of the drawing, and\n - style tweaks on the Excalidraw canvas\n\n## New\n- If you set a different text color and sticky note border color, now if you change the border color, the text color will not be changed.\n',"1.8.6":`\n## New from Excalidraw.com:\n- Better default radius for rectangles [#5553](https://github.com/excalidraw/excalidraw/pull/5553). Existing drawings will look unchanged, this applies only to new rectangles.\n![image|200](https://user-images.githubusercontent.com/5153846/206264345-59fd7436-e87b-4bc9-ade8-9e6f6a6fd8c1.png)\n> [!attention]- ExcalidrawAutomate technical details\n> - ${String.fromCharCode(96)}strokeSharpness${String.fromCharCode(96)} is now deprecated\n> - use roundness instead\n> - ${String.fromCharCode(96)}roundness === null${String.fromCharCode(96)} is legacy ${String.fromCharCode(96)}strokeSharpness = "sharp"${String.fromCharCode(96)}\n> - ${String.fromCharCode(96)}roundness = { type: RoundnessType; value?: number }${String.fromCharCode(96)}\n> - type: 1, LEGACY, type:2 PROPORTIONAL_RADIUS, type:3 ADAPTIVE_RADIUS: 3\n> - value:\n> - Radius represented as % of element's largest side (width/height).\n> DEFAULT_PROPORTIONAL_RADIUS = 0.25;\n> - Fixed radius for the ADAPTIVE_RADIUS algorithm. In pixels.\n> DEFAULT_ADAPTIVE_RADIUS = 32;\n\n## New\n- For Obsidian 1.1.6 and above\n - Improved embedding into Obsidian Canvas\n - Improved embedding into Markdown documents\n- Added setting under ${String.fromCharCode(96)}Display/Default mode when opening Excalidraw${String.fromCharCode(96)} to always open the drawing in view mode on Mobile, but in normal mode on desktop. [#939](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/939)\n\n## Fixed\n- Zoom reset tooltip appears twice [#942](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/942)\n- Hid export library from library menu as it does not work due to Obsidian limitations. Use the command palette export library instead.\n- Arrow with label did not get exported and embedded correctly [#941](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/941)\n![image|200](https://user-images.githubusercontent.com/22638687/207845868-b352ddb1-7994-4f13-a0b2-f2e19bd72935.png)\n`,"1.8.4":'\n## New from Excalidraw.com\n- Labels on Arrows!!! [#5723](https://github.com/excalidraw/excalidraw/pull/5723)\n - To add a label press "Enter" or "Double click" on the arrow\n - Use "Cmd/Ctrl+double click" to enter the line editor\n\n
\n\n
\n\n## New\n- **Changed behavior**: In the Obsidian markdown editor clicking an Excalidraw image will not open the image (to avoid accidentally opening the image on a tablet). To open a drawing for editing in Excalidraw double click or long-tap on it. [#920](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/920)\n\n## Fixed \n- Text stroke color is not honored when pasting a HEX color string to an Excalidraw canvas open in an Obsidian popout window [#921](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/921)\n- The new [multi-line >> multi-element paste behavior](https://github.com/excalidraw/excalidraw/pull/5786) introduced in the previous release did not work as expected in Obsidian. Now it does.\n',"1.8.2":`\nIntroducing the [Excalidraw Slideshow Script](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) - available in the script store\n
\n\n
\n\n## Fixed\n- Obsidian tools panel gets misplaced after switching Obsidian workspace tabs\n\n## New in ExcalidrawAutomate\n- changed ${String.fromCharCode(96)}viewToggleFullScreen(forceViewMode: boolean = false): void${String.fromCharCode(96)}: the function will toggle view mode on when going to full screen and view mode off when terminating full screen.\n- new functions\n${String.fromCharCode(96,96,96)}typescript\nsetViewModeEnabled(enabled: boolean):void;\nviewUpdateScene(\n scene: {\n elements?: ExcalidrawElement[];\n appState?: AppState;\n files?: BinaryFileData;\n commitToHistory?: boolean;\n },\n restore: boolean = false,\n ):void;\nviewZoomToElements(\n selectElements: boolean,\n elements: ExcalidrawElement[]\n ):void;\n${String.fromCharCode(96,96,96)}\n\n`,"1.8.1":`\n## New and fixes from Excalidraw.com\n- New text paste behavior. Pasting multiline text will generate separate text elements unless you hold down the shift button while pasting [#5786](https://github.com/excalidraw/excalidraw/pull/5786)\n- line editor fixes [#5927](https://github.com/excalidraw/excalidraw/pull/5927)\n\n## Fixed\n- The Command Palette "Insert link" action now inserts the new link at the top drawing layer, not at the bottom.\n- Updated, hopefully, better organized, Plugin Readme.\n\n## New\n- Second attempt at moving to React 18. This upgrade is required to maintain alignment with the core Excalidraw product and to continue to benefit from Excalidraw.com enhancements.\n- Added options to Plugin Settings\n - to disable autozoom when loading a drawing for the first time [#907](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/907)\n - to modify autosave interval. You can now set an autosave interval for desktop and for mobile [#888](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/888)\n\n## New in ExcalidrawAutomate\n- Published the obsidian_module on the ExcalidrawAutomate object. ${String.fromCharCode(96)}ExcalidrawAutomate.obsidian${String.fromCharCode(96)}. Publishing this object will give script developers increased flexibility and control over script automation.\n`,"1.8.0":'\n
\n\n
\n\n## New\n- Optical Character Recognition (OCR). Introducing the MVP (minimum viable product) release of the integration of [Taskbone](https://taskbone.com) OCR into Excalidraw. See the new scan button on the Obsidian tools panel.\n- New and improved full-screen mode\n - Activate using the Obsidian tools panel, the Obsidian Command Palette, or the Alt+F11 shortcut\n - The ESC key no longer closes full-screen\n - Full-screen mode works properly on iOS as well\n- Improved Icon visibility on the Obsidian tools panel\n- Added 3 additional buttons to the tools panel\n - Force save\n - Open link (useful on Mobile devices). In the case of LaTeX equations, the button opens the equation properties.\n - Open the link in a new pane. In the case of embedded markdown documents, the button opens the embed properties.\n\n## Fixed\n- The [deconstruct selected elements into a new drawing](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Deconstruct%20selected%20elements%20into%20new%20drawing.md) script now also correctly decomposes transcluded text elements.\n',"1.7.30":"\nFix:\n- Forcing the embedded image to always scale to 100% (a feature introduced in [1.7.26](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.7.26)) scaled the embedded excalidraw drawings incorrectly on devices with a pixel ratio of 2 or 3 (e.g. iPads). This is now fixed, however, this fix might retrospectively impact drawings that use this feature. Sorry for that.\n","1.7.29":"\n- This is a big update that accommodates the **UI redesign** on Excalidraw.com [#5780](https://github.com/excalidraw/excalidraw/pull/5780). The change on the surface may seem superficial, however, I had to tweak a number of things to make it work in Obsidian. I hope I found everything that broke and fixed it, if not, I'll try to fix it quickly...\n- This update also comes with changes under the hood that **fix issues with Excalidraw Automate** - paving the way for further scripts, plus some smaller bug fixes.\n- I **reworked text wrapping**. In some cases, text wrapping in SVG exports looked different compared to how the text looked in Excalidraw. This should now be fixed.\n- If you are using the **Experimental Dynamic Styling** of the Excalidraw Toolbar, then I recommend updating your styling script following base on [this](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n","1.7.27":'## New\n- Import SVG drawing as an Excalidraw object. [#679](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/679)\n\n
\n\n
\n\n## Fixed\n- Large drawings freeze on the iPad when opening the file. I implemented a workaround whereby Excalidraw will avoid zoom-to-fit drawings with over 1000 elements. [#863](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/863)\n- Reintroduced copy/paste to the context menu\n',"1.7.26":'## Fixed\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\n- Transcluded text will now exclude ^block-references at end of lines\n- Phantom duplicates of the drawing appear when "zoom to fit" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the "+" & "-" zoom buttons.\n- Latest updates from Excalidarw.com\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\n\n## New - power user features\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.'};class ReleaseNotes extends obsidian_module.Modal{constructor(e,t,A){super(e),this.plugin=t,this.version=A}onOpen(){var e;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(e=this.version)&&void 0!==e?e:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const t=this.version?Object.keys(RELEASE_NOTES).filter((t=>"Intro"===t||isVersionNewerThanOther(t,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian_module.MarkdownRenderer.renderMarkdown(t,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}class ExportDialog extends obsidian_module.Modal{constructor(e,t,A){super(app),this.plugin=e,this.view=t,this.file=A,this.dirty=!1,this.hasSelectedElements=!1,this.ea=getEA(this.view),this.api=this.ea.getExcalidrawAPI(),this.padding=getExportPadding(this.plugin,this.file),this.scale=getPNGScale(this.plugin,this.file),this.theme=getExportTheme(this.plugin,this.file,this.api.getAppState().theme),this.boundingBox=this.ea.getBoundingBox(this.ea.getViewElements()),this.embedScene=!1,this.exportSelectedOnly=!1,this.saveToVault=!0,this.transparent=!getWithBackground(this.plugin,this.file),this.saveSettings=!1}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Export Image"),this.hasSelectedElements=this.view.getViewSelectedElements().length>0,this.selectedOnlySetting.setVisibility(this.hasSelectedElements)}async onClose(){this.dirty=this.saveSettings}async createForm(){let e,t;this.contentEl.createEl("h1",{text:"Image settings"}),this.contentEl.createEl("p",{text:"Transparency only affects PNGs. Excalidraw files can only be exported outside the Vault. PNGs copied to clipboard may not include the scene."});const A=()=>{const e=Math.round(this.scale*this.boundingBox.width+2*this.padding),t=Math.round(this.scale*this.boundingBox.height+2*this.padding);return fragWithHTML(`The lager the scale, the larger the image.
Scale: ${this.scale}
Image size: ${e}x${t}`)},i=()=>fragWithHTML(`Current image padding is ${this.padding}`);t=new obsidian_module.Setting(this.contentEl).setName("Image padding").setDesc(i()).addSlider((n=>{n.setLimits(0,50,1).setValue(this.padding).onChange((n=>{this.padding=n,e.setDesc(A()),t.setDesc(i())}))})),e=new obsidian_module.Setting(this.contentEl).setName("PNG Scale").setDesc(A()).addSlider((t=>t.setLimits(.5,5,.5).setValue(this.scale).onChange((t=>{this.scale=t,e.setDesc(A())})))),new obsidian_module.Setting(this.contentEl).setName("Export theme").addDropdown((e=>e.addOption("light","Light").addOption("dark","Dark").setValue(this.theme).onChange((e=>{this.theme=e})))),new obsidian_module.Setting(this.contentEl).setName("Background color").addDropdown((e=>e.addOption("transparent","Transparent").addOption("with-color","Use scene background color").setValue(this.transparent?"transparent":"with-color").onChange((e=>{this.transparent="transparent"===e})))),new obsidian_module.Setting(this.contentEl).setName("Save or one-time settings?").addDropdown((e=>e.addOption("save","Save these settings as the preset for this image").addOption("one-time","These are one-time settings").setValue(this.saveSettings?"save":"one-time").onChange((e=>{this.saveSettings="save"===e})))),this.contentEl.createEl("h1",{text:"Export settings"}),new obsidian_module.Setting(this.contentEl).setName("Embed the Excalidraw scene in the exported file?").addDropdown((e=>e.addOption("embed","Embed scene").addOption("no-embed","Do not embed scene").setValue(this.embedScene?"embed":"no-embed").onChange((e=>{this.embedScene="embed"===e})))),DEVICE.isDesktop&&new obsidian_module.Setting(this.contentEl).setName("Where to save the image?").addDropdown((e=>e.addOption("vault","Save image to your Vault").addOption("outside","Export image outside your Vault").setValue(this.saveToVault?"vault":"outside").onChange((e=>{this.saveToVault="vault"===e})))),this.selectedOnlySetting=new obsidian_module.Setting(this.contentEl).setName("Export entire scene or just selected elements?").addDropdown((e=>e.addOption("all","Export entire scene").addOption("selected","Export selected elements").setValue(this.exportSelectedOnly?"selected":"all").onChange((e=>{this.exportSelectedOnly="selected"===e}))));const n=this.contentEl.createDiv({cls:"excalidraw-prompt-buttons-div"});n.createEl("button",{text:"PNG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.savePNG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportPNG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"SVG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.saveSVG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportSVG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"Excalidraw",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportExcalidraw(this.hasSelectedElements&&this.exportSelectedOnly),this.close()},DEVICE.isDesktop&&(n.createEl("button",{text:"PNG to Clipboard",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportPNGToClipboard(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()})}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(e){super(e),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const t=e.view.plugin.getPackage(e.view.ownerWindow).react;this.containerRef=t.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isDirty:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setDirty(e){this.setState((()=>({isDirty:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((t=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(e?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,t=0){this.setState((()=>{const{offsetTop:A,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=A-e,s=i-t,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))},onPointerDown:e=>{const t=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},A=()=>{var e,i;null===(e=this.props.view.ownerDocument)||void 0===e||e.removeEventListener("pointerup",A),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",t)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.props.view.ownerDocument.addEventListener("pointerup",A),this.props.view.ownerDocument.addEventListener("pointermove",t)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"scriptEngine",title:t$d("INSTALL_SCRIPT_BUTTON"),action:()=>{new ScriptInstallPrompt(this.props.view.plugin).open()},icon:ICONS.scriptEngine,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"ocr",title:t$d("RUN_OCR"),action:e=>{this.props.view.plugin.settings.taskboneEnabled?this.props.view.plugin.taskbone.getTextForView(this.props.view,isCTRL(e)):new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3)},icon:ICONS.ocr,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLink",title:t$d("OPEN_LINK_CLICK"),action:e=>{const t=new MouseEvent("click",{ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,shiftKey:e.shiftKey,altKey:e.altKey});this.props.view.handleLinkClick(t)},icon:ICONS.openLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLinkProperties",title:t$d("OPEN_LINK_PROPS"),action:()=>{const e=new MouseEvent("click",{ctrlKey:!0,metaKey:!0,shiftKey:!1,altKey:!1});this.props.view.handleLinkClick(e)},icon:ICONS.openLinkProperties,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"save",title:t$d("FORCE_SAVE"),action:()=>{this.props.view.forceSave()},icon:saveIcon(this.state.isDirty),view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"exportIMG",title:t$d("EXPORT_IMAGE"),action:()=>{const e=this.props.view;e.exportDialog||(e.exportDialog=new ExportDialog(e.plugin,e,e.file),e.exportDialog.createForm()),e.exportDialog.open()},icon:ICONS.ExportImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"pdf",title:t$d("INSERT_PDF"),action:()=>{this.props.centerPointer(),new InsertPDFModal(this.props.view.plugin,this.props.view).open()},icon:ICONS.insertPDF,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/r08wk-58DPk"):(this.props.centerPointer(),insertLaTeXToView(this.props.view))},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/yZQoJg2RCKI"):this.props.view.copyLinkToSelectedElementToClipboard(isCTRL(e)?"group=":isSHIFT(e)?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:e=>{this.props.view.plugin.importSVGDialog.start(this.props.view)},icon:ICONS.importSVG,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";const t=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,A=A=>e?A.startsWith(t):!A.startsWith(t);if(0===Object.keys(this.state.scriptIconMap).filter((e=>A(e))).length)return"";const i=new Set;Object.keys(this.state.scriptIconMap).filter((e=>A(e))).forEach((e=>i.add(this.state.scriptIconMap[e].group)));const n=Array.from(i).sort(((e,t)=>e>t?1:-1));return n.push(n.shift()),React__namespace.createElement(React__namespace.Fragment,null,n.map(((t,A)=>React__namespace.createElement("fieldset",{key:`${t}-${A}`},React__namespace.createElement("legend",null,e?t:""===t?"User":"User/"+t),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.entries(this.state.scriptIconMap).filter((([e,A])=>A.group===t)).sort().map((([e,t])=>React__namespace.createElement(ActionButton,{key:e,title:t.name,action:async()=>{const t=this.props.view,A=t.plugin,i=app.vault.getAbstractFileByPath(e);i&&i instanceof obsidian_module.TFile&&A.scriptEngine.executeScript(t,await app.vault.read(i),A.scriptEngine.getScriptName(i),i)},longpress:async()=>{const A=this.props.view,i=A.excalidrawAPI,n=A.plugin;await n.loadSettings();const a=n.settings.pinnedScripts.indexOf(e);a>-1?(n.settings.pinnedScripts.splice(a,1),null==i||i.setToast({message:`Pin removed: ${t.name}`,duration:3e3,closable:!0})):(n.settings.pinnedScripts.push(e),null==i||i.setToast({message:`Pinned: ${t.name}`,duration:3e3,closable:!0})),await n.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))},icon:t.svgString?stringToSVG(t.svgString):ICONS.cog,view:this.props.view}))))))))}}const getElementsAtPointer=(e,t,A)=>t.filter((t=>{if(A&&t.type!==A)return!1;if(t.locked)return!1;const[i,n,a,r]=rotatedDimensions(t);return i<=e.x&&i+a>=e.x&&n<=e.y&&n+r>=e.y})),getTextElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return{id:null,text:null};const i=getElementsAtPointer(e,A.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((e=>{const A=t.textMode===TextMode.parsed?t.excalidrawData.getRawText(e.id):e.text;return!!A&&(!!A.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(A).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements()).filter((e=>e.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0},setDynamicStyle=(e,t,A,i)=>{var n,a,r,s,o,l,c,d,h,u,g,p,m,w;if("none"===i){null===(n=t.excalidrawContainer)||void 0===n||n.removeAttribute("style"),setTimeout((()=>t.updateScene({appState:{dynamicStyle:""}})));const e=null===(s=null===(r=null===(a=t.toolsPanelRef)||void 0===a?void 0:a.current)||void 0===r?void 0:r.containerRef)||void 0===s?void 0:s.current;if(e){let t=e.getAttribute("style");t=t.replace(/\-\-color\-primary.*/,""),e.setAttribute("style",t)}return}t.ownerDocument;const f="light"===(null===(c=null===(l=null===(o=null==t?void 0:t.excalidrawAPI)||void 0===o?void 0:o.getAppState)||void 0===l?void 0:l.call(o))||void 0===c?void 0:c.theme)||"light"===(null===(u=null===(h=null===(d=null==t?void 0:t.excalidrawData)||void 0===d?void 0:d.scene)||void 0===h?void 0:h.appState)||void 0===u?void 0:u.theme),E=()=>f?e.getCM(A):(t=>{const A=e.getCM(t),i=A.lightness;return A.lightnessTo(Math.abs(i-100))})(A),B=E().lightness,b=E().isDark(),v=app.getAccentColor(),C=()=>e.getCM(v),y=()=>e.getCM("#000000").lightnessTo(B),F="gray"===i,x=F?b?y().lighterBy(15):y().darkerBy(15):b?E().lighterBy(15).mix({color:y(),ratio:.6}):E().darkerBy(15).mix({color:y(),ratio:.6}),S=F?b?y().lighterBy(5):y().darkerBy(5):b?E().lighterBy(5).mix({color:y(),ratio:.6}):E().darkerBy(5).mix({color:y(),ratio:.6}),T=E().mix({color:b?"#f0f0f0":"#101010",ratio:.8}),I=e=>e.stringHEX({alpha:!1}),M=`--color-primary: ${I(C())};--color-primary-darker: ${I(C().darkerBy(10))};--color-primary-darkest: ${I(C().darkerBy(10))};--button-gray-1: ${I(x)};--button-gray-2: ${I(S)};--input-border-color: ${I(x)};--input-bg-color: ${I(S)};--input-label-color: ${I(T)};--island-bg-color: ${S.alphaTo(.93).stringHEX()};--popup-secondary-bg-color: ${S.alphaTo(.93).stringHEX()};--icon-fill-color: ${I(T)};--text-primary-color: ${I(T)};--overlay-bg-color: ${S.alphaTo(.6).stringHEX()};--popup-bg-color: ${I(x)};--color-gray-100: ${I(T)};--color-gray-40: ${I(T)};--color-gray-30: ${I(x)};--color-gray-80: ${I(x)};--sidebar-border-color: ${I(x)};--color-primary-light: ${I(C().lighterBy(10))};--button-hover-bg: ${I(x)};--sidebar-bg-color: ${S.alphaTo(.93).stringHEX()};--sidebar-shadow: ${I(x)};--popup-text-color: ${I(T)};--code-normal: ${I(T)};--code-background: ${I(S)};--h1-color: ${I(T)};--h2-color: ${I(T)};--h3-color: ${I(T)};--h4-color: ${I(T)};color: ${I(T)};--select-highlight-color: ${I(x)};`;null===(g=t.excalidrawContainer)||void 0===g||g.setAttribute("style",M),setTimeout((()=>t.updateScene({appState:{dynamicStyle:M}})));const k=null===(w=null===(m=null===(p=t.toolsPanelRef)||void 0===p?void 0:p.current)||void 0===m?void 0:m.containerRef)||void 0===w?void 0:w.current;if(k){let e=k.getAttribute("style");e=e.replace(/\-\-color\-primary.*/,""),k.setAttribute("style",e+M)}},renderWebView=(e,t,A,i)=>DEVICE.isDesktop?React__namespace.createElement("webview",{ref:e=>t.updateEmbeddableRef(A,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,src:e,style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"}}):React__namespace.createElement("iframe",{ref:e=>t.updateEmbeddableRef(A,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",src:e,style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"}});function RenderObsidianView({element:e,linkText:t,view:A,containerRef:i,appState:n,theme:a}){var r,s,o;const{subpath:l,file:c}=processLinkText(t,A);if(!c)return null;const d=A.plugin.getPackage(A.ownerWindow).react,h=d.useRef(null),u=d.useRef(!1),g=d.useRef(!1),p=d.useCallback((e=>{g.current&&e.stopPropagation()}),[g.current]);d.useEffect((()=>{if(null==i?void 0:i.current)return KEYBOARD_EVENT_TYPES.forEach((e=>i.current.addEventListener(e,p))),i.current.addEventListener("click",m),()=>{(null==i?void 0:i.current)&&(KEYBOARD_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),i.current.removeEventListener("click",m))}}),[]),d.useEffect((()=>{if(EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),null==i?void 0:i.current)return g.current&&EXTENDED_EVENT_TYPES.forEach((e=>i.current.addEventListener(e,p))),()=>{(null==i?void 0:i.current)&&EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p)))}}),[g.current,i.current]),d.useEffect((()=>{if(!(null==i?void 0:i.current))return;for(;i.current.hasChildNodes();)i.current.removeChild(i.current.lastChild);const t=A.ownerDocument,n=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");n.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],n.getContainer=()=>getContainerForDocument(t),n.containerEl.style.width="100%",n.containerEl.style.height="100%",n.containerEl.style.borderRadius="var(--embeddable-radius)",h.current={leaf:app.workspace.createLeafInParent(n,0),node:null};const a=()=>{app.workspace.activeLeaf===A.leaf&&DEVICE.isDesktop&&(A.ownerWindow.electronWindow.isAlwaysOnTop()||(A.ownerWindow.electronWindow.setAlwaysOnTop(!0),setTimeout((()=>{A.ownerWindow.electronWindow.setAlwaysOnTop(!1)}),500)))};return l&&A.canvasNodeFactory.isInitialized()?(a(),h.current.node=A.canvasNodeFactory.createFileNote(c,l,i.current,e.id),A.updateEmbeddableLeafRef(e.id,h.current)):(async()=>{var t,r;await h.current.leaf.openFile(c,Object.assign({active:!1,state:{mode:"preview"}},l?{eState:{subpath:l}}:{}));const s=null===(t=h.current.leaf.view)||void 0===t?void 0:t.getViewType();if("canvas"===s&&(null===(r=h.current.leaf.view.canvas)||void 0===r||r.setReadonly(!0)),"markdown"===s&&A.canvasNodeFactory.isInitialized())a(),await h.current.leaf.setViewState({state:{file:null}}),h.current.node=A.canvasNodeFactory.createFileNote(c,l,i.current,e.id);else{const e=n.containerEl.querySelector("div.workspace-leaf");e&&(e.style.borderRadius="var(--embeddable-radius)"),i.current.appendChild(n.containerEl)}patchMobileView(A),A.updateEmbeddableLeafRef(e.id,h.current)})(),()=>{}}),[t,l,i]),d.useEffect((()=>{var e;u.current&&((null===(e=h.current)||void 0===e?void 0:e.node)&&A.canvasNodeFactory.stopEditing(h.current.node),u.current=!1)}),[u.current,h]);const m=d.useCallback((t=>{var i,n,r;if(g.current&&t.stopPropagation(),g.current&&!u.current&&(null===(i=h.current)||void 0===i?void 0:i.leaf))if("markdown"===(null===(n=h.current.leaf.view)||void 0===n?void 0:n.getViewType())){const t=A.excalidrawAPI.getSceneElements().filter((t=>t.id===e.id))[0];if(!t||0!==t.angle)return void new obsidian_module.Notice("Sorry, cannot edit rotated markdown documents");const i=h.current.leaf.view.modes;if(!i)return;h.current.leaf.view.setMode(i.source),u.current=!0,patchMobileView(A)}else(null===(r=h.current)||void 0===r?void 0:r.node)&&A.canvasNodeFactory.startEditing(h.current.node,a)}),[null===(r=h.current)||void 0===r?void 0:r.leaf,e.id]);return d.useEffect((()=>{var t,a,r,s,o;if(!(null==i?void 0:i.current)||!(null==h?void 0:h.current))return;const l=g.current;if(g.current=(null===(t=n.activeEmbeddable)||void 0===t?void 0:t.element.id)===e.id&&"active"===(null===(a=n.activeEmbeddable)||void 0===a?void 0:a.state),l!==g.current)if("markdown"===(null===(s=null===(r=h.current.leaf)||void 0===r?void 0:r.view)||void 0===s?void 0:s.getViewType())){const e=h.current.leaf.view.modes;if(!e)return;if(!g.current)return h.current.leaf.view.setMode(e.preview),void(u.current=!1)}else(null===(o=h.current)||void 0===o?void 0:o.node)&&A.canvasNodeFactory.stopEditing(h.current.node)}),[i,h,g,null===(s=n.activeEmbeddable)||void 0===s?void 0:s.element,null===(o=n.activeEmbeddable)||void 0===o?void 0:o.state,e,A,t,l,c,a,u,A.canvasNodeFactory]),null}const CustomEmbeddable=({element:e,view:t,appState:A,linkText:i})=>{const n=t.plugin.getPackage(t.ownerWindow).react.useRef(null),a="dark"===t.excalidrawData.embeddableTheme?"theme-dark":"light"===t.excalidrawData.embeddableTheme?"theme-light":"auto"===t.excalidrawData.embeddableTheme?"dark"===A.theme?"theme-dark":"theme-light":isObsidianThemeDark()?"theme-dark":"theme-light";return React__namespace.createElement("div",{ref:n,style:{width:"100%",height:"100%",borderRadius:"var(--embeddable-radius)",color:"var(--text-normal)"},className:a},React__namespace.createElement(RenderObsidianView,{element:e,linkText:i,view:t,containerRef:n,appState:A,theme:a}))};var PreviewImageType;!function(e){e.PNG="PNG",e.SVGIMG="SVGIMG",e.SVG="SVG"}(PreviewImageType||(PreviewImageType={}));const DB_NAME="Excalidraw "+app.appId,CACHE_STORE="imageCache",BACKUP_STORE="drawingBAK",getKey=e=>`${e.filepath}#${e.blockref}#${e.sectionref}#${e.isDark?1:0}#${e.previewImageType===PreviewImageType.SVGIMG?1:e.previewImageType===PreviewImageType.PNG?0:2}#${e.scale}`;class ImageCache{constructor(e,t,A){this.initializationNotice=!1,this.obsidanURLCache=new Map,this.dbName=e,this.cacheStoreName=t,this.backupStoreName=A,this.db=null,this.isInitializing=!1,this.plugin=null,app.workspace.onLayoutReady((()=>this.initializeDB()))}async initializeDB(){if(!this.isInitializing&&null===this.db){this.isInitializing=!0;try{const e=indexedDB.open(this.dbName);if(e.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},this.db=await new Promise(((t,A)=>{e.onsuccess=e=>{const A=e.target.result;t(A)},e.onerror=()=>{A(new Error(`Failed to open or create IndexedDB database: ${this.dbName}`))}})),!this.db.objectStoreNames.contains(this.cacheStoreName)||!this.db.objectStoreNames.contains(this.backupStoreName)){const e=this.db.version+1;this.db.close();const t=indexedDB.open(this.dbName,e);t.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},await new Promise(((e,A)=>{t.onsuccess=()=>{t.result.close(),e()},t.onerror=()=>{A(new Error(`Failed to upgrade IndexedDB database: ${this.dbName}`))}})),this.db=await new Promise(((e,t)=>{const A=indexedDB.open(this.dbName);A.onsuccess=()=>{const t=A.result;e(t)},A.onerror=()=>{t(new Error(`Failed to open IndexedDB database: ${this.dbName}`))}}))}await this.purgeInvalidCacheFiles(),await this.purgeInvalidBackupFiles()}finally{this.isInitializing=!1,this.initializationNotice&&(new obsidian_module.Notice("Excalidraw Image Cache is Initialized - You may now retry opening your damaged drawing."),this.initializationNotice=!1),console.log("Initialized Excalidraw Image Cache")}}}async purgeInvalidCacheFiles(){const e=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=i.split("#")[0],a=t.some((e=>e.path===n)),s=a?t.find((e=>e.path===n)):null;(!s||s&&s.stat.mtime>r.value.mtime||!r.value.blob)&&A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid files from IndexedDB."))}}))}async purgeInvalidBackupFiles(){const e=this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=t.some((e=>e.path===i));n||A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete backup file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid backup files from IndexedDB."))}}))}async getObjectStore(e,t){return this.db.transaction(t,e).objectStore(t)}async getCacheData(e){const t=(await this.getObjectStore("readonly",this.cacheStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve data from IndexedDB."))}}))}async getBackupData(e){const t=(await this.getObjectStore("readonly",this.backupStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve backup data from IndexedDB."))}}))}isReady(){return!!this.db&&!this.isInitializing&&!!this.plugin&&this.plugin.settings.allowImageCache}async getImageFromCache(e){if(!this.isReady())return null;const t=getKey(e),A=await this.getCacheData(t),i=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(i&&i instanceof obsidian_module.TFile&&A&&A.mtime===i.stat.mtime){if(A.svg)return convertSVGStringToElement(A.svg);if(this.obsidanURLCache.has(t))return this.obsidanURLCache.get(t);const e=URL.createObjectURL(A.blob);return this.obsidanURLCache.set(t,e),e}}async getBAKFromCache(e){return this.isReady()?this.getBackupData(e):null}addImageToCache(e,t,A){if(!this.isReady())return;const i=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(!(i&&i instanceof obsidian_module.TFile))return;let n=null,a=null;A instanceof SVGSVGElement?n=A.outerHTML:a=A;const r={mtime:i.stat.mtime,blob:a,svg:n},s=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),o=getKey(e);s.put(r,o),Boolean(n)&&this.obsidanURLCache.set(o,t)}async addBAKToCache(e,t){this.isReady()&&this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName).put(t,e)}async clearImageCache(){if(this.isReady())return this.clear(this.cacheStoreName,"Image cache was cleared")}async clearBackupCache(){if(this.isReady())return this.clear(this.backupStoreName,"All backups were cleared")}async clear(e,t){if(!this.isReady())return;const A=this.db.transaction([e],"readwrite").objectStore(e);return new Promise(((i,n)=>{const a=A.clear();a.onsuccess=()=>{new obsidian_module.Notice(t),i()},a.onerror=()=>n(new Error(`Failed to clear ${e}.`))}))}}const imageCache=new ImageCache(DB_NAME,CACHE_STORE,"drawingBAK");class CanvasNodeFactory{constructor(e){this.view=e,this.nodes=new Map,this.initialized=!1,this.isInitialized=()=>this.initialized}async initialize(){const e=app.internalPlugins.plugins.canvas;e._loaded||await e.load();const t=this.view.ownerDocument,A=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");A.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],A.getContainer=()=>getContainerForDocument(t),this.leaf=app.workspace.createLeafInParent(A,0),this.canvas=e.views.canvas(this.leaf).canvas,this.initialized=!0}createFileNote(e,t,A,i){if(!this.initialized)return;t=null!=t?t:"",this.nodes.has(i)&&(this.canvas.removeNode(this.nodes.get(i)),this.nodes.delete(i));const n=this.canvas.createFileNode({pos:{x:0,y:0},file:e,subpath:t,save:!1});return n.setFilePath(e.path,t),n.render(),A.style.background="var(--background-primary)",A.appendChild(n.contentEl),this.nodes.set(i,n),n}startEditing(e,t){if(!this.initialized||!e)return;e.startEditing();const A=isObsidianThemeDark()?"theme-dark":"theme-light";A!==t&&(async()=>{var i,n,a,r,s,o;let l=0;for(;!(null===(a=null===(n=null===(i=e.child.editor)||void 0===i?void 0:i.containerEl)||void 0===n?void 0:n.parentElement)||void 0===a?void 0:a.parentElement)&&l++<100;)await sleep(25);(null===(o=null===(s=null===(r=e.child.editor)||void 0===r?void 0:r.containerEl)||void 0===s?void 0:s.parentElement)||void 0===o?void 0:o.parentElement)&&(e.child.editor.containerEl.parentElement.parentElement.classList.remove(A),e.child.editor.containerEl.parentElement.parentElement.classList.add(t),new MutationObserver((e=>{for(const i of e)if("attributes"===i.type&&"class"===i.attributeName){const e=i.target;e.classList.contains(A)&&(e.classList.remove(A),e.classList.add(t))}})).observe(e.child.editor.containerEl.parentElement.parentElement,{attributes:!0}))})()}stopEditing(e){this.initialized&&e&&e.child.editMode&&e.child.showPreview()}purgeNodes(){this.initialized&&(this.nodes.forEach((e=>{this.canvas.removeNode(e)})),this.nodes.clear())}}class EmbeddableMenu{constructor(e,t){this.view=e,this.containerRef=t,this.updateElement=(e,t,A)=>{if(!t)return;const i=this.view,n=`[[${app.metadataCache.fileToLinktext(A,i.file.path,"md"===A.extension)}${e}]]`;mutateElement(t,{link:n}),i.excalidrawData.elementLinks.set(t.id,n),i.setDirty(99),i.updateScene({appState:{activeEmbeddable:null}})},this.menuFadeTimeout=0,this.menuElementId=null}handleMouseEnter(){var e;clearTimeout(this.menuFadeTimeout),null===(e=this.containerRef.current)||void 0===e||e.style.setProperty("opacity","1")}handleMouseLeave(){const e=this;this.menuFadeTimeout=window.setTimeout((()=>{var t;null===(t=e.containerRef.current)||void 0===t||t.style.setProperty("opacity","0.2")}),5e3)}renderButtons(e){var t,A;const i=this.view,n=null==i?void 0:i.excalidrawAPI;if(!n)return null;if(!i.file)return null;const a=e.viewModeEnabled&&!i.allowFrameButtonsInViewMode;if(!e.activeEmbeddable||"active"!==e.activeEmbeddable.state||a)return this.menuElementId=null,this.menuFadeTimeout&&(clearTimeout(this.menuFadeTimeout),this.menuFadeTimeout=0),null;const r=null===(t=e.activeEmbeddable)||void 0===t?void 0:t.element;this.menuElementId!==r.id&&(this.menuElementId=r.id,this.handleMouseLeave());let s=r.link;if(!s)return null;const o=useDefaultExcalidrawFrame(r);let l=null===(A=r.link)||void 0===A?void 0:A.match(REG_LINKINDEX_HYPERLINK);if(!o&&!l){const t=REGEX_LINK.getRes(r.link).next();if(!t||!t.value&&t.done)return null;if(s=REGEX_LINK.getLink(t),l=s.match(REG_LINKINDEX_HYPERLINK),!l){const{subpath:t,file:A}=processLinkText(s,i);if(!A||"md"!==A.extension)return null;const{x:a,y:o}=sceneCoordsToViewportCoords({sceneX:r.x,sceneY:r.y},e),l=o-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=a-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative",display:"block"}},React__namespace.createElement(ActionButton,{key:"MarkdownSection",title:t$d("NARROW_TO_HEADING"),action:async()=>{const e=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})),i=[""].concat(e.map((e=>`#${cleanSectionHeading(e.display)}`))),n=[t$d("SHOW_ENTIRE_FILE")].concat(e.map((e=>e.display))),a=await ScriptEngine.suggester(app,n,i,"Select section from document");(a||""===a)&&a!==t&&this.updateElement(a,r,A)},icon:ICONS.ZoomToSection,view:i}),React__namespace.createElement(ActionButton,{key:"MarkdownBlock",title:t$d("NARROW_TO_BLOCK"),action:async()=>{var e,i,n;if(!A)return;const a=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"paragraph"===(null===(t=e.node)||void 0===t?void 0:t.type)})),s=["entire-file"].concat(a),o=[t$d("SHOW_ENTIRE_FILE")].concat(a.map((e=>{var t;return`${(null===(t=e.node)||void 0===t?void 0:t.id)?`#^${e.node.id}: `:""}${e.display.trim()}`}))),l=await ScriptEngine.suggester(app,o,s,"Select section from document");if(!l)return;if("entire-file"===l){if(""===t)return;return void this.updateElement("",r,A)}let c=l.node.id;if(!c||`#^${c}`!==t){if(!c){const t=null===(n=null===(i=null===(e=l.node)||void 0===e?void 0:e.position)||void 0===i?void 0:i.end)||void 0===n?void 0:n.offset;if(!t)return;c=nanoid();const a=await app.vault.cachedRead(A);if(!a)return;await app.vault.modify(A,a.slice(0,t)+` ^${c}`+a.slice(t)),await sleep(200)}this.updateElement(`#^${c}`,r,A)}},icon:ICONS.ZoomToBlock,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{r&&n.zoomToFit([r],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}if(l||o){const t=o?n.getHTMLIFrameElement(r.id):i.getEmbeddableElementById(r.id);if(!t||!t.contentWindow)return null;const{x:A,y:a}=sceneCoordsToViewportCoords({sceneX:r.x,sceneY:r.y},e),l=a-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=A-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative",display:"block"}},t.src!==s&&!t.src.startsWith("https://www.youtube.com")&&!t.src.startsWith("https://player.vimeo.com")&&React__namespace.createElement(ActionButton,{key:"Reload",title:t$d("RELOAD"),action:()=>{t.src=s},icon:ICONS.Reload,view:i}),React__namespace.createElement(ActionButton,{key:"Open",title:t$d("OPEN_IN_BROWSER"),action:()=>{i.openExternalLink(t.src)},icon:ICONS.Globe,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{r&&n.zoomToFit([r],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}}var TextMode;!function(e){e.parsed="parsed",e.raw="raw"}(TextMode||(TextMode={}));const HIDE="excalidraw-hidden",SHOW="excalidraw-visible",addFiles=async(e,t,A)=>{if(!e||0===e.length||!t)return;const i=t.excalidrawAPI;if(!i)return;if(e=e.filter((e=>e&&e.size&&e.size.height>0&&e.size.width>0)),0===e.length)return;const n=scaleLoadedImage(t.getScene(),e);void 0===A&&(A=n.scene.appState.theme),n.dirty&&t.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of e)if(t.excalidrawData.hasFile(i.id)&&t.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,A,i.hasSVGwithBitmap),t.excalidrawData.hasEquation(i.id)){const e=t.excalidrawData.getEquation(i.id).latex;t.excalidrawData.setEquation(i.id,{latex:e,isLoaded:!0})}i.addFiles(e)},warningUnknowSeriousError=()=>{new obsidian_module.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian_module.TextFileView{constructor(e,t){super(e),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.embeddableMenuRef=null,this.linksAlwaysOpenInANewPane=!1,this.allowFrameButtonsInViewMode=!1,this.lastSaveTimestamp=0,this.lastLoadedFile=null,this.modifierKeyDown={shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1},this.currentPosition={x:0,y:0},this.embeddableRefs=new Map,this.embeddableLeafRefs=new Map,this.semaphores={popoutUnload:!1,viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var e;return null!==(e=this.hookServer)&&void 0!==e?e:this.plugin.ea},this.preventReloadResetTimer=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.previousTheme="",this.colorChangeTimer=null,this.getActiveEmbeddable=()=>{var e,t;if(!this.excalidrawAPI)return null;const A=this.excalidrawAPI.getAppState();return A.activeEmbeddable&&"active"===A.activeEmbeddable.state?this.getEmbeddableLeafElementById(null===(t=null===(e=A.activeEmbeddable)||void 0===e?void 0:e.element)||void 0===t?void 0:t.id):null},this.plugin=t,this.excalidrawData=new ExcalidrawData(t),this.hookServer=t.ea,this.canvasNodeFactory=new CanvasNodeFactory(this)}setHookServer(e){this.hookServer=e||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const t=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,A=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));A&&A instanceof obsidian_module.TFile?app.vault.modify(A,JSON.stringify(e,null,"\t")):app.vault.create(t,JSON.stringify(e,null,"\t"))}async exportExcalidraw(e){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidraw`;const t=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(t);const A=getNewUniqueFilepath(app.vault,e,t);app.vault.create(A,JSON.stringify(this.getScene(),null,"\t")),new obsidian_module.Notice(`Exported to ${A}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(e),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file))}async saveSVG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.svg(e,i,t);if(!a)return;const r=(new XMLSerializer).serializeToString(embedFontsInSVG(a,this.plugin));n&&n instanceof obsidian_module.TFile?await app.vault.modify(n,r):await app.vault.create(A,r)};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.svg"),"dark"),await A(getIMGFilename(this.file.path,"light.svg"),"light")):await A(getIMGFilename(this.file.path,"svg"))}async exportSVG(e,t){if(!this.getScene||!this.file)return;let A=await this.svg(this.getScene(t),void 0,e);A&&(A=embedFontsInSVG(A,this.plugin),download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`))}async png(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file),i?i.scale:getPNGScale(this.plugin,this.file))}async savePNG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.png(e,i,t);a&&(n&&n instanceof obsidian_module.TFile?await app.vault.modifyBinary(n,await a.arrayBuffer()):await app.vault.createBinary(A,await a.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.png"),"dark"),await A(getIMGFilename(this.file.path,"light.png"),"light")):await A(getIMGFilename(this.file.path,"png"))}async exportPNGToClipboard(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);A&&await navigator.clipboard.write([new window.ClipboardItem({"image/png":A})])}async exportPNG(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);if(!A)return;const i=new FileReader;i.readAsDataURL(A);const n=this;i.onloadend=function(){const e=i.result;download(null,e,`${n.file.basename}.png`)}}async save(e=!0,t=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let A=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const i=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||t),n=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(n):await this.excalidrawData.syncElements(n,this.excalidrawAPI.getAppState().selectedElementIds)&&!this.semaphores.popoutUnload&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted))),i){this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=e,await super.save();const i=this.file.path,n=this.lastSavedData;if(setTimeout((()=>imageCache.addBAKToCache(i,n)),50),A=this.lastSaveTimestamp===this.file.stat.mtime&&!e&&t,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),e){const e=this;this.preventReloadResetTimer=setTimeout((()=>e.semaphores.preventReload=!1),2e3)}}if(!A&&!this.semaphores.autosaving&&(!this.semaphores.viewunload||this.semaphores.popoutUnload)){const e=this.excalidrawData.autoexportPreference;(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||e===AutoexportPreference.both||e===AutoexportPreference.svg)&&this.saveSVG(),(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||e===AutoexportPreference.both||e===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(e){errorlog({where:"ExcalidrawView.save",fn:this.save,error:e}),warningUnknowSeriousError()}this.semaphores.saving=!1,A&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){var e,t,A;if(!this.getScene||!this.excalidrawData.loaded)return this.data;const i=this.getScene();if(!i)return this.data;if(!this.compatibilityMode){let i=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==i&&(i=this.data.search(/(%%\n)?# Drawing\n/)),-1==i)return this.data;const n=(null===(e=this.exportDialog)||void 0===e?void 0:e.dirty)&&(null===(t=this.exportDialog)||void 0===t?void 0:t.saveSettings)?[["excalidraw-export-padding",this.exportDialog.padding.toString()],["excalidraw-export-pngscale",this.exportDialog.scale.toString()],["excalidraw-export-dark","dark"===this.exportDialog.theme?"true":"false"],["excalidraw-export-transparent",this.exportDialog.transparent?"true":"false"],[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]]:[[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]];(null===(A=this.exportDialog)||void 0===A?void 0:A.dirty)&&(this.exportDialog.dirty=!1);let a=updateFrontmatterInString(this.data.substring(0,i),n);const r=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;a.match(r)&&(a=a.replace(r,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const s=a+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted)));return this.excalidrawData.disableCompression=!1,s}return this.compatibilityMode?JSON.stringify(i,null,"\t"):this.data}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((e=>{e[0].containerEl.style.display=e[1]})),this.hiddenMobileLeaves=[])}toggleDisableBinding(){const e=!this.excalidrawAPI.getAppState().invertBindingBehaviour;this.updateScene({appState:{invertBindingBehaviour:e}}),new obsidian_module.Notice(e?"Inverted Mode: Default arrow binding is now disabled. Use CTRL/CMD to temporarily enable binding when needed.":"Normal Mode: Arrow binding is now enabled. Use CTRL/CMD to temporarily disable binding when needed.")}toggleFrameRendering(){const e=this.excalidrawAPI.getAppState().frameRendering;this.updateScene({appState:{frameRendering:Object.assign(Object.assign({},e),{enabled:!e.enabled})}}),new obsidian_module.Notice(e.enabled?"Frame Rendering: Enabled":"Frame Rendering: Disabled")}toggleFrameClipping(){const e=this.excalidrawAPI.getAppState().frameRendering;this.updateScene({appState:{frameRendering:Object.assign(Object.assign({},e),{clip:!e.clip})}}),new obsidian_module.Notice(e.clip?"Frame Clipping: Enabled":"Frame Clipping: Disabled")}gotoFullscreen(){this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef&&(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),(e=>{for(;e&&!e.hasClass("workspace-split");)e.addClass(SHOW),e=e.parentElement;e&&(e.addClass(SHOW),e.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(SHOW),e.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))));const t=this.ownerDocument;t.body.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(HIDE),t.body.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.workspace-ribbon").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.mobile-navbar").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.status-bar").forEach((e=>e.addClass(HIDE)))})(this.contentEl))}isFullscreen(){return Boolean(document.body.querySelector(".excalidraw-hidden"))}exitFullscreen(){this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1);const e=this.ownerDocument;e.querySelectorAll(".excalidraw-hidden").forEach((e=>e.removeClass(HIDE))),e.querySelectorAll(".excalidraw-visible").forEach((e=>e.removeClass(SHOW)))}removeLinkTooltip(){const e=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");e&&e.classList.remove("excalidraw-tooltip--visible")}handleLinkHookCall(e,t,A){if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(e,t,A,this,this.getHookServer()))return!0}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}return!1}openExternalLink(e,t){return!!e.match(REG_LINKINDEX_HYPERLINK)&&(window.open(e,"_blank"),!0)}openTagSearch(e){const t=e.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!t.value||t.value.length<2)return;const A=app.workspace.getLeavesOfType("search");0!=A.length&&(A[0].view.setQuery(`tag:${t.value[1]}`),app.workspace.revealLeaf(A[0]),this.isFullscreen()&&this.exitFullscreen())}async linkClick(e,t,A,i,n){var a,r,s,o,l;t||(t={id:null,text:null}),A||(A={id:null,fileId:null}),i||(i={id:null,text:null}),n||(n={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,altKey:e.altKey});const c=linkClickModifierType(n);let d=null,h=null,u=null;if((null==t?void 0:t.id)||(null==i?void 0:i.id)){if(u=null!==(a=null==i?void 0:i.text)&&void 0!==a?a:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(t.id):t.text,!u)return;u=u.replaceAll("\n","");const A=null!==(r=t.id)&&void 0!==r?r:i.id,n=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];if(this.handleLinkHookCall(n,u,e))return;if(this.openExternalLink(u))return;const s=REGEX_LINK.getResList(u);let o=s[0];if(s.length>1&&(o=await ScriptEngine.suggester(app,s.filter((e=>Boolean(e.value))).map((e=>REGEX_LINK.getLink(e))),s.filter((e=>Boolean(e.value))),"Select link to open"),!o))return;if(!(null==o?void 0:o.value))return void this.openTagSearch(u);if(u=REGEX_LINK.getLink(o),this.openExternalLink(u))return;if(u.search("#")>-1){const e=getLinkParts(u,this.file);h=`#${e.isBlockRef?"^":""}${e.ref}`,u=e.path}if(u.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);d=this.app.metadataCache.getFirstLinkpathDest(u,this.file.path)}if(null==A?void 0:A.id){if(this.excalidrawData.hasEquation(A.fileId)){const e=this.excalidrawData.getEquation(A.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),e,"").openAndGetValue((async t=>{t&&t!==e&&(this.excalidrawData.setEquation(A.fileId,{latex:t,isLoaded:!1}),await this.save(!1),await updateEquation(t,A.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(A.fileId)){const e=this.excalidrawData.getFile(A.fileId);if(e.isHyperlink)return void window.open(e.hyperlink,"_blank");if("md-properties"===c&&"md"===e.file.extension&&!this.plugin.isExcalidrawFile(e.file)){const t=async t=>{t&&e.linkParts.original!==t&&(e.resetImage(this.file.path,t),this.setDirty(2),await this.save(!1),await this.loadSceneFiles())};return void GenericInputPrompt.Prompt(this,this.plugin,app,"Customize the link",void 0,e.linkParts.original,[{caption:"✅",action:t}],1,!1,(e=>e.createEl("p",{text:fragWithHTML("Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT")})),!1).then(t,(()=>{}))}u=e.file.path,d=e.file,"pdf"===d.extension.toLowerCase()&&(h=null===(s=e.linkParts.original.match(/(#.*)$/))||void 0===s?void 0:s[1])}}if(!u)return void new obsidian_module.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4);const g=null!==(l=null!==(o=A.id)&&void 0!==o?o:t.id)&&void 0!==l?l:i.id,p=this.excalidrawAPI.getSceneElements().filter((e=>e.id===g))[0];if(!this.handleLinkHookCall(p,u,e))try{if("active-pane"!==c&&this.isFullscreen()&&this.exitFullscreen(),!d)return void new NewFileActions(this.plugin,u,n,this).open();this.linksAlwaysOpenInANewPane&&!anyModifierKeysPressed(n)&&(n=emulateKeysForLinkClick("new-pane"));const e=getLeaf(this.plugin,this.leaf,n);try{const t=app.plugins.plugins["drawio-obsidian"];if(t&&t._loaded&&"svg"===d.extension){const t=await this.app.vault.cachedRead(d);if(/(<|\<)(mxfile|mxgraph)/i.test(t))return void e.setViewState({type:"diagram-edit",state:{file:d.path}})}}catch(e){console.error(e)}await e.openFile(d,Object.assign({active:!this.linksAlwaysOpenInANewPane},h?{eState:{subpath:h}}:{}))}catch(e){new obsidian_module.Notice(e,4e3)}}async handleLinkClick(e){this.removeLinkTooltip();const t=this.getSelectedTextElement(),A=(null==t?void 0:t.id)?null:this.getSelectedImageElement(),i=(null==A?void 0:A.id)||(null==t?void 0:t.id)?null:this.getSelectedElementWithLink();this.linkClick(e,t,A,i)}onResize(){var e,t;if(this.plugin.leafChangeTimeout)return;const A=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&A&&"text"!==(null===(t=null===(e=A.getAppState())||void 0===e?void 0:e.editingElement)||void 0===t?void 0:t.type)&&this.zoomToFit(!1)}getSceneVersion(e){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(e.filter((e=>!e.isDeleted)))}async forceSave(e=!1){this.semaphores.autosaving||this.semaphores.saving?e||new obsidian_module.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,e||new obsidian_module.Notice("Save successful",1e3))}onload(){const e=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||e||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const t=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=t,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=e=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("save",t$d("FORCE_SAVE"),(async()=>this.forceSave())),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(e=>this.handleLinkClick(e)));const A=this;app.workspace.onLayoutReady((async()=>{this.canvasNodeFactory.initialize(),A.contentEl.addClass("excalidraw-view"),await A.addSlidingPanesListner(),A.addParentMoveObserver(),A.onKeyUp=e=>{A.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.onKeyDown=e=>{this.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.ownerWindow.addEventListener("keydown",A.onKeyDown,!1),A.ownerWindow.addEventListener("keyup",A.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const e=this;this.slidingPanesListner=()=>{e.refresh&&e.refresh()};let t=app.workspace.rootSplit;for(;!t;)await sleep(50),t=app.workspace.rootSplit;t.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var e;this.slidingPanesListner&&(null===(e=app.workspace.rootSplit.containerEl)||void 0===e||e.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var e;const t=null!==(e=getParentOfClass(this.containerEl,"popover"))&&void 0!==e?e:getParentOfClass(this.containerEl,"workspace-leaf");if(!t)return;const A=t.classList.contains("popover");this.offsetLeft=t.offsetLeft,this.offsetTop=t.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async e=>{const t=e[0].target;if(!(t instanceof HTMLElement))return;const{offsetLeft:A,offsetTop:n}=t;A===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=A,i.offsetTop=n)})),this.parentMoveObserver.observe(t,{attributeOldValue:!0,attributeFilter:A?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(e){const t=this.excalidrawAPI;if(!this.excalidrawRef||!t)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const A=t.getAppState();this.excalidrawData.scene.theme=e,this.updateScene({appState:Object.assign(Object.assign({},A),{theme:e}),commitToHistory:!1})}async changeTextMode(e,t=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=e,e===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(e===TextMode.parsed);const A=this.excalidrawAPI;A&&t&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(!1),A.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const e=async()=>{var t;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval));const A=this.excalidrawAPI;if(!A)return void warningUnknowSeriousError();const i=A.getAppState(),n=null!==i.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(t=this.file)||void 0===t?void 0:t.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||n||null!==i.draggingElement)this.autosaveTimer=setTimeout(e,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty&&this.plugin.settings.autosave?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const e=this;this.save().then((()=>e.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}};this.autosaveFunction=e,this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}onunload(){var e,t,A,i,n,a,r;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,this.semaphores.popoutUnload=this.ownerDocument!==document&&0===this.ownerDocument.body.querySelectorAll(".workspace-tab-header").length,null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keydown",this.onKeyDown,!1),null===(t=this.ownerWindow)||void 0===t||t.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(e){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:e})}const s=null===(i=null===(A=this.containerEl)||void 0===A?void 0:A.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");s&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(s)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null);const o=null===(r=this.file)||void 0===r?void 0:r.path,l=this.plugin;o&&setTimeout((()=>{l.triggerEmbedUpdates(o)}),300)}async reload(e=!1,t){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.lastLoadedFile=null,this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const A=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!A)return;const i=t&&t===this.file;i&&(this.data=await app.vault.read(t),this.preventAutozoom()),e?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(e,t){let A=0;for(;!this.excalidrawAPI&&A++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((t=>t.id===e));if(0!==a.length){if(t){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);e.length>0&&(a=e)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(e){if(!e)return;const t=this;let A=null;e.match&&e.match.content&&e.match.matches&&1===e.match.matches.length&&2===e.match.matches[0].length&&(A=[e.match.content.substring(e.match.matches[0][0],e.match.matches[0][1])]);const i=async()=>{var e,A;let i=0;for(;(t.semaphores.justLoaded||!t.isLoaded||!t.excalidrawAPI||(null===(A=null===(e=t.excalidrawAPI)||void 0===e?void 0:e.getAppState())||void 0===A?void 0:A.isLoading))&&i++<100;)await sleep(50)},n=getEmbeddedFilenameParts(e.subpath);n.hasBlockref&&setTimeout((async()=>{await i(),setTimeout((()=>t.zoomToElementId(n.blockref,n.hasGroupref)))})),n.hasSectionref?A=[`# ${n.sectionref}`]:e.line&&e.line>0&&(A=[this.data.split("\n")[e.line-1]]),A&&setTimeout((async()=>{await i();const e=t.excalidrawAPI;if(!e)return;if(e.getAppState().isLoading)return;const a=e.getSceneElements();if(1===A.length&&A[0].startsWith("[")){let i=REGEX_LINK.getResList(A[0])[0];if(i){const A=REGEX_LINK.getLink(i);if(A){const i=t.plugin.app.metadataCache.getFirstLinkpathDest(A,t.file.path);if(i){let A=[];if(t.excalidrawData.files.forEach(((e,t)=>{var n;(null===(n=e.file)||void 0===n?void 0:n.path)===i.path&&A.push(t)})),A.length>0){const i=a.filter((e=>"image"===e.type&&A.includes(e.fileId)));i.length>0&&(this.preventAutozoom(),setTimeout((()=>t.zoomToElements(!e.getAppState().viewModeEnabled,i))))}}}}}t.selectElementsMatchingQuery(a,A,!e.getAppState().viewModeEnabled,n.hasSectionref,n.hasGroupref)})),super.setEphemeralState(e)}clear(){this.canvasNodeFactory.purgeNodes(),this.embeddableRefs.clear(),this.embeddableLeafRefs.clear(),delete this.exportDialog;const e=this.excalidrawAPI;this.excalidrawRef&&e&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,e.resetScene(),this.previousSceneVersion=0)}async setViewData(e,t=!1){this.lastLoadedFile!==this.file&&(this.isLoaded=!1,this.file&&(this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),t&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,this.lastLoadedFile=this.file,e=this.data=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(e,this.file),this.plugin.settings.compatibilityMode||new obsidian_module.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const t=getTextMode(e);this.changeTextMode(t,!1);try{if(!await this.excalidrawData.loadData(e,this.file,this.textMode))return}catch(e){if(errorlog({where:"ExcalidrawView.setViewData",error:e}),"iframe conversion canceled"===e.message)return void this.setMarkdownView();const t=this.file,A=this.plugin,i=this.leaf;return(async()=>{let n=!0,a=0;const r=Date.now();for(;!imageCache.isReady()&&n;){const e=`You've been now wating for ${Math.round((Date.now()-r)/1e3)} seconds. `;imageCache.initializationNotice=!0;const t=new ConfirmationPrompt(A,`${a>0?a%4==0?e+"The CACHE is still loading.

":a%4==1?e+"Watch the top rigth corner for the notification.

":a%4==2?e+"I really, really hope the backup will work for you!

":e+"I am sorry, it is taking a while, there is not much I can do...

":""}${t$d("CACHE_NOT_READY")}`);n=await t.waitForClose,a++}const s=await imageCache.getBAKFromCache(t.path);s?new ConfirmationPrompt(A,t$d("BACKUP_AVAILABLE")).waitForClose.then((async e=>{e&&(await app.vault.modify(t,s),A.excalidrawFileModes[i.id||t.path]="excalidraw",A.setExcalidrawView(i))})):new obsidian_module.Notice(`Error loading drawing:\n${e.message}${"Cannot read property 'index' of undefined"===e.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4)})(),void this.setMarkdownView()}}if(await this.loadDrawing(!0),this.plugin.ea.onFileOpenHook)try{await this.plugin.ea.onFileOpenHook({ea:getEA(this),excalidrawFile:this.file,view:this})}catch(e){errorlog({where:"ExcalidrawView.setViewData.onFileOpenHook",error:e})}const t=this.excalidrawData.getOnLoadScript();if(t){const e=this,A=this.file.basename+"-onlaod-script",i=()=>{e.excalidrawAPI?e.plugin.scriptEngine.executeScript(e,t,A,this.file):setTimeout(i,200)};i()}this.isLoaded=!0}))))}getGridColor(e){const t=this.plugin.ea.getCM(e);return t.isDark()?t.lighterBy(5):t.darkerBy(5),t.stringHEX()}async loadSceneFiles(){if(!this.excalidrawAPI)return;const e=new EmbeddedFilesLoader(this.plugin),t=e=>{this.nextLoader=null,this.activeLoader=e,e.loadSceneFiles(this.excalidrawData,((e,A,i=!0)=>{e&&(addFiles(e,this,A),i&&(this.activeLoader=null,this.nextLoader?t(this.nextLoader):this.excalidrawData.getFiles().some((e=>{if(e&&!e.file&&e.attemptCounter<30){const e=this,t=this.file.path;return setTimeout((async()=>{e&&e.excalidrawAPI&&t===e.file.path&&e.loadSceneFiles()}),2e3),!0}return!1}))))}),0)};this.activeLoader?this.nextLoader=e:t(e)}async synchronizeWithData(e){let t=0;for(;this.semaphores.saving&&t++<30;)await sleep(100);if(t>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let A=!1;try{const t=e.deletedElements.map((e=>e.id)),i=this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>!t.contains(e.id))),n=i.map((e=>e.id)),a=t=>{switch(t.type){case"text":this.excalidrawData.textElements.set(t.id,e.textElements.get(t.id));break;case"image":e.getFile(t.fileId)?(this.excalidrawData.setFile(t.fileId,e.getFile(t.fileId)),A=!0):e.getEquation(t.fileId)&&(this.excalidrawData.setEquation(t.fileId,e.getEquation(t.fileId)),A=!0)}e.elementLinks.has(t.id)&&this.excalidrawData.elementLinks.set(t.id,e.elementLinks.get(t.id))};e.scene.elements.forEach(((t,r,s)=>{const o=i.filter((e=>e.id===t.id))[0];if(o&&(o.version0&&a.viewModeEnabled,l=this.isLoaded?s.getAppState().zenModeEnabled:a.zenModeEnabled;s.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.updateScene({elements:n.elements.concat(null!=t?t:[]),files:n.files,commitToHistory:!0},e),this.updateScene({appState:Object.assign(Object.assign(Object.assign({},n.appState),this.excalidrawData.selectedElementIds?this.excalidrawData.selectedElementIds:{}),{zenModeEnabled:l,viewModeEnabled:o,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)})}),app.workspace.getActiveViewOfType(ExcalidrawView)===this.leaf.view&&this.excalidrawWrapperRef&&(null===(i=null===(A=this.excalidrawWrapperRef.current)||void 0===A?void 0:A.firstElementChild)||void 0===i||i.focus()),this.onAfterLoadScene()}else this.instantiateExcalidraw({elements:n.elements,appState:Object.assign(Object.assign({},n.appState),{zenModeEnabled:a.zenModeEnabled,viewModeEnabled:n.elements.length>0&&a.viewModeEnabled,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}),files:n.files,libraryItems:await this.getLibrary()});const o=null!==this.data.match(/```compressed\-json\n/gm);this.compatibilityMode||this.plugin.settings.compress===o||this.isEditedAsMarkdownInOtherView()||this.setDirty(4)}isEditedAsMarkdownInOtherView(){return app.workspace.getLeavesOfType("markdown").filter((e=>e.view.file===this.file)).length>0}onAfterLoadScene(){this.loadSceneFiles(),this.updateContainerSize(null,!0),this.initializeToolsIconPanelAfterLoading()}setDirty(e){var t,A;this.semaphores.dirty=null===(t=this.file)||void 0===t?void 0:t.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),!this.semaphores.viewunload&&(null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current)&&this.toolsPanelRef.current.setDirty(!0),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;this.semaphores.dirty=null,(null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)&&this.toolsPanelRef.current.setDirty(!1);const A=t.getSceneElements();A&&(this.previousSceneVersion=this.getSceneVersion(A)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;const A=t.getAppState(),i=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current;i&&(i.setTheme(A.theme),i.setExcalidrawViewMode(A.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(e){return"excalidraw"===e}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}async addYouTubeThumbnail(e){const t=await getYouTubeThumbnailLink(e),A=getEA(this),i=await A.addImage(0,0,t);A.getElement(i).link=e,A.addElementsToView(!0,!0,!0)}async addImageWithURL(e){const t=getEA(this);await t.addImage(0,0,e),t.addElementsToView(!0,!0,!0)}async addImageSaveToVault(e){const t=getEA(this),A=getMimeType(getURLImageExtension(e)),i=await getDataURLFromURL(e,A,3e3),n=await generateIdFromFile((new TextEncoder).encode(i)),a=await this.excalidrawData.saveDataURLtoVault(i,A,n);a?(await t.addImage(0,0,a),t.addElementsToView(!0,!0,!0)):new obsidian_module.Notice(t$d("ERROR_SAVING_IMAGE"))}async addTextWithIframely(e){var t;const A=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`;try{const n=JSON.parse(await obsidian_module.request({url:i}));if(!n||n.error||!(null===(t=n.meta)||void 0===t?void 0:t.title))return;const a=getEA(this),r=a.getViewElements().filter((e=>e.id===A));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))}catch(e){}}onPaneMenu(e,t){this.excalidrawAPI&&this.getViewSelectedElements().some((e=>"text"===e.type))&&e.addItem((e=>{e.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((e=>{this.handleLinkClick(e)}))})),this.compatibilityMode?e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):e.addItem((e=>{e.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})),e.addItem((e=>{e.setTitle(t$d("EXPORT_IMAGE")).setIcon("export-img").setSection("pane").onClick((async e=>{this.getScene&&this.file&&(this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open())})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(e,t)}async getLibrary(){var e;const t=this.plugin.getStencilLibrary();return(null==t?void 0:t.library)?t.library:null!==(e=null==t?void 0:t.libraryItems)&&void 0!==e?e:[]}async instantiateExcalidraw(e){for(;!this.semaphores.scriptsReady;)await sleep(50);const t=this.plugin.getPackage(this.ownerWindow).react,A=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=t.createElement((()=>{const A=t.useRef(null),i=t.useRef(null),n=t.useRef(null),[a,r]=t.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=Date.now(),d=!1;this.toolsPanelRef=i,this.embeddableMenuRef=n,this.obsidianMenu=new ObsidianMenu(this.plugin,i,this),this.embeddableMenu=new EmbeddableMenu(this,n);const h=()=>{let e,t;const A=new Promise(((A,i)=>{e=A,t=i}));return A.resolve=e,A.reject=t,A},u=t.useMemo((()=>({current:{readyPromise:h()}})),[]);t.useEffect((()=>{u.current.readyPromise.then((e=>{this.excalidrawAPI=e,e.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),setTimeout((()=>{var e,t,A;this.onAfterLoadScene(),this.excalidrawContainer=null===(t=null===(e=this.excalidrawWrapperRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.firstElementChild,null===(A=this.excalidrawContainer)||void 0===A||A.focus()}))}))}),[u]),this.excalidrawRef=u,this.excalidrawWrapperRef=A,t.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const e=()=>{try{const e=this.contentEl.clientWidth,t=this.contentEl.clientHeight;if(0===e||0===t)return;r({width:e,height:t}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(e){errorlog({where:"Excalidraw React-Wrapper, onResize",error:e})}};return this.ownerWindow.addEventListener("resize",e),()=>{var t;return null===(t=this.ownerWindow)||void 0===t?void 0:t.removeEventListener("resize",e)}}),[A]),this.getSelectedTextElement=()=>{var e;const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return{id:null,text:null};if(t.getAppState().viewModeEnabled){if(s){const e=s;return s=null,e}return{id:null,text:null}}const A=t.getSceneElements().filter((e=>e.id===Object.keys(t.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,text:null};if("text"===A[0].type)return{id:A[0].id,text:A[0].text};if(["image","arrow"].contains(A[0].type))return{id:null,text:null};const i=null===(e=A[0].boundElements)||void 0===e?void 0:e.filter((e=>"text"===e.type));if((null==i?void 0:i.length)>0){const e=t.getSceneElements().filter((e=>e.id===i[0].id));if(e.length>0)return{id:e[0].id,text:e[0].text}}if(0===A[0].groupIds.length)return{id:null,text:null};const n=A[0].groupIds[0],a=t.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(n)})).filter((e=>"text"===e.type));return 0===a.length?{id:null,text:null}:{id:A[0].id,text:A[0].text}},this.getSelectedImageElement=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,fileId:null};if(e.getAppState().viewModeEnabled){if(o){const e=o;return o=null,e}return{id:null,fileId:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,fileId:null};if("image"==t[0].type)return{id:t[0].id,fileId:t[0].fileId};if("text"===t[0].type)return{id:null,fileId:null};if(0===t[0].groupIds.length)return{id:null,fileId:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>"image"==e.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(l){const e=l;return l=null,e}return{id:null,text:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if(t[0].link)return{id:t[0].id,text:t[0].link};if(0===t[0].groupIds.length)return{id:null,text:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>e.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(e,t,A=!0)=>{var i,n,a,r,s;const o=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!o)return;const l=o.getAppState(),c=this.plugin.ea.getAPI(this);c.style.strokeColor=null!==(i=l.currentItemStrokeColor)&&void 0!==i?i:"black",c.style.opacity=null!==(n=l.currentItemOpacity)&&void 0!==n?n:1,c.style.fontFamily=null!==(a=null!=t?t:l.currentItemFontFamily)&&void 0!==a?a:1,c.style.fontSize=null!==(r=l.currentItemFontSize)&&void 0!==r?r:20,c.style.textAlign=null!==(s=l.currentItemTextAlign)&&void 0!==s?s:"left";const{width:d,height:h}=l,g=viewportCoordsToSceneCoords({clientX:0,clientY:0},l),p=viewportCoordsToSceneCoords({clientX:d,clientY:h},l),m=g.x>this.currentPosition.x||p.xthis.currentPosition.y||p.y{const r=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!r)return!1;const s=e.filter((e=>"text"==e.type));for(let e=0;ee.id)),l=r.getSceneElements(),c=[];for(let t=0;te.id===A))[0],c.push(A))}const d=n?l.concat(e.filter((e=>!c.includes(e.id)))):e.filter((e=>!c.includes(e.id))).concat(l);if(this.updateScene({elements:d,commitToHistory:!0},a),i&&Object.keys(i).length>0){const e=[];Object.keys(i).forEach((t=>{if(e.push({mimeType:i[t].mimeType,id:i[t].id,dataURL:i[t].dataURL,created:i[t].created}),i[t].file||i[t].isHyperlink){const e=new EmbeddedFile(this.plugin,this.file.path,i[t].isHyperlink?i[t].hyperlink:i[t].file),A=r.getAppState();e.setImage(i[t].dataURL,i[t].mimeType,i[t].size,"dark"===A.theme,i[t].hasSVGwithBitmap),this.excalidrawData.setFile(i[t].id,e)}i[t].latex&&this.excalidrawData.setEquation(i[t].id,{latex:i[t].latex,isLoaded:!0})})),r.addFiles(e)}return r.updateContainerSize(r.getSceneElements().filter((e=>o.includes(e.id))).filter(isContainer)),A?await this.save(!1):this.setDirty(5),!0},this.getScene=e=>{const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return null;const A=e?this.getViewSelectedElements():t.getSceneElements(),i=t.getAppState(),n=Object.assign({},t.getFiles());if(n){const e=A.filter((e=>"image"===e.type)).map((e=>e.fileId)),t=Object.keys(n).filter((t=>!e.contains(t)));t.forEach((e=>delete n[e]))}return{type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:A,appState:{theme:i.theme,viewBackgroundColor:i.viewBackgroundColor,currentItemStrokeColor:i.currentItemStrokeColor,currentItemBackgroundColor:i.currentItemBackgroundColor,currentItemFillStyle:i.currentItemFillStyle,currentItemStrokeWidth:i.currentItemStrokeWidth,currentItemStrokeStyle:i.currentItemStrokeStyle,currentItemRoughness:i.currentItemRoughness,currentItemOpacity:i.currentItemOpacity,currentItemFontFamily:i.currentItemFontFamily,currentItemFontSize:i.currentItemFontSize,currentItemTextAlign:i.currentItemTextAlign,currentItemStartArrowhead:i.currentItemStartArrowhead,currentItemEndArrowhead:i.currentItemEndArrowhead,scrollX:i.scrollX,scrollY:i.scrollY,zoom:i.zoom,currentItemRoundness:i.currentItemRoundness,gridSize:i.gridSize,colorPalette:i.colorPalette,currentStrokeOptions:i.currentStrokeOptions,previousGridSize:i.previousGridSize,frameRendering:i.frameRendering},prevTextMode:this.prevTextMode,files:n}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const e=this.excalidrawAPI;(null==u?void 0:u.current)&&e&&e.refresh()};let g={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const e=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(e),p=null}};const m=e=>{var t,A,i,n,a;const r=null===(t=app.dragManager.draggable)||void 0===t?void 0:t.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(A=app.dragManager.draggable)||void 0===A?void 0:A.type)?"link":(null===(i=e.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=e.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=e.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let w=!1;const f=()=>{if(s=getTextElementAtPointer(this.currentPosition,this),s&&s.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(s=null)}if(o=getImageElementAtPointer(this.currentPosition,this),o&&o.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(o=null)}if(l=getElementWithLinkAtPointer(this.currentPosition,this),l&&l.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(l=null)}};let E=null;const B=(e,t)=>{var A,i;if(!E)return;if(null===(i=null===(A=this.excalidrawAPI)||void 0===A?void 0:A.getAppState())||void 0===i?void 0:i.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!e){if(!this.currentPosition)return;e="";const A=getTextElementAtPointer(this.currentPosition,this);if(A&&A.text){t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0];const i=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(A.id):A.text;if(!i)return;if(i.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(i).next();if(!n.value)return;if((e=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const A=getImageElementAtPointer(this.currentPosition,this);if(t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0],!A||!A.fileId)return;if(!this.excalidrawData.hasFile(A.fileId))return;const i=this.excalidrawData.getFile(A.fileId);if(i.isHyperlink)return;if(IMAGE_TYPES.contains(i.file.extension))return;if("pdf"===i.file.extension.toLowerCase())return;if(this.plugin.ea.isExcalidrawFile(i.file))return;const n=i.linkParts.ref?`#${i.linkParts.isBlockRef?"^":""}${i.linkParts.ref}`:"";e=i.file.path+n}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(t,e,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:e})}if(this.semaphores.hoverSleep)return;const n=app.metadataCache.getFirstLinkpathDest(e.split("#")[0],this.file.path);if(!n)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))return;this.semaphores.hoverSleep=!0;const a=this;if(setTimeout((()=>a.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=e,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:E,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),g=this.currentPosition,this.isFullscreen()){const e=this;setTimeout((()=>{var t,A,i,a;const r=null!==(a=null===(i=null===(A=null===(t=this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))||void 0===t?void 0:t.parentElement)||void 0===A?void 0:A.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==a?a:this.ownerDocument.body.querySelector("div.popover");r&&e.contentEl.append(r)}),400)}},{Excalidraw:b,MainMenu:v,WelcomeScreen:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,y=t.createElement("div",{className:"excalidraw-wrapper",ref:A,key:"abc",tabIndex:0,onKeyDown:e=>{e.target!==y.ref.current&&(this.isFullscreen()&&e.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!isCTRL(e)||isSHIFT(e)||isALT(e)||B())},onPointerDown:e=>{(isCTRL(e)||isMETA(e))&&(!this.plugin.settings.allowCtrlClick&&isMETA(e)||setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(e)})))},onMouseMove:e=>{E=e.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:e=>{const t=m(e.dataTransfer);if(t){this.draginfoDiv||(this.draginfoDiv=createDiv({cls:"excalidraw-draginfo"}),this.ownerDocument.body.appendChild(this.draginfoDiv));let A="";if(app.dragManager.draggable)switch(internalDragModifierType(e)){case"image":A="Embed image";break;case"image-fullsize":A="Embed image @100%";break;case"link":A="Insert link\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT and CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"embeddable":A="Insert in interactive frame"}else if(1===e.dataTransfer.types.length&&e.dataTransfer.types.includes("Files"))A="External file";else switch(externalDragModifierType(e)){case"image-import":A="Import image to Vault";break;case"image-url":A="Insert image/thumbnail with URL\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT, OPT, CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"insert-link":A="Insert link";break;case"embeddable":A="Insert in interactive frame"}this.draginfoDiv.innerText!==A&&(this.draginfoDiv.innerText=A);const i=e.clientY-8*parseFloat(getComputedStyle(this.draginfoDiv).fontSize)+"px",n=e.clientX-this.draginfoDiv.clientWidth/2+"px";return this.draginfoDiv.style.top!==i&&(this.draginfoDiv.style.top=i),this.draginfoDiv.style.left!==n&&(this.draginfoDiv.style.left=n),e.dataTransfer.dropEffect=t,e.preventDefault(),!1}},onDragLeave:()=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv)}},t.createElement(b,{ref:u,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:!1,saveAsImage:!1,saveToActiveFile:!1}},initState:null==e?void 0:e.appState,initialData:e,detectScroll:!0,onPointerUpdate:e=>{if(this.currentPosition=e.pointer,p&&(Math.abs(g.x-e.pointer.x)>50||Math.abs(g.y-e.pointer.y)>50)&&this.clearHoverPreview(),w){if(!d&&"down"===e.button){if(d=!0,isCTRL(this.modifierKeyDown)||isMETA(this.modifierKeyDown))return void f();const e=Date.now();return e-c<600&&e-c>40&&f(),void(c=e)}"up"===e.button&&(d=!1),(isCTRL(this.modifierKeyDown)||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&B()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(e,t)=>{var A,i,n,a;const r=()=>{const e="transparent"===t.viewBackgroundColor?"white":t.viewBackgroundColor;if(setTimeout((()=>this.updateScene({appState:{gridColor:this.getGridColor(e)}}))),setDynamicStyle(this.plugin.ea,this,e,this.plugin.settings.dynamicStyling),this.plugin.ea.onCanvasColorChangeHook)try{this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,t.viewBackgroundColor)}catch(e){errorlog({where:r,source:this.plugin.ea.onCanvasColorChangeHook,error:e,message:"ea.onCanvasColorChangeHook exception"})}};if(w=t.viewModeEnabled,this.semaphores.justLoaded){if((null!==(a=null===(n=null===(i=null===(A=this.excalidrawData)||void 0===A?void 0:A.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.length)&&void 0!==a?a:0)>0&&0===e.length)return;return this.semaphores.justLoaded=!1,!this.semaphores.preventAutozoom&&this.plugin.settings.zoomToFitOnOpen&&this.zoomToFit(!1,!0),this.previousSceneVersion=this.getSceneVersion(e),this.previousBackgroundColor=t.viewBackgroundColor,this.previousTheme=t.theme,void r()}if(t.theme!==this.previousTheme&&this.file===this.excalidrawData.file&&(this.previousTheme=t.theme,this.setDirty(5)),t.viewBackgroundColor!==this.previousBackgroundColor&&this.file===this.excalidrawData.file&&(this.previousBackgroundColor=t.viewBackgroundColor,this.setDirty(6),this.colorChangeTimer&&clearTimeout(this.colorChangeTimer),this.colorChangeTimer=setTimeout((()=>{r(),this.colorChangeTimer=null}),50)),!this.semaphores.dirty&&null===t.editingElement&&null===t.editingLinearElement){const t=this.getSceneVersion(e);(t>0||0===t&&e.length>0)&&t!==this.previousSceneVersion&&(this.previousSceneVersion=t,this.setDirty(6))}},onLibraryChange:e=>{(async()=>{const t={type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:e};this.plugin.setStencilLibrary(t),await this.plugin.saveSettings()})()},renderTopRightUI:(e,t)=>this.obsidianMenu.renderButton(e,t),renderEmbeddableMenu:e=>this.embeddableMenu.renderButtons(e),onPaste:(e,t)=>{const A=this.getHookServer();if(e&&A.onPasteHook){const i=A.onPasteHook({ea:A,payload:e,event:t,excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition});if("boolean"==typeof i&&!1===i)return!1}if(e&&e.text&&hyperlinkIsImage(e.text))return this.addImageWithURL(e.text),!1;if(e.elements){const e=this;setTimeout((()=>e.save(!1)),300)}return!0},onThemeChange:async e=>{var t;this.excalidrawData.scene.appState.theme=e,this.loadSceneFiles(),null===(t=null==i?void 0:i.current)||void 0===t||t.setTheme(e),setTimeout((()=>setDynamicStyle(this.plugin.ea,this,this.previousBackgroundColor,this.plugin.settings.dynamicStyling)))},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:e=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv);const t=this.excalidrawAPI;if(!t)return!1;const A=t.getAppState();this.currentPosition=viewportCoordsToSceneCoords({clientX:e.clientX,clientY:e.clientY},A);const i=app.dragManager.draggable,n=internalDragModifierType(e),a=externalDragModifierType(e),r=(t,A,n)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:e,draggable:i,type:t,payload:{files:A,text:n},excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition})}catch(e){return new obsidian_module.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:e}),!1}};switch(null==i?void 0:i.type){case"file":if(!r("file",[i.file],null)){const e=i.file;if(e.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(["image","image-fullsize"].contains(n)&&(IMAGE_TYPES.contains(e.extension)||"md"===e.extension||"pdf"===e.extension.toLowerCase()))return"pdf"===e.extension.toLowerCase()?new InsertPDFModal(this.plugin,this).open(e):(async()=>{const t=getEA(this);t.selectElementsInView([await insertImageToView(t,this.currentPosition,e,!("image-fullsize"===n))])})(),!1;if("embeddable"===n)return(async()=>{const t=getEA(this);t.selectElementsInView([await insertEmbeddableToView(t,this.currentPosition,e)])})(),!1;this.addText(`[[${app.metadataCache.fileToLinktext(i.file,this.file.path,!0)}]]`)}return!1;case"files":return r("file",i.files,null)||(async()=>{if(["image","image-fullsize"].contains(n)){const e=getEA(this);e.canvas.theme=t.getAppState().theme;let A=0;const a=[];for(const t of i.files)(IMAGE_TYPES.contains(t.extension)||"md"===t.extension)&&(a.push(await e.addImage(this.currentPosition.x+50*A,this.currentPosition.y+50*A,t,!("image-fullsize"===n))),A++,await e.addElementsToView(!1,!1,!0),e.selectElementsInView(a)),"pdf"===t.extension.toLowerCase()&&new InsertPDFModal(this.plugin,this).open(t)}else{if("embeddable"===n){const e=getEA(this);let t=0,A=0;const n=[];for(const a of i.files)n.push(await insertEmbeddableToView(e,{x:this.currentPosition.x+500*t,y:this.currentPosition.y+550*A},a)),t=(t+1)%3,0===t&&A++;return!1}for(const e of i.files)await this.addText(`[[${app.metadataCache.fileToLinktext(e,this.file.path,!0)}]]`,void 0,!1),this.currentPosition.y+=2*A.currentItemFontSize;this.save(!1)}})(),!1}if(e.dataTransfer.types.includes("Files")){if(e.dataTransfer.types.includes("text/plain")){const t=e.dataTransfer.getData("text");if(t&&r("text",null,t))return!1;if(t&&"image-url"===a&&hyperlinkIsImage(t))return this.addImageWithURL(t),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t.match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t),!1):(this.addText(t),!1);if(t&&"embeddable"===a)return insertEmbeddableToView(getEA(this),this.currentPosition,void 0,t),!1}if(e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/);if(t&&"image-url"===a&&hyperlinkIsImage(t[1]))return this.addImageWithURL(t[1]),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t[1].match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t[1]),!1):(this.addText(t[1]),!1);if(t&&"embeddable"===a)return insertEmbeddableToView(getEA(this),this.currentPosition,void 0,t[1]),!1}return!0}if(e.dataTransfer.types.includes("text/plain")||e.dataTransfer.types.includes("text/uri-list")||e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/),A=t?t[1]:"",i=e.dataTransfer.getData("text"),n=e.dataTransfer.getData("text/uri-list");let s=t?A:i;if(s&&""!==s||(s=n),!s||""===s)return!0;if(!r("text",null,s)){if(s&&"embeddable"===a&&/^(blob:)?(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(s))return!0;if(s&&"image-url"===a&&hyperlinkIsYouTubeLink(s))return this.addYouTubeThumbnail(s),!1;if(n&&"image-url"===a&&hyperlinkIsYouTubeLink(n))return this.addYouTubeThumbnail(n),!1;if(s&&"image-url"===a&&hyperlinkIsImage(s))return this.addImageWithURL(s),!1;if(n&&"image-url"===a&&hyperlinkIsImage(n))return this.addImageWithURL(n),!1;if(s&&"image-import"===a&&hyperlinkIsImage(s))return this.addImageSaveToVault(s),!1;if(n&&"image-import"===a&&hyperlinkIsImage(n))return this.addImageSaveToVault(n),!1;if(this.plugin.settings.iframelyAllowed&&s.match(/^https?:\/\/\S*$/))return this.addTextWithIframely(s),!1;if(s.startsWith("obsidian://open?vault=")){const t=e.dataTransfer.getData("text/html");if(t){const e=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===e.length){const t=decodeURIComponent(e[1]).split("#"),A=app.vault.getAbstractFileByPath(t[0]);if(A&&A instanceof obsidian_module.TFile){const e=app.metadataCache.fileToLinktext(A,this.file.path);return void this.addText(`[[${e+(t.length>1?"#"+t[1]+"|"+e:"")}]]`)}return this.addText(`[[${decodeURIComponent(e[1])}]]`),!1}}const A=s.split("file=");if(2===A.length)return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}this.addText(s.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!r("unknown",null,null)},onBeforeTextEdit:e=>{var t;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(t=e.originalText)&&void 0!==t?t:e.text;return this.excalidrawData.getRawText(e.id)||e.rawText},onBeforeTextSubmit:(e,t,A,i)=>{var n,a;const r=this.excalidrawAPI;if(!r)return[null,null,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer&&clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(e.id),this.setDirty(7),[null,null,null];const s=t$d("WARNING_PASTING_ELEMENT_AS_TEXT");if(t.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((()=>{const t=this.excalidrawAPI.getSceneElements(),A=t.filter((t=>t.id===e.id));if(1===A.length){const e=cloneElement(A[0]);e.rawText=s,t[t.indexOf(A[0])]=e,this.excalidrawData.setTextElement(e.id,s,s,(()=>{})),this.updateScene({elements:t}),r.history.clear()}})),[s,s,null];const o=e.containerId,l=A.trim().matchAll(/^!\[\[([^|\]]*)?.*?]]$|^!\[[^\]]*?]\((.*?)\)$/g).next();if(null===(n=null==l?void 0:l.value)||void 0===n?void 0:n[0]){const t=null!==(a=l.value[1])&&void 0!==a?a:l.value[2],A=app.metadataCache.getFirstLinkpathDest(t,this.file.path);if(A&&A instanceof obsidian_module.TFile){if("md"!==A.extension||this.plugin.isExcalidrawFile(A))return setTimeout((async()=>{const t=this.excalidrawAPI.getSceneElements(),i=t.filter((t=>t.id===e.id));if(1===i.length){const e={x:i[0].x,y:i[0].y},n=cloneElement(i[0]);n.isDeleted=!0,this.excalidrawData.deleteTextElement(n.id),t[t.indexOf(i[0])]=n,this.updateScene({elements:t});const a=getEA(this);IMAGE_TYPES.contains(A.extension)?a.selectElementsInView([await insertImageToView(a,e,A)]):"pdf"!==A.extension?a.selectElementsInView([await insertEmbeddableToView(a,e,A)]):new UniversalInsertFileModal(this.plugin,this).open(A,e),this.setDirty()}})),[null,null,null];new obsidian_module.Notice(t$d("USE_INSERT_FILE_MODAL"),5e3)}}if(t!==e.text||A!==e.originalText||!this.excalidrawData.getRawText(e.id)){this.setDirty(8);const i=async(t,A)=>{var i,n;if(this.textMode===TextMode.raw)return;const a=this.excalidrawAPI.getSceneElements(),s=a.filter((t=>t.id===e.id));if(1===s.length){const e=cloneElement(s[0]),o=s[0].containerId?null===(n=null===(i=r.getSceneElements().filter((e=>e.id===s[0].containerId)))||void 0===i?void 0:i[0])||void 0===n?void 0:n.type:void 0;this.excalidrawData.updateTextElement(e,t,A,!0,o),a[a.indexOf(s[0])]=e,this.updateScene({elements:a}),e.containerId&&this.updateContainerSize(e.containerId),this.setDirty()}r.history.clear()},[n,a,s]=this.excalidrawData.setTextElement(e.id,t,A,i);return n?(o&&this.updateContainerSize(o,!0),this.textMode===TextMode.raw?[t,A,s]:t===n?s?[n,a,s]:[null,null,null]:(r.history.clear(),[n,a,s])):[null,null,null]}return o&&this.updateContainerSize(o,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(e.id):[null,null,null]},onLinkOpen:async(e,t)=>{var A;if(t.preventDefault(),!e)return;let i=e.link;if(!i||""===i)return;setTimeout((()=>this.removeLinkTooltip()),500);let n=null===(A=null==t?void 0:t.detail)||void 0===A?void 0:A.nativeEvent;if(!this.handleLinkHookCall(e,e.link,n)&&!this.openExternalLink(e.link,isSHIFT(n)||isCTRL(n)||isMETA(n)||isALT(n)?void 0:e)){if("text"===e.type){const t=e.rawText.replaceAll("\n","");REGEX_LINK.getResList(t).filter((e=>Boolean(e.value))).length>1&&(i=t)}n.shiftKey||n.ctrlKey||n.metaKey||n.altKey||(n=emulateKeysForLinkClick("new-tab")),this.linkClick(n,null,null,{id:e.id,text:i},n)}},onLinkHover:(e,t)=>{if(e&&(this.plugin.settings.hoverPreviewWithoutCTRL||isCTRL(t))){E=t,E.ctrlKey=!(DEVICE.isIOS||DEVICE.isMacOS)||E.ctrlKey,E.metaKey=DEVICE.isIOS||DEVICE.isMacOS||E.metaKey;const A=e.link;if(!A||""===A)return;if(A.startsWith("[[")){const t=A.match(/\[\[(?.*?)\]\]/);if(!t)return;let i=t.groups.link;B(i,e)}}},onViewModeChange:e=>{var t,A;if(this.semaphores.viewunload||null===(A=null===(t=this.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.setExcalidrawViewMode(e),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(e,this,this.getHookServer())}catch(e){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:e})}},validateEmbeddable:!0,renderWebview:DEVICE.isDesktop,renderEmbeddable:(e,A)=>{try{const i=useDefaultExcalidrawFrame(e);if(!this.file||!e||!e.link||0===e.link.length||i)return null;if(e.link.match(REG_LINKINDEX_HYPERLINK))return i?null:renderWebView(e.link,this,e.id);const n=REGEX_LINK.getRes(e.link).next();if(!n||!n.value&&n.done)return null;let a=REGEX_LINK.getLink(n);return a.match(REG_LINKINDEX_HYPERLINK)?i?null:renderWebView(a,this,e.id):t.createElement(CustomEmbeddable,{element:e,view:this,appState:A,linkText:a})}catch(e){return null}}},t.createElement(v,{},t.createElement(v.DefaultItems.ChangeCanvasBackground),t.createElement(v.DefaultItems.ToggleTheme),t.createElement(v.Separator),DEVICE.isPhone?null:t.createElement(v.Item,{icon:ICONS.trayMode,"aria-label":"Tray-mode offers an alternative, more spacious canvas",onSelect:()=>{this.toggleTrayMode()}},"Toggle tray-mode"),t.createElement(v.Item,{icon:saveIcon(!1),"aria-label":t$d("FORCE_SAVE"),onSelect:()=>{this.forceSave()}},"Save"),t.createElement(v.Item,{icon:ICONS.scriptEngine,"aria-label":"Explore the Excalidraw Script Library",onSelect:()=>{new ScriptInstallPrompt(this.plugin).open()}},"Script Library"),t.createElement(v.Item,{icon:ICONS.ExportImage,"aria-label":"Export image as PNG, SVG, or Excalidraw file",onSelect:()=>{this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open()}},"Export Image..."),t.createElement(v.Item,{icon:ICONS.switchToMarkdown,"aria-label":"Switch to markdown view",onSelect:()=>{this.openAsMarkdown()}},"Open as Markdown"),t.createElement(v.Separator),t.createElement(v.DefaultItems.Help),t.createElement(v.DefaultItems.ClearCanvas)),t.createElement(C,{},t.createElement(C.Center,{},t.createElement(C.Center.Logo,{},t.createElement(LogoWrapper,{},ICONS.ExcalidrawSword)),t.createElement(C.Center.Heading,{},'Type "Excalidraw" in the Command Palette',t.createElement("br"),"Explore the Obsidian Menu in the top right",t.createElement("br"),"Visit the Script Library",t.createElement("br"),"Find help in the hamburger-menu"),t.createElement(C.Center.Menu,{},t.createElement(C.Center.MenuItemLink,{icon:ICONS.YouTube,href:"https://www.youtube.com/@VisualPKM",shortcut:null,"aria-label":"Visual PKM YouTube Channel"}," Check out the Visual PKM YouTube channel."),t.createElement(C.Center.MenuItemLink,{icon:ICONS.Discord,href:"https://discord.gg/DyfAXFwUHc",shortcut:null,"aria-label":"Join the Visual Thinking Discord Server"}," Join the Visual Thinking Discord Server"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.twitter,href:"https://twitter.com/zsviczian",shortcut:null,"aria-label":"Follow me on Twitter"}," Follow me on Twitter"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.heart,href:"https://ko-fi.com/zsolt",shortcut:null,"aria-label":"Donate to support Excalidraw-Obsidian"},' Say "Thank You" & support the plugin.'))))),t.createElement(ToolsPanel,{ref:i,visible:!1,view:this,centerPointer:()=>{const e=this.excalidrawAPI;if(!u||!u.current||!e)return;const t=e.getAppState(),{width:A,height:i}=t;this.currentPosition=viewportCoordsToSceneCoords({clientX:A/2,clientY:i/2},t)}})),F=t.useRef(new ResizeObserver((e=>{if(!i||!i.current)return;const{width:t,height:A}=e[0].contentRect;if(0===t||0===A)return;const n=i.current.onRightEdge?i.current.previousWidth-t:0,a=i.current.onBottomEdge?i.current.previousHeight-A:0;i.current.updatePosition(a,n)})));return t.useEffect((()=>((null==i?void 0:i.current)&&F.current.observe(i.current.containerRef.current),()=>{F.current.unobserve(i.current.containerRef.current)})),[i,F]),t.createElement(t.Fragment,null,y)}));A.createRoot(this.contentEl).render(i)}updateContainerSize(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=()=>{const t=e?A.getSceneElements().filter((t=>t.id===e&&"arrow"!==t.type)):A.getSceneElements().filter(isContainer);t.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),A.updateContainerSize(t)),this.initialContainerSizeUpdate=!1};t?setTimeout((()=>i()),50):i()}zoomToFit(e=!0,t=!1){if(document.body.querySelector("div.modal-container"))return;const A=this.excalidrawAPI;if(!A||!this.excalidrawRef||this.semaphores.isEditingText||this.semaphores.preventAutozoom)return;const i=this.plugin.settings.zoomToFitMaxLevel,n=A.getSceneElements().filter((e=>e.width<1e4&&e.height<1e4));app.isMobile&&n.length>1e3||n.length>2500?t&&A.scrollToContent():e?setTimeout((()=>A.zoomToFit(n,i,this.isFullscreen()?0:.05)),100):A.zoomToFit(n,i,this.isFullscreen()?0:.05)}updatePinnedScripts(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{pinnedScripts:this.plugin.settings.pinnedScripts}})}updatePinnedCustomPens(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}})}updatePinchZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowPinchZoom:this.plugin.settings.allowPinchZoom}})}updateWheelZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowWheelZoom:this.plugin.settings.allowWheelZoom}})}async toggleTrayMode(){const e=this.excalidrawAPI;if(!e)return!1;const t=e.getAppState();e.updateScene({appState:{trayModeEnabled:!t.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!t.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(e,t,A=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(e.filter((e=>"text"===e.type)),t,i).concat(getFrameElementsMatchingQuery(e.filter((e=>"frame"===e.type)),t,i));if(0!==a.length){if(n){const t=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],e);t.length>0&&(a=t)}this.zoomToElements(A,a)}else new obsidian_module.Notice("I could not find a matching text element")}zoomToElements(e,t){const A=this.excalidrawAPI;if(!A)return;const i=this.plugin.settings.zoomToFitMaxLevel;e&&A.selectElements(t),A.zoomToFit(t,i,.05)}getViewSelectedElements(){var e;const t=this.excalidrawAPI;if(!t)return[];const A=null===(e=t.getAppState())||void 0===e?void 0:e.selectedElementIds;if(!A)return[];const i=Object.keys(A);if(!i)return[];const n=t.getSceneElements().filter((e=>i.includes(e.id))),a=n.filter((e=>e.boundElements&&e.boundElements.filter((e=>"text"===e.type)).length>0)).map((e=>e.boundElements.filter((e=>"text"===e.type)).map((e=>e.id))[0])),r=n.map((e=>e.id)).concat(a);return t.getSceneElements().filter((e=>r.contains(e.id)))}async copyLinkToSelectedElementToClipboard(e){const t=this.getViewSelectedElements();if(t.length<1)return void new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let A;if(2===t.length){const e=t.filter((e=>"text"===e.type));1===e.length&&e[0].containerId&&1===t.filter((e=>e.boundElements.some((e=>"text"===e.type)))).length&&(A=e[0].id)}A||(A=1===t.length?t[0].id:this.plugin.ea.getLargestElement(t).id);let i=[];if(t.some((e=>e.id===A&&"frame"===e.type)))switch(e){case"area=":case"group=":case"frame=":i=[{caption:"Frame",action:()=>{e="frame="}},{caption:"Link",action:()=>{e=""}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Frame",action:()=>{e="frame="}}]}else switch(e){case"area=":i=[{caption:"Area",action:()=>{e="area="}},{caption:"Link",action:()=>{e=""}},{caption:"Group",action:()=>{e="group="}}];break;case"group=":i=[{caption:"Group",action:()=>{e="group="}},{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}},{caption:"Group",action:()=>{e="group="}}]}const n=await ScriptEngine.inputPrompt(this,this.plugin,app,"Set link alias","Leave empty if you do not want to set an alias","",i);navigator.clipboard.writeText(`${e.length>0?"!":""}[[${this.file.path}#^${e}${A}${n?`|${n}`:""}]]`),new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}updateScene(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=e.elements&&t;i&&(e.elements=restore(e,null,null).elements);try{A.updateScene(e)}catch(t){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:t,scene:e,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{e.elements=restore(e,null,null).elements,A.updateScene(e)}catch(t){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:t,scene:e}),warningUnknowSeriousError()}}}updateEmbeddableRef(e,t){t&&this.embeddableRefs.set(e,t)}getEmbeddableElementById(e){return this.embeddableRefs.get(e)}updateEmbeddableLeafRef(e,t){t&&this.embeddableLeafRefs.set(e,t)}getEmbeddableLeafElementById(e){return this.embeddableLeafRefs.get(e)||null}get editor(){var e;const t=this.getActiveEmbeddable();if(t){if(t.node&&t.node.isEditing)return t.node.child.editor;if((null===(e=t.leaf)||void 0===e?void 0:e.view)instanceof obsidian_module.MarkdownView)return t.leaf.view.editor}return app.workspace.openLinkText,null}}function getTextMode(e){return e.search("excalidraw-plugin: parsed\n")>-1||e.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,autosaveIntervalDesktop:15e3,autosaveIntervalMobile:1e4,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:void 0,previewImageType:void 0,allowImageCache:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",dynamicStyling:"colorful",isLeftHanded:!1,iframeMatchExcalidrawTheme:!0,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",allowPinchZoom:!1,allowWheelZoom:!1,zoomToFitOnOpen:!0,zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!0,previousRelease:"0.0.0",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js",latexBoilerplate:"\\color{blue}",taskboneEnabled:!1,taskboneAPIkey:"",pinnedScripts:[],customPens:[Object.assign({},PENS.default),Object.assign({},PENS.highlighter),Object.assign({},PENS.finetip),Object.assign({},PENS.fountain),Object.assign({},PENS.marker),Object.assign({},PENS["thick-thin"]),Object.assign({},PENS["thin-thick-thin"]),Object.assign({},PENS.default),Object.assign({},PENS.default),Object.assign({},PENS.default)],numberOfCustomPens:0,pdfScale:4,pdfBorderBox:!0,pdfGapSize:20,pdfLockAfterImport:!0,pdfNumColumns:1,pdfImportScale:.3};class ExcalidrawSettingTab extends obsidian_module.PluginSettingTab{constructor(e,t){super(e,t),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.requestUpdatePinnedPens=!1,this.requestUpdateDynamicStyling=!1,this.reloadMathJax=!1,this.plugin=t}applySettingsUpdate(e=!1){e&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian_module.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestUpdatePinnedPens&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.requestUpdateDynamicStyling&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&setDynamicStyle(this.plugin.ea,e.view,e.view.previousBackgroundColor,this.plugin.settings.dynamicStyling)})),this.requestReloadDrawings){const e=app.workspace.getLeavesOfType("excalidraw");for(const t of e)t.view instanceof ExcalidrawView&&(await t.view.save(!1),await t.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var e;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:t}=this;t.addClass("excalidraw-settings"),this.containerEl.empty();const A=t.createDiv("coffee");A.addClass("ex-coffee-div"),A.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian_module.Setting(t).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showReleaseNotes).onChange((async e=>{this.plugin.settings.showReleaseNotes=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showNewVersionNotification).onChange((async e=>{this.plugin.settings.showNewVersionNotification=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async e=>{this.plugin.settings.folder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async e=>{this.plugin.settings.embedUseExcalidrawFolder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async e=>{this.plugin.settings.templateFilePath=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async e=>{this.plugin.settings.scriptFolderPath=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("SAVING_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compress).onChange((async e=>{this.plugin.settings.compress=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_DESKTOP_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_DESKTOP_DESC"))).addDropdown((e=>e.addOption("15000","Frequent (every 15 seconds)").addOption("60000","Moderate (every 60 seconds)").addOption("300000","Rare (every 5 minutes)").addOption("900000","Practically never (every 15 minutes)").setValue(this.plugin.settings.autosaveIntervalDesktop.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalDesktop=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_MOBILE_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_MOBILE_DESC"))).addDropdown((e=>e.addOption("10000","Frequent (every 10 seconds)").addOption("30000","Moderate (every 30 seconds)").addOption("60000","Rare (every 1 minute)").addOption("300000","Practically never (every 5 minutes)").setValue(this.plugin.settings.autosaveIntervalMobile.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalMobile=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),t.createDiv("",(e=>{e.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=t.createEl("p",{text:""});let a,r,s,o,l,c,d;n.innerHTML=i(),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((e=>e.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async t=>{this.plugin.settings.drawingFilenamePrefix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async e=>{this.plugin.settings.drawingEmbedPrefixWithFilename=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((e=>e.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async t=>{this.plugin.settings.drawingFilnameEmbedPostfix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((e=>e.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async t=>{this.plugin.settings.drawingFilenameDateTime=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async e=>{this.plugin.settings.useExcalidrawExtension=e,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("DYNAMICSTYLE_NAME")).setDesc(fragWithHTML(t$d("DYNAMICSTYLE_DESC"))).addDropdown((e=>e.addOption("none","Dynamic Styling OFF").addOption("colorful","Match color").addOption("gray","Gray, match tone").setValue(this.plugin.settings.dynamicStyling).onChange((async e=>{this.requestUpdateDynamicStyling=!0,this.plugin.settings.dynamicStyling=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.isLeftHanded).onChange((async e=>{this.plugin.settings.isLeftHanded=e,setLeftHandedMode(e),setTimeout((()=>setLeftHandedMode(e))),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("IFRAME_MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("IFRAME_MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframeMatchExcalidrawTheme).onChange((async e=>{this.plugin.settings.iframeMatchExcalidrawTheme=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchTheme).onChange((async e=>{this.plugin.settings.matchTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeAlways).onChange((async e=>{this.plugin.settings.matchThemeAlways=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeTrigger).onChange((async e=>{this.plugin.settings.matchThemeTrigger=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((e=>e.addOption("normal","Always in normal-mode").addOption("zen","Always in zen-mode").addOption("view","Always in view-mode").addOption("view-mobile","Usually normal, but view-mode on Phone").setValue(this.plugin.settings.defaultMode).onChange((async e=>{this.plugin.settings.defaultMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((e=>e.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async e=>{this.plugin.settings.defaultPenMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PINCHZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PINCHZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowPinchZoom).onChange((async e=>{this.plugin.settings.allowPinchZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinchZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_WHEELZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_WHEELZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowWheelZoom).onChange((async e=>{this.plugin.settings.allowWheelZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updateWheelZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_ONOPEN_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_ONOPEN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnOpen).onChange((async e=>{this.plugin.settings.zoomToFitOnOpen=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async e=>{this.plugin.settings.zoomToFitOnResize=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((e=>e.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async e=>{a.innerText=` ${e.toString()}`,this.plugin.settings.zoomToFitMaxLevel=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{a=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(e=>e.innerHTML=t$d("LINKS_DESC"))),new obsidian_module.Setting(t).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInAdjacentPane).onChange((async e=>{this.plugin.settings.openInAdjacentPane=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInMainWorkspace).onChange((async e=>{this.plugin.settings.openInMainWorkspace=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showLinkBrackets).onChange((e=>{this.plugin.settings.showLinkBrackets=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((e=>{this.plugin.settings.linkPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((e=>{this.plugin.settings.urlPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.parseTODO).onChange((e=>{this.plugin.settings.parseTODO=e,r.setDisabled(!e),s.setDisabled(!e),this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((e=>{r=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((e=>{this.plugin.settings.todo=e,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((e=>{s=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((e=>{this.plugin.settings.done=e,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((e=>e.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async e=>{o.innerText=` ${e.toString()}`,this.plugin.settings.linkOpacity=e,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(e=>{o=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian_module.Setting(t).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async e=>{this.plugin.settings.hoverPreviewWithoutCTRL=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowCtrlClick).onChange((async e=>{this.plugin.settings.allowCtrlClick=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.forceWrap).onChange((async e=>{this.plugin.settings.forceWrap=e,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian_module.Setting(t).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=A,e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=A,e.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((e=>{this.plugin.settings.removeTransclusionQuoteSigns=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframelyAllowed).onChange((async e=>{this.plugin.settings.iframelyAllowed=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),e.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.mdFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=e,this.applySettingsUpdate(!0)}))})),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((e=>e.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=e,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EMBED_PREVIEW_IMAGETYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_IMAGETYPE_DESC"))).addDropdown((e=>e.addOption(PreviewImageType.PNG,"PNG Image").addOption(PreviewImageType.SVG,"Native SVG").addOption(PreviewImageType.SVGIMG,"SVG Image").setValue(this.plugin.settings.previewImageType).onChange((e=>{this.plugin.settings.previewImageType=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async e=>{l=e,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async e=>{this.plugin.settings.embedType=e,this.applySettingsUpdate()}))})),this.containerEl.createEl("h4",{text:t$d("EMBED_CACHING")}),new obsidian_module.Setting(t).setName(t$d("EMBED_IMAGE_CACHE_NAME")).setDesc(fragWithHTML(t$d("EMBED_IMAGE_CACHE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowImageCache).onChange((e=>{this.plugin.settings.allowImageCache=e,this.applySettingsUpdate()})))).addButton((e=>e.setButtonText(t$d("EMBED_IMAGE_CACHE_CLEAR")).onClick((()=>{imageCache.clearImageCache()})))).addButton((e=>e.setButtonText(t$d("BACKUP_CACHE_CLEAR")).onClick((()=>{new ConfirmationPrompt(this.plugin,t$d("BACKUP_CACHE_CLEAR_CONFIRMATION")).waitForClose.then((e=>{e&&imageCache.clearBackupCache()}))})))),new obsidian_module.Setting(t).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async e=>{this.plugin.settings.displayExportedImageIfAvailable=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h4",{text:t$d("EMBED_SIZING")}),new obsidian_module.Setting(t).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((e=>e.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async e=>{this.plugin.settings.width=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedWikiLink).onChange((async e=>{this.plugin.settings.embedWikiLink=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((e=>e.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async e=>{c.innerText=` ${e.toString()}`,this.plugin.settings.pngExportScale=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{c=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian_module.Setting(t).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((e=>e.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async e=>{d.innerText=` ${e.toString()}`,this.plugin.settings.exportPaddingSVG=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{d=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),this.containerEl.createEl("h4",{text:t$d("EMBED_THEME_BACKGROUND")}),new obsidian_module.Setting(t).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithBackground).onChange((async e=>{this.plugin.settings.exportWithBackground=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithTheme).onChange((async e=>{this.plugin.settings.exportWithTheme=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async e=>{this.plugin.settings.previewMatchObsidianTheme=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.keepInSync).onChange((async e=>{this.plugin.settings.keepInSync=e,this.applySettingsUpdate()}))));const h=e=>{let t=0;for(t=0;te.setValue(this.plugin.settings.autoexportSVG).onChange((async e=>{e?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportPNG).onChange((async e=>{e?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async e=>{this.plugin.settings.autoExportLightAndDark=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compatibilityMode).onChange((async e=>{this.plugin.settings.compatibilityMode=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async e=>{this.plugin.settings.autoexportExcalidraw=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.syncExcalidraw).onChange((async e=>{this.plugin.settings.syncExcalidraw=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("NONSTANDARD_HEAD")}),this.containerEl.createEl("p",{text:t$d("NONSTANDARD_DESC")}),new obsidian_module.Setting(t).setName(t$d("CUSTOM_PEN_NAME")).setDesc(t$d("CUSTOM_PEN_DESC")).addDropdown((e=>e.addOption("0","0").addOption("1","1").addOption("2","2").addOption("3","3").addOption("4","4").addOption("5","5").addOption("6","6").addOption("7","7").addOption("8","8").addOption("9","9").addOption("10","10").setValue(this.plugin.settings.numberOfCustomPens.toString()).onChange((e=>{this.plugin.settings.numberOfCustomPens=parseInt(e),this.requestUpdatePinnedPens=!0,this.applySettingsUpdate(!1)})))),new obsidian_module.Setting(t).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.experimantalFourthFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=e,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian_module.Setting(t).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((e=>{e.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((e=>{this.plugin.settings.mathjaxSourceURL=e,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),new obsidian_module.Setting(t).setName(t$d("LATEX_DEFAULT_NAME")).setDesc(fragWithHTML(t$d("LATEX_DEFAULT_DESC"))).addText((e=>e.setValue(this.plugin.settings.latexBoilerplate).onChange((e=>{this.plugin.settings.latexBoilerplate=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.fieldSuggester).onChange((async e=>{this.plugin.settings.fieldSuggester=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalFileType).onChange((async e=>{this.plugin.settings.experimentalFileType=e,this.plugin.experimentalFileTypeDisplayToggle(e),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async e=>{this.plugin.settings.experimentalFileTag=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalLivePreview).onChange((async e=>{this.plugin.settings.experimentalLivePreview=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h2",{text:t$d("TASKBONE_HEAD")}),this.containerEl.createEl("p",{text:t$d("TASKBONE_DESC")}),new obsidian_module.Setting(t).setName(t$d("TASKBONE_ENABLE_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_ENABLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.taskboneEnabled).onChange((async e=>{if(u.setDisabled(!e),this.plugin.settings.taskboneEnabled=e,""===this.plugin.settings.taskboneAPIkey){const e=await this.plugin.taskbone.initialize(!1);e&&u.setValue(e)}this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TASKBONE_APIKEY_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_APIKEY_DESC"))).addText((e=>{u=e,u.setValue(this.plugin.settings.taskboneAPIkey).onChange((async e=>{this.plugin.settings.taskboneAPIkey=e,this.applySettingsUpdate()})).setDisabled(!this.plugin.settings.taskboneEnabled)}));const g=null===(e=this.plugin.scriptEngine.getListofScripts())||void 0===e?void 0:e.map((e=>this.plugin.scriptEngine.getScriptName(e)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&g){const e=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.height:null},A=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.value:A},i=(e,t,A)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[e][t]?this.plugin.settings.scriptEngineSettings[e][t].value=A:this.plugin.settings.scriptEngineSettings[e][t]=A},n=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((t=>t.setValue(A(e,n)).onChange((async t=>{i(e,n,t),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((e=>{s.forEach((t=>e.addOption(t.toString(),t.toString()))),e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):e(n,a)?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((t=>{t.inputEl.style.minHeight=e(n,a),t.inputEl.style.minWidth="400px",t.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((e=>e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))))},r=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((t=>t.setPlaceholder("Enter a number").setValue(A(e,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?t.setValue(A(e,n).toString()):(i(e,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((e=>g.contains(e))).forEach((e=>{const t=this.plugin.settings.scriptEngineSettings[e],A=Object.values(t);0===A.length||A.length>0&&0===A.map((e=>e.hidden?0:1)).reduce(((e,t)=>e+t))||(this.containerEl.createEl("h3",{text:e}),Object.keys(t).forEach((A=>{var i;const s=t[A];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(e,A,s.description);break;case"string":s.hidden||a(e,A,s.description,s.valueset);break;case"number":s.hidden||r(e,A,s.description)}})))}))}}}var openDialogAction;!function(e){e[e.openFile=0]="openFile",e[e.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian_module.FuzzySuggestModal{constructor(e,t){super(e),this.app=e,this.action=openDialogAction.openFile,this.plugin=t,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=e=>{"Enter"==e.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(e,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(e)}}start(e,t){switch(this.action=e,this.onNewPane=t,e){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e),this.app=e,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((e=>!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path+(e.alias?`|${e.alias}`:"")}onChooseItem(e){let t=e.path;e.file&&(t=this.app.metadataCache.fileToLinktext(e.file,this.drawingPath,!0)),this.addText(`[[${t+(e.alias?`|${e.alias}`:"")}]]`)}start(e,t){this.addText=t,this.drawingPath=e,this.open()}}class InsertImageDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE_WITH_OPTION_TO_SCALE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH"),this.inputEl.onkeyup=e=>{"Enter"===e.key&&scaleToFullsizeModifier(e)&&this.chooser.values&&(this.onChooseItem(this.chooser.values[this.chooser.selectedItem].item,new KeyboardEvent("keypress",{shiftKey:!0,metaKey:!(DEVICE.isIOS||DEVICE.isMacOS),ctrlKey:DEVICE.isIOS||DEVICE.isMacOS})),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>(IMAGE_TYPES.contains(e.extension)||this.plugin.isExcalidrawFile(e))&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}onChooseItem(e,t){const A=this.plugin.ea.getAPI(this.view);A.canvas.theme=this.view.excalidrawAPI.getAppState().theme;const i=scaleToFullsizeModifier(t);(async()=>{await A.addImage(0,0,e,!i),A.addElementsToView(!0,!0,!0)})()}start(e){this.view=e,this.open()}}class ImportSVGDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"svg"===e.extension&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}async onChooseItem(e,t){if(!e)return;const A=this.plugin.ea;A.reset(),A.setView(this.view);const i=await app.vault.read(e);i&&""!==i&&(A.importSVG(i),A.addElementsToView(!0,!0,!0,!0))}start(e){this.view=e,this.open()}}class InsertMDDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"md"===e.extension&&!this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){const t=this.plugin.ea;t.reset(),t.setView(this.view),(async()=>{await t.addImage(0,0,e),t.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}function around(e,t){const A=Object.keys(t).map((A=>around1(e,A,t[A])));return 1===A.length?A[0]:function(){A.forEach((e=>e()))}}function around1(e,t,A){const i=e[t],n=e.hasOwnProperty(t);let a=A(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),e[t]=r,s;function r(...A){return a===i&&e[t]===r&&s(),a.apply(this,A)}function s(){e[t]===r&&(n?e[t]=i:delete e[t]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}function dedupe(e,t,A){return i[e]=e,i;function i(...i){return(t[e]===e?t:A).apply(this,i)}}let plugin,vault,metadataCache;const getDefaultWidth=e=>{const t=parseInt(e.settings.width);return isNaN(t)||0===t||null===t?"400":e.settings.width},initializeMarkdownPostProcessor=e=>{plugin=e,vault=e.app.vault,metadataCache=e.app.metadataCache},_getPNG=async({imgAttributes:e,filenameParts:t,theme:A,cacheReady:i,img:n,file:a,exportSettings:r,loader:s})=>{const o=parseInt(e.fwidth),l=o>=2400?5:o>=1800?4:o>=1200?3:o>=600?2:1,c=Object.assign(Object.assign({},t),{isDark:"dark"===A,previewImageType:PreviewImageType.PNG,scale:l});if(i){const e=await imageCache.getImageFromCache(c);if(e&&"string"==typeof e)return n.src=e,n}const d=t.hasGroupref||t.hasFrameref?void 0:await getQuickImagePreview(plugin,a.path,"png"),h=null!=d?d:await createPNG(t.hasGroupref||t.hasFrameref?t.filepath+t.linkpartReference:a.path,l,r,s,A,null,null,[],plugin,0);return h?(n.src=URL.createObjectURL(h),i&&imageCache.addImageToCache(c,n.src,h),n):null},setStyle=({element:e,imgAttributes:t,onCanvas:A})=>{let i=`max-width:${t.fwidth}${t.fwidth.match(/\d$/)?"px":""}; `;t.fheight&&(i+=`height:${t.fheight}px;`),A||e.setAttribute("style",i),e.addClass(t.style),e.addClass("excalidraw-embedded-img")},_getSVGIMG=async({filenameParts:e,theme:t,cacheReady:A,img:i,file:n,exportSettings:a,loader:r})=>{const s=Object.assign(Object.assign({},e),{isDark:"dark"===t,previewImageType:PreviewImageType.SVGIMG,scale:1});if(A){const e=await imageCache.getImageFromCache(s);if(e&&"string"==typeof e)return i.setAttribute("src",e),i}if(!e.hasBlockref&&!e.hasSectionref){const e=await getQuickImagePreview(plugin,n.path,"svg");if(e){const t=convertSVGStringToElement(e);if(t)return addSVGToImgSrc(i,t,A,s)}}let o=convertSVGStringToElement((await createSVG(e.hasGroupref||e.hasBlockref||e.hasSectionref||e.hasFrameref?e.filepath+e.linkpartReference:n.path,!0,a,r,t,null,null,[],plugin,0,getExportPadding(plugin,n))).outerHTML);return o?(o=embedFontsInSVG(o,plugin),o.removeAttribute("width"),o.removeAttribute("height"),addSVGToImgSrc(i,o,A,s)):null},_getSVGNative=async({filenameParts:e,theme:t,cacheReady:A,containerElement:i,file:n,exportSettings:a,loader:r})=>{const s=Object.assign(Object.assign({},e),{isDark:"dark"===t,previewImageType:PreviewImageType.SVG,scale:1});let o;A&&(o=await imageCache.getImageFromCache(s));const l=o&&o instanceof SVGSVGElement?o:convertSVGStringToElement((await createSVG(e.hasGroupref||e.hasBlockref||e.hasSectionref||e.hasFrameref?e.filepath+e.linkpartReference:n.path,!1,a,r,t,null,null,[],plugin,0,getExportPadding(plugin,n),void 0,!0)).outerHTML);return l?(l.removeAttribute("width"),l.removeAttribute("height"),i.append(l),A&&imageCache.addImageToCache(s,"",l),i):null},getIMG=async(e,t=!1)=>{var A;let i=e.file;if(!e.file){const t=vault.getAbstractFileByPath(null===(A=e.fname)||void 0===A?void 0:A.split("#")[0]);if(!(t&&t instanceof obsidian_module.TFile))return null;i=t}const n=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const a=hasExportTheme(plugin,i)?getExportTheme(plugin,i,"light"):void 0,r={withBackground:getWithBackground(plugin,i),withTheme:!!a||plugin.settings.exportWithTheme},s=null!=a?a:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";s&&(r.withTheme=!0);const o=new EmbeddedFilesLoader(plugin,s?"dark"===s:void 0),l=imageCache.isReady();switch(plugin.settings.previewImageType){case PreviewImageType.PNG:{const A=createEl("img");return setStyle({element:A,imgAttributes:e,onCanvas:t}),_getPNG({imgAttributes:e,filenameParts:n,theme:s,cacheReady:l,img:A,file:i,exportSettings:r,loader:o})}case PreviewImageType.SVGIMG:{const A=createEl("img");return setStyle({element:A,imgAttributes:e,onCanvas:t}),_getSVGIMG({filenameParts:n,theme:s,cacheReady:l,img:A,file:i,exportSettings:r,loader:o})}case PreviewImageType.SVG:{const A=createEl("div");return setStyle({element:A,imgAttributes:e,onCanvas:t}),_getSVGNative({filenameParts:n,theme:s,cacheReady:l,containerElement:A,file:i,exportSettings:r,loader:o})}}},addSVGToImgSrc=(e,t,A,i)=>{const n=(new XMLSerializer).serializeToString(t),a=new Blob([n],{type:"image/svg+xml"}),r=URL.createObjectURL(a);return e.setAttribute("src",r),A&&imageCache.addImageToCache(i,r,a),e},createImgElement=async(e,t=!1)=>{const A=await getIMG(e,t);let i;A.setAttribute("fileSource",e.fname),e.fwidth&&A.setAttribute("w",e.fwidth),e.fheight&&A.setAttribute("h",e.fheight),A.setAttribute("draggable","false"),A.setAttribute("onCanvas",t?"true":"false");const n=e=>{if(!(e.target instanceof Element))return;if(!(e.target.hasClass("excalidraw-embedded-img")?e.target:getParentOfClass(e.target,"excalidraw-embedded-img")))return;const t=A.getAttribute("fileSource");if(t){const A=t.match(/([^#]*)(.*)/);if(!A)return;plugin.openDrawing(vault.getAbstractFileByPath(A[1]),linkClickModifierType(e),!0,A[2])}};let a;const r=A;return r.addEventListener("pointermove",(e=>{i&&(Math.abs(e.screenX-a.screenX)>10||Math.abs(e.screenY-a.screenY)>10)&&(clearTimeout(i),i=null)})),r.addEventListener("pointerdown",(e=>{var t;(null===(t=null==A?void 0:A.parentElement)||void 0===t?void 0:t.hasClass("canvas-node-content"))||(i=setTimeout((()=>n(e)),500),a=e)})),r.addEventListener("pointerup",(()=>{i&&clearTimeout(i),i=null})),r.addEventListener("dblclick",n),r.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation();const t=A.parentElement,i=A.style.maxWidth,n=A.style.maxHeight,a=A.getAttribute("fileSource"),r="true"===A.getAttribute("onCanvas"),s=await createImgElement({fname:a,fwidth:A.getAttribute("w"),fheight:A.getAttribute("h"),style:A.getAttribute("class")},r);t.empty(),r||(s.style.maxHeight=n,s.style.maxWidth=i),s.setAttribute("fileSource",a),t.append(s)})),A},createImageDiv=async(e,t=!1)=>{const A=await createImgElement(e,t);return createDiv(e.style,(e=>e.append(A)))},processReadingMode=async(e,t)=>{var A;for(const i of e){const e=null===(A=i.getAttribute("src"))||void 0===A?void 0:A.split("#")[0];if(!e)continue;const n=metadataCache.getFirstLinkpathDest(e,t.sourcePath);if(n&&n instanceof obsidian_module.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(e,t)=>{const A={fname:"",fheight:"",fwidth:"",style:""},i=e.getAttribute("src");if(!i)return;e.removeClass("markdown-embed"),e.removeClass("inline-embed"),e.addClass("media-embed"),e.addClass("image-embed"),A.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth(plugin),A.fheight=e.getAttribute("height");let n=e.getAttribute("alt");A.style="excalidraw-svg",processAltText(i.split("#")[0],n,A);const a=getEmbeddedFilenameParts(i);return A.fname=(null==t?void 0:t.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),A.file=t,await createImageDiv(A)},processAltText=(e,t,A)=>{var i,n;if(t&&!t.startsWith(e)){const a=t.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);A.fwidth=null!==(i=a[2])&&void 0!==i?i:A.fwidth,A.fheight=null!==(n=a[3])&&void 0!==n?n:A.fheight,a[4]&&!a[4].startsWith(e)&&(A.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(A.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=e=>{const t=e.getAttribute("src");if(!t)return!0;const A=getEmbeddedFilenameParts(t);return!(A.hasArearef||A.hasGroupref||A.hasFrameref)&&(A.hasBlockref||A.hasSectionref)},tmpObsidianWYSIWYG=async(e,t)=>{const A=app.vault.getAbstractFileByPath(t.sourcePath);if(!(A instanceof obsidian_module.TFile))return;if(!plugin.isExcalidrawFile(A))return;if(t.remainingNestLevel<4)return;const i=t.containerEl;let n=i;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&!n.hasClass("markdown-reading-view")&&!n.hasClass("markdown-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:t.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};a.file=A;const r=n.hasClass("markdown-embed"),s=n.hasClass("markdown-reading-view");if(!n.hasClass("internal-embed")&&(r||s)){const t=Boolean(e.querySelector(".frontmatter"));if(e.empty(),!t)return void(e.parentElement===i&&i.removeChild(e));n.empty();const A=n.hasClass("canvas-node-content"),s=await createImageDiv(a,A);return r?(n.removeClass("markdown-embed"),n.removeClass("inline-embed"),n.addClass("media-embed"),n.addClass("image-embed"),!A&&s.firstChild instanceof HTMLElement&&(s.firstChild.style.maxHeight="100%",s.firstChild.style.maxWidth=null),void n.appendChild(s.firstChild)):void n.appendChild(s)}if(isTextOnlyEmbed(n))return;if(e.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const o=await processInternalEmbed(n,A);n.appendChild(o);let l=null;const c=new MutationObserver((e=>{var t;["alt","width","height"].contains(null===(t=e[0])||void 0===t?void 0:t.attributeName)&&(l&&clearTimeout(l),l=setTimeout((async()=>{l=null,n.empty();const e=await processInternalEmbed(n,A);n.appendChild(e)}),500))}));c.observe(n,{attributes:!0})},markdownPostProcessor=async(e,t)=>{var A;const i=e.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(A=t.frontmatter)||void 0===A?void 0:A.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode(i,t):tmpObsidianWYSIWYG(e,t)},hoverEvent=e=>{e.linktext?(plugin.hover.linkText=e.linktext,plugin.hover.sourcePath=e.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin.hover.linkText)return;const t=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!t)return;if(!(t instanceof obsidian_module.TFile))return;if("excalidraw"!==t.extension)return;const A=getIMGFilename(t.path,"svg"),i=vault.getAbstractFileByPath(A);if(i&&i instanceof obsidian_module.TFile)return;const n=getIMGFilename(t.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian_module.TFile)return;if(!plugin.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG({file:t,fname:t.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",t.path),e.onClickEvent((t=>{t.stopImmediatePropagation();const A=e.getAttribute("src");A&&plugin.openDrawing(vault.getAbstractFileByPath(A),linkClickModifierType(t))}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.roundness",code:"[null | { type: RoundnessType; value?: number };]",desc:"set to null for 'sharp', else the stroke will be 'round'
type: 1==LEGACY,
2==PROPORTIONAL RADIUS,
3==ADAPTIVE RADIUS, value: adaptive factor defaults to 32",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"setStrokeSharpness",code:"setStrokeSharpness(sharpness: number): void;",desc:"Set ea.style.roundness. 0: is the legacy value, 3: is the current default value, null is sharp",after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toClipboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getSceneFromFile",code:"async getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>;",desc:"returns the elements and appState from a file, if the file is not an excalidraw file, it will return null",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"refreshTextElementSize",code:"refreshTextElementSize(id: string);",desc:"Refreshes the size of the text element. Intended to be used when you copyViewElementsToEAforEditing() and then change the text in a text element and want to update the size of the text element to fit the modifid contents.",after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: "left" | "center" | "right"; textVerticalAlign: "top" | "middle" | "bottom"; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number; boxStrokeColor?: string;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile, scale?: boolean, anchor?: boolean): Promise;",desc:"set scale to false if you want to embed the image at 100% of its original size. Default is true which will insert a scaled image. anchor will only be evaluated if scale is false. anchor true will add |100% to the end of the filename, resulting in an image that will always pop back to 100% when the source file is updated or when the Excalidraw file is reopened. ",after:""},{field:"addEmbeddable",code:"addEmbeddable(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;",desc:"Adds an iframe to the drawing. If url is not null then the iframe will be loaded from the url. The url maybe a markdown link to an note in the Vault or a weblink. If url is null then the iframe will be loaded from the file. Both the url and the file may not be null.",after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,shouldRestoreElements?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[] | string[]):void;",desc:"You can supply a list of Excalidraw Elements or the string IDs of those elements. The elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""},{field:"obsidian",code:"obsidian",desc:"Access functions and objects available on the Obsidian Module",after:""},{field:"getAttachmentFilepath",code:"async getAttachmentFilepath(filename: string): Promise",desc:"This asynchronous function should be awaited. It retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. If the attachment folder doesn't exist, it creates it. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.",after:""},{field:"setViewModeEnabled",code:"setViewModeEnabled(enabled: boolean): void;",desc:"Sets Excalidraw in the targetView to view-mode",after:""},{field:"viewUpdateScene",code:"viewUpdateScene(scene:{elements?:ExcalidrawElement[],appState?: AppState,files?: BinaryFileData,commitToHistory?: boolean,},restore:boolean=false):void",desc:"Calls the ExcalidrawAPI updateScene function for the targetView. When restore=true, excalidraw will try to correct errors in the scene such as setting default values to missing element properties.",after:""},{field:"viewZoomToElements",code:"viewZoomToElements(selectElements: boolean,elements: ExcalidrawElement[]):void",desc:"Zoom tarteView to fit elements provided as input. elements === [] will zoom to fit the entire scene. SelectElements toggles whether the elements should be in a selected state at the end of the operation.",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: {caption:string, tooltip?:string, action:Function}[], lines?: number, displayEditorButtons?: boolean, customComponents?: (container: HTMLElement) => void, blockPointerInputOutsideModal?: boolean);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nEditor buttons are text editing buttons like delete, enter, allcaps - these are only displayed if lines is greater than 1 \nCustom components are components that you can add to the prompt. These will be displayed between the text input area and the buttons.\nblockPointerInputOutsideModal will block pointer input outside the modal. This is useful if you want to prevent the user accidently closing the modal or interacting with the excalidraw canvas while the prompt is open.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""},{field:"scriptFile",code:"scriptFile: TFile",desc:"The TFile of the currently running script",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"},{field:"iframe-theme",code:null,desc:"Override iFrame theme plugin-settings for this file. 'match' will match the Excalidraw theme, 'default' will match the obsidian theme. Valid values are\ndark\nlight\nauto\ndefault",after:": auto"}];class FieldSuggester extends obsidian_module.EditorSuggest{constructor(e){super(e.app),this.getSuggestions=e=>{const t=e.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((e=>e.field)).filter((e=>e.toLowerCase().includes(t)))},this.plugin=e}onTrigger(e,t,A){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const A=t.getLine(e.line).substring(0,e.ch),o=null!==(r=null!==(n=null===(i=A.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=A.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=A.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=A.match(/^excalidraw-(.*)$/)?"excalidraw":A.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:e,start:{ch:e.ch-o.length,line:e.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(e,t){const A=e.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((t=>t.field===e));t.createEl("b",{text:A}),t.createEl("br"),i.code&&t.createEl("code",{text:i.code}),i.desc&&t.createDiv("div",(e=>e.innerHTML=i.desc))}selectSuggestion(e){var t;const{context:A}=this;if(A){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${e}${null===(t=i.find((t=>t.field===e)))||void 0===t?void 0:t.after}`;if(A.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const e=this.latestTriggerInfo.end;e.ch+=n.length,A.editor.setCursor(e)}}}}class FrontmatterEditor{constructor(e){this.initialized=!1,this.dataWOfrontmatter=e;const t=(e=e.replaceAll("\r\n","\n").replaceAll("\r","\n")).split(/^---(?:.|\n)*(?:^---\n)/gm);2===t.length&&(this.dataWOfrontmatter=t[1],this.frontmatterStr=e.match(/^---((?:.|\n)*)(?:^---\n)/gm)[0].replaceAll(/(^---\n|^\n)/gm,"").trim()+"\n",this.initialized=!0)}hasKey(e){if(!this.initialized)return!1;const t=new RegExp(`^${e}:`,"gm");return Boolean(this.frontmatterStr.match(t))}setKey(e,t){if(this.initialized)if(t=t.replaceAll("\r\n","\n").replaceAll("\r","\n").replaceAll(":",";").trim().split("\n").join(" "),this.hasKey(e)){const A=new RegExp(`^${e}:.*\\n(?:\\s\\s.*\\n)*`,"gm");this.frontmatterStr=this.frontmatterStr.split(A).join("\n").trim()+`\n${e}: ${t}`}else this.frontmatterStr=this.frontmatterStr.trim()+`\n${e}: ${t}`}get data(){return this.initialized?["---",this.frontmatterStr,"---",this.dataWOfrontmatter].join("\n"):this.dataWOfrontmatter}}const TASKBONE_URL="https://api.taskbone.com/",TASKBONE_OCR_FN="execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb";class Taskbone{get apiKey(){return this.plugin.settings.taskboneAPIkey}constructor(e){this.plugin=e}async initialize(e=!0){var t;if(""!==this.plugin.settings.taskboneAPIkey)return;const A=await obsidian_module.requestUrl({url:`${TASKBONE_URL}users/excalidraw-obsidian/identities`,method:"post",contentType:"application/json",throw:!1});if(!A)return;const i=null===(t=A.json)||void 0===t?void 0:t.apiKey;return i&&"string"==typeof i&&(e&&await this.plugin.loadSettings(),this.plugin.settings.taskboneAPIkey=i,e&&await this.plugin.saveSettings()),i}async getTextForView(e,t){await e.forceSave(!0);const A=e.excalidrawAPI.getSceneElements().filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!this.plugin.isExcalidrawFile(null===(A=e.excalidrawData.getFile(t.fileId))||void 0===A?void 0:A.file)}));if(0===A.length)return void new obsidian_module.Notice("Aborting OCR because there are no image or freedraw elements on the canvas.",4e3);const i=new FrontmatterEditor(e.data);if(i.hasKey("taskbone-ocr")&&!t)return void new obsidian_module.Notice("The drawing has already been processed, you will find the result in the frontmatter in markdown view mode. If you ran the command from the Obsidian Panel in Excalidraw then you can CTRL(CMD)+click the command to force the rescaning.",4e3);const n=this.plugin.ea.getBoundingBox(A),a=n.width*n.height,r=Math.sqrt(36e4/a),s=Math.sqrt(a/16e6),o=r>1?r:s>1?1/s:1,l=new EmbeddedFilesLoader(this.plugin,!1),c=await createPNG(e.file.path+"#^taskbone",o,{withBackground:!0,withTheme:!0},l,"light",null,null,[],this.plugin,0),d=await this.getTextForImage(c);d&&(i.setKey("taskbone-ocr",d),e.data=i.data,e.save(!1),window.navigator.clipboard.writeText(d),new obsidian_module.Notice("I placed the recognized in the drawing's frontmatter and onto the system clipboard."))}async getTextForImage(e){const t=TASKBONE_URL+TASKBONE_OCR_FN;""===this.apiKey&&await this.initialize();const A={records:[{image:await blobToBase64(e)}]},i=await obsidian_module.requestUrl({url:t,method:"post",contentType:"application/json",body:JSON.stringify(A),headers:{authorization:`Bearer ${this.apiKey}`},throw:!1}),n=null==i?void 0:i.json;return n&&200===i.status?n.records[0].text:(new obsidian_module.Notice("Something went wrong while processing your request. Please check developer console for more information"),void log(i))}}class ExcalidrawPlugin extends obsidian_module.Plugin{constructor(e,t){super(e,t),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.removeEventLisnters=[],this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(e){if(e===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(e))return this.packageMap.get(e);const{react:t,reactDOM:A,excalidrawLib:i}=e.eval.call(e,`(function() {\n ${lzStringExports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(e,{react:t,reactDOM:A,excalidrawLib:i}),{react:t,reactDOM:A,excalidrawLib:i}}async onload(){if(obsidian_module.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian_module.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian_module.addIcon("export-img",EXPORT_IMG_ICON),await this.loadSettings({reEnableAutosave:!0}),imageCache.plugin=this,this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(e=>new ExcalidrawView(e,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const e="0.0.0"===this.settings.previousRelease;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,e?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const e=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(e)})),this.taskbone=new Taskbone(this)}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const e=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),t=""===e.dataURL?VIRGIL_DATAURL:e.dataURL;this.fourthFontDef=e.fontDef;const A=new Set;app.workspace.iterateAllLeaves((e=>{const i=app.isMobile?document:e.view.containerEl.ownerDocument;if(!i)return;if(A.has(i))return;A.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${t}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const e=this;this.app.workspace.onLayoutReady((async()=>{await obsidian_module.loadMathJax();try{e.mathjaxDiv&&(document.body.removeChild(e.mathjaxDiv),e.mathjax=null,e.mathjaxLoaderFinished=!1),e.mathjaxDiv=document.body.createDiv(),e.mathjaxDiv.title="Excalidraw MathJax Support",e.mathjaxDiv.style.display="none";const t=e.mathjaxDiv.createEl("iframe");t.title="Excalidraw MathJax Support";const A=t.contentWindow.document,i=A.createElement("script");i.type="text/javascript",i.onload=()=>{const A=t.contentWindow;A.MathJax.startup.pagePromise.then((async()=>{const t=app.vault.getAbstractFileByPath("preamble.sty"),i=t&&t instanceof obsidian_module.TFile?await app.vault.read(t):null;try{i&&await A.MathJax.tex2svg(i)}catch(t){errorlog({where:e.loadMathJax,description:"Unexpected error while loading preamble.sty",error:t})}e.mathjax=A.MathJax,e.mathjaxLoaderFinished=!0}))},i.src=e.settings.mathjaxSourceURL,A.head.appendChild(i)}catch(t){new obsidian_module.Notice("Excalidraw: Error initializing LaTeX support"),e.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const e=this;this.app.workspace.onLayoutReady((()=>{let t;for(t of app.workspace.getLeavesOfType("markdown"))t.view instanceof obsidian_module.MarkdownView&&e.isExcalidrawFile(t.view.file)&&(e.excalidrawFileModes[t.id||t.view.file.path]="excalidraw",e.setExcalidrawView(t))}))}forceSaveActiveView(e){if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.forceSave(),!0)}registerInstallCodeblockProcessor(){const e=async(e,t)=>{let A=null;try{const e=t.parentElement.querySelector(`a[href="#${t.previousElementSibling.getAttribute("data-heading")}"]`);e.style.paddingRight="10px",A=e.parentElement.createEl("button",null,(e=>{e.setText(t$d("UPDATE_SCRIPT")),e.addClass("mod-muted"),e.style.backgroundColor="var(--interactive-success)",e.style.display="none"}))}catch(t){errorlog({where:"this.registerInstallCodeblockProcessor",source:e,error:t})}e=e.trim(),t.createEl("button",null,(async t=>{var i;const n=e=>{switch(A&&(A.style.display="none"),e){case"CHECKING":t.setText(t$d("CHECKING_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":t.setText(t$d("INSTALL_SCRIPT")),t.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":t.setText(t$d("UPTODATE_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":t.setText(t$d("UPDATE_SCRIPT")),t.style.backgroundColor="var(--interactive-success)",A&&(A.style.display=null);break;case"ERROR":t.setText(t$d("UNABLETOCHECK_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)"}};t.addClass("mod-muted");let a=e;try{a=decodeURI(e)}catch(t){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:e,error:t})}const r=a.substring(a.lastIndexOf("/")+1),s=`${this.settings.scriptFolderPath}/Downloaded`,o=app.vault.getFiles().filter((e=>e.path.startsWith(s)&&e.name===r)).sort(((e,t)=>e.path>t.path?1:-1));let l=o[0];const c=null!==(i=null==l?void 0:l.path)&&void 0!==i?i:`${s}/${r}`,d=getIMGFilename(c,"svg");let h=this.app.vault.getAbstractFileByPath(d);if(n(l?"CHECKING":"INSTALL"),t.onclick=async()=>{const t=async(e,t,A)=>{const i=await obsidian_module.request({url:e});return!i||i.startsWith("404: Not Found")?null:(t?await this.app.vault.modify(t,i):(await checkAndCreateFolder(s),t=await this.app.vault.create(A,i)),t)};try{if(l=await t(e,l,c),!l)throw n("ERROR"),"File not found";h=await t(getIMGFilename(e,"svg"),h,d),n("UPTODATE"),0===Object.keys(this.scriptEngine.scriptIconMap).length&&this.scriptEngine.loadScripts(),new obsidian_module.Notice(`Installed: ${l.basename}`)}catch(e){new obsidian_module.Notice(`Error installing script: ${r}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:e})}},A&&(A.onclick=t.onclick),!(l&&l instanceof obsidian_module.TFile))return;const u=new Map;JSON.parse(await obsidian_module.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>u.set(e.fname,e.mtime)));const g=(e,t)=>{if(0===u.size||!u.has(e))return"ERROR";const A=u.get(e);return!t||A>t.stat.mtime?"UPDATE":"UPTODATE"},p=g(r,l),m=g(getIMGFilename(r,"svg"),h&&h instanceof obsidian_module.TFile?h:null);n("UPTODATE"===p&&"UPTODATE"===m||"UPTODATE"===p&&"ERROR"===m?"UPTODATE":"ERROR"===p?"ERROR":"UPDATE"===p||"UPDATE"===m?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(t,A)=>{A.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),A.empty(),e(t,A)})),e(t,A)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async e=>{var t,A,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(t=e[0])||void 0===t?void 0:t.oldValue)===(null===(i=null===(A=e[0])||void 0===A?void 0:A.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=e[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=e[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{const t=e.view;t.file&&t.excalidrawRef&&t.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(e){e?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const e=e=>{if(1!=e.childElementCount)return;const t=e.getAttribute("data-path");if(!t)return;const A=this.app.vault.getAbstractFileByPath(t);A&&A instanceof obsidian_module.TFile&&this.isExcalidrawFile(A)&&e.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),e.firstChild)};this.fileExplorerObserver=new MutationObserver((t=>{const A=t.filter((e=>e.addedNodes.length>0));A.forEach((t=>{t.addedNodes.forEach((t=>{t instanceof Element&&t.querySelectorAll(".nav-file-title").forEach(e)}))}))}));const t=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(e),t.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.importSVGDialog=new ImportSVGDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async e=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)))})),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{e.addItem((e=>{e.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((e=>{let A=t.path;t instanceof obsidian_module.TFile&&(A=obsidian_module.normalizePath(t.path.substr(0,t.path.lastIndexOf(t.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)),A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-disable-autosave",name:t$d("TEMPORARY_DISABLE_AUTOSAVE"),checkCallback:e=>!!this.settings.autosave&&(e||(this.settings.autosave=!1),!0)}),this.addCommand({id:"excalidraw-enable-autosave",name:t$d("TEMPORARY_ENABLE_AUTOSAVE"),checkCallback:e=>!this.settings.autosave&&(e||(this.settings.autosave=!0),!0)}),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const t=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return t instanceof obsidian_module.TFile&&(this.embedDrawing(t),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-newtab",name:t$d("NEW_IN_NEW_TAB"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-tab")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:e=>{if(e)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const e=async e=>{const t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t)return;const A=getEmbedFilename(t.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,t.file.path,A)).folder,n=await this.createDrawing(A,i);await this.embedDrawing(n),this.openDrawing(n,e,!0,void 0,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-new-tab",name:t$d("NEW_IN_NEW_TAB_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-tab"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:t=>t?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("popout-window"),!0)}),this.addCommand({id:"run-ocr",name:t$d("RUN_OCR"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return e?Boolean(t):!!t&&(this.settings.taskboneEnabled?(this.taskbone.getTextForView(t,!1),!0):(new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3),!0))}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(search(t),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen(),!0)}}),this.addCommand({id:"disable-binding",name:t$d("TOGGLE_DISABLEBINDING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleDisableBinding(),!0)}}),this.addCommand({id:"disable-framerendering",name:t$d("TOGGLE_FRAME_RENDERING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleFrameRendering(),!0)}}),this.addCommand({id:"disable-frameclipping",name:t$d("TOGGLE_FRAME_CLIPPING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleFrameClipping(),!0)}}),this.addCommand({id:"export-image",name:t$d("EXPORT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.exportDialog||(t.exportDialog=new ExportDialog(this,t,t.file),t.exportDialog.createForm()),t.exportDialog.open(),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:e=>this.forceSaveActiveView(e)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:e=>{if(e)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||t.compatibilityMode||(t.changeTextMode(t.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(t){this.ea.reset(),this.ea.setView(t);const e=this.ea.getViewSelectedElement();if("image"!==e.type)return new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0;const A=this.ea.getViewFileForImageElement(e);return A?(this.app.vault.delete(A),this.ea.deleteViewElements([e]),!0):(new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertLinkDialog.start(t.file.path,t.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-frame",name:t$d("INSERT_LINK_TO_ELEMENT_FRAME"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("frame="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:e=>{if(e){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView),t=null==e?void 0:e.excalidrawAPI;return!!t&&!!t.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const e=this.settings.isLeftHanded;await this.loadSettings({applyLefthandedMode:!1}),this.settings.isLeftHanded=!e,this.saveSettings(),setLeftHandedMode(!e),setTimeout((()=>setLeftHandedMode(!e)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!t)return!1;if(!t.excalidrawAPI)return!1;const A=t.getViewSelectedElements().filter((e=>"image"===e.type));if(1!==A.length)return e||new obsidian_module.Notice("Select a single image element and try again"),!1;const i=A[0];return t.excalidrawData.getFile(i.fileId)?!!e||void(async()=>{const e=new ExcalidrawAutomate(this,t),n=await e.getOriginalImageSize(i);if(n){e.copyViewElementsToEAforEditing(A);const t=e.getElement(i.id);t.width=n.width,t.height=n.height,e.addElementsToView(!1,!1,!1)}})():(e||new obsidian_module.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertImageDialog.start(t),!0)}}),this.addCommand({id:"import-svg",name:t$d("IMPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.importSVGDialog.start(t),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:e=>{if(e){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e||!e.excalidrawRef)return!1;const t=e.excalidrawAPI.getAppState();return!t.zenModeEnabled&&!t.viewModeEnabled}const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||!t.excalidrawAPI||(t.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertMDDialog.start(t),!0)}}),this.addCommand({id:"insert-pdf",name:t$d("INSERT_PDF"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new InsertPDFModal(this,t).open(),!0)}}),this.addCommand({id:"universal-add-file",name:t$d("UNIVERSAL_ADD_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new UniversalInsertFileModal(this,t).open(),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(insertLaTeXToView(t),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:e=>{const t=this.app.workspace.getActiveFile();if(!t)return!1;const A=this.isExcalidrawFile(t);if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:A;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const e=i.leaf;return this.excalidrawFileModes[e.id||t.path]="markdown",void this.setMarkdownView(e)}const n=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(n&&A){const e=n.leaf;return this.excalidrawFileModes[e.id||t.path]="excalidraw",void this.setExcalidrawView(e)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:e=>{const t=this.app.workspace.getActiveFile(),A=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t||!A)return!1;const i=0===t.stat.size;if(e)return i;i&&(async()=>{await this.app.vault.modify(t,await this.getBlankDrawing()),this.setExcalidrawView(A.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:e=>{if(e){const e=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));return e.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(e,t=!1,A=!1){const i=await this.app.vault.read(e),n=e.name.substring(0,e.name.lastIndexOf(".excalidraw"))+(t?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian_module.normalizePath(e.path.substring(0,e.path.lastIndexOf(e.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((t=>{const A=e.path.substring(0,e.path.lastIndexOf(".excalidraw"))+t,i=this.app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));if(i&&i instanceof obsidian_module.TFile){const e=a.substring(0,a.lastIndexOf(".md"))+t;this.app.fileManager.renameFile(i,e)}})),A||this.app.vault.delete(e),r}async convertExcalidrawToMD(e=!1,t=!1){const A=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));for(const i of A)this.convertSingleExcalidrawToMD(i,e,t);new obsidian_module.Notice(`Converted ${A.length} files.`)}registerMonkeyPatches(){var e,t;this.register(around(obsidian_module.Workspace.prototype,{getActiveViewOfType:e=>dedupe("https://github.com/zsviczian/obsidian-excalidraw-plugin/issues",e,(function(...t){var A,i;const n=e&&e.apply(this,t),a=null===(i=null===(A=null===app||void 0===app?void 0:app.workspace)||void 0===A?void 0:A.activeLeaf)||void 0===i?void 0:i.view;if(!(a&&a instanceof ExcalidrawView))return n;const r=(new Error).stack;if(!isCallerFromTemplaterPlugin(r))return n;const s=a.getActiveEmbeddable();return s&&s.node&&s.node.isEditing?{file:s.node.file,editor:s.node.child.editor}:n}))})),(null===(t=null===(e=app.plugins)||void 0===e?void 0:e.plugins)||void 0===t?void 0:t["obsidian-hover-editor"])||this.register(around(obsidian_module.WorkspaceLeaf.prototype,{getRoot:e=>function(){const t=e.call(this);return t.getRoot===this.getRoot?t:t.getRoot()}})),this.registerEvent(app.workspace.on("editor-menu",((e,t,A)=>{if(!(A&&A instanceof obsidian_module.MarkdownView))return;const i=A.file,n=A.leaf;if(!A.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&e.addItem((e=>e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((e,t,A,i)=>{if(!(i&&i.view instanceof obsidian_module.MarkdownView))return;if(!(t instanceof obsidian_module.TFile))return;const n=this.app.metadataCache.getFileCache(t);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(e.addItem((e=>{e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||t.path]="excalidraw",this.setExcalidrawView(i)}))})),e.items.unshift(e.items.pop()))})));const A=this;this.register(around(obsidian_module.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const e=this;this.app.workspace.onLayoutReady((async()=>{e.registerEvent(app.vault.on("rename",(async(t,A)=>{t instanceof obsidian_module.TFile&&e.isExcalidrawFile(t)&&e.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const i=getIMGFilename(A,e),n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(i));if(n&&n instanceof obsidian_module.TFile){const A=getIMGFilename(t.path,e);await app.fileManager.renameFile(n,A)}}))}))),e.registerEvent(app.vault.on("modify",(async t=>{app.workspace.getLeavesOfType("excalidraw").forEach((async A=>{const i=A.view;if(i.file&&(i.file.path===t.path||"excalidraw"===t.extension&&`${t.path.substring(0,t.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(t instanceof obsidian_module.TFile))return;const A=this.excalidrawFiles.has(t);if(this.updateFileCache(t,void 0,!0),!A)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let e=0;e{[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const A=getIMGFilename(t.path,e),i=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));i&&i instanceof obsidian_module.TFile&&await app.vault.delete(i)}))}),500)}))),e.registerEvent(app.workspace.on("active-leaf-change",(async t=>{var A;e.leafChangeTimeout&&clearTimeout(e.leafChangeTimeout),e.leafChangeTimeout=setTimeout((()=>{e.leafChangeTimeout=null}),1e3);const i=e.activeExcalidrawView,n=t.view instanceof ExcalidrawView?t.view:null; +//!Temporary hack +if(e.activeExcalidrawView=n,n&&(e.lastActiveExcalidrawFilePath=null===(A=n.file)||void 0===A?void 0:A.path),app.isMobile&&n&&!i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="relative")}if(app.isMobile&&!n&&i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="")}if(i&&i!==n&&(i.leaf!==t&&i.semaphores.dirty&&!i.semaphores.viewunload&&await i.save(!0),i.file&&e.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!==t)){const e=n.file;n.file&&setTimeout((()=>{var t;n&&n._loaded&&(null===(t=n.file)||void 0===t?void 0:t.path)===(null==e?void 0:e.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(n&&n._loaded&&n.isLoaded&&n.excalidrawAPI&&e.ea.onCanvasColorChangeHook&&e.ea.onCanvasColorChangeHook(e.ea,n,n.excalidrawAPI.getAppState().viewBackgroundColor),e.popScope&&(e.popScope(),e.popScope=null),n){const t=e.app.keymap.getRootScope(),A=t.register(["Mod"],"Enter",(()=>!0));t.keys.unshift(t.keys.pop());const i=t.register(["Mod"],"k",(()=>!0));t.keys.unshift(t.keys.pop());const n=t.register(["Mod"],"f",(()=>{const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(search(e),!0)}));t.keys.unshift(t.keys.pop());const a=e.forceSaveCommand&&"s"===e.forceSaveCommand.hotkeys[0].key&&e.forceSaveCommand.hotkeys[0].modifiers.includes("Ctrl")?t.register(["Ctrl"],"s",(()=>e.forceSaveActiveView(!1))):void 0;a&&t.keys.unshift(t.keys.pop()),e.popScope=()=>{t.unregister(A),t.unregister(i),t.unregister(n),Boolean(a)&&t.unregister(a)}}}))),e.addFileSaveTriggerEventHandlers();const t=app.metadataCache;t.getCachedFiles().forEach((A=>{var i;const n=null===(i=t.getCache(A))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||A.match(/\.excalidraw$/))&&e.updateFileCache(app.vault.getAbstractFileByPath(A),n)})),this.registerEvent(t.on("changed",((e,t,A)=>this.updateFileCache(e,null==A?void 0:A.frontmatter))))}))}addFileSaveTriggerEventHandlers(){const e=e=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!e.target||"excalidraw__canvas"!==e.target.className&&!getParentOfClass(e.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()};this.app.workspace.containerEl.addEventListener("click",e),this.removeEventLisnters.push((()=>{this.app.workspace.containerEl.removeEventListener("click",e)})),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async e=>{1===e.length&&"childList"===e[0].type&&1===e[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const t=document.querySelector(".workspace-drawer.mod-left"),A=document.querySelector(".workspace-drawer.mod-right");if(t||A){const e=async e=>{"display: none;"===e[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};t&&(this.workspaceDrawerLeftObserver=new MutationObserver(e),this.workspaceDrawerLeftObserver.observe(t,i)),A&&(this.workspaceDrawerRightObserver=new MutationObserver(e),this.workspaceDrawerRightObserver.observe(A,i))}}updateFileCache(e,t,A=!1){t&&void 0!==t[FRONTMATTER_KEY]?this.excalidrawFiles.add(e):A||"excalidraw"!==e.extension?this.excalidrawFiles.delete(e):this.excalidrawFiles.add(e)}onunload(){this.removeEventLisnters.forEach((e=>e())),destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{this.setMarkdownView(e)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((e=>{delete e.excalidrawLib,delete e.reactDOM,delete e.react}))}async embedDrawing(e){const t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(t&&t.file){const A=this.app.metadataCache.fileToLinktext(e,t.file.path,"excalidraw"===this.settings.embedType),i=t.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${A}]]`:`![](${encodeURI(A)})`),void i.focus();let n=this.settings.autoExportLightAndDark?getExportTheme(this,e,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";n=""===n?"":n+".";const a=getIMGFilename(A,n+this.settings.embedType.toLowerCase()),r=getIMGFilename(e.path,n+this.settings.embedType.toLowerCase()),s="dark."===n?"light.":"dark.",o=getIMGFilename(A,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${A}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(A)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),i.focus()}}async loadSettings(e={applyLefthandedMode:!0,reEnableAutosave:!1}){void 0===e.applyLefthandedMode&&(e.applyLefthandedMode=!0),void 0===e.reEnableAutosave&&(e.reEnableAutosave=!1),this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),this.settings.previewImageType||(void 0===this.settings.displaySVGInPreview?this.settings.previewImageType=PreviewImageType.SVG:this.settings.previewImageType=this.settings.displaySVGInPreview?PreviewImageType.SVGIMG:PreviewImageType.PNG),e.applyLefthandedMode&&setLeftHandedMode(this.settings.isLeftHanded),e.reEnableAutosave&&(this.settings.autosave=!0),this.settings.autosaveInterval=app.isMobile?this.settings.autosaveIntervalMobile:this.settings.autosaveIntervalDesktop}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(e){this.settings.library="deprecated",this.settings.library2=e}triggerEmbedUpdates(e){const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll(".excalidraw-embedded-img"+(e?`[fileSource='${e.replaceAll("'","\\'")}']`:"")).forEach((e=>e.dispatchEvent(n)))}))}openDrawing(e,t,A=!1,i,n=!1){let a;"md-properties"===t&&(t="new-tab"),"popout-window"===t&&(a=app.workspace.openPopoutLeaf()),"new-tab"===t&&(a=app.workspace.getLeaf("tab")),a||(a=this.app.workspace.getLeaf(!1),"empty"!==a.view.getViewType()&&"new-pane"===t&&(a=getNewOrAdjacentLeaf(this,a))),a.openFile(e,i&&""!==i?{active:A,eState:{subpath:i}}:{active:A}).then((()=>{if(n&&this.ea.onFileCreateHook)try{this.ea.onFileCreateHook({ea:this.ea,excalidrawFile:e,view:a.view})}catch(e){console.error(e)}}))}async getBlankDrawing(){const e=this.app.metadataCache.getFirstLinkpathDest(obsidian_module.normalizePath(this.settings.templateFilePath),"");if(e&&e instanceof obsidian_module.TFile&&("md"==e.extension&&!this.settings.compatibilityMode||"excalidraw"==e.extension&&this.settings.compatibilityMode)){const t=await this.app.vault.read(e);if(t)return this.settings.matchTheme?changeThemeOfExcalidrawMD(t):t}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const t=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(t,this.settings.compress)}`}async exportSceneToMD(e){var t,A;if(!e)return"";const i=null===(t=JSON_parse(e).elements)||void 0===t?void 0:t.filter((e=>"text"==e.type));let n,a="# Text Elements\n";for(const t of i)n=t.id,t.id.length>8&&(n=nanoid(),e=e.replaceAll(t.id,n)),a+=`${null!==(A=t.originalText)&&void 0!==A?A:t.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(e),null,"\t"),this.settings.compress)}async createDrawing(e,t,A){const i=obsidian_module.normalizePath(t||this.settings.folder);await checkAndCreateFolder(i);const n=getNewUniqueFilepath(this.app.vault,e,i),a=await this.app.vault.create(n,null!=A?A:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian_module.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(e,t,A,i){const n=await this.createDrawing(e,A,i);return this.openDrawing(n,t,!0,void 0,!0),n.path}async setMarkdownView(e){const t=e.view.getState();await e.setViewState({type:"excalidraw",state:{file:null}}),await e.setViewState({type:"markdown",state:t,popstate:!0},{focus:!0})}async setExcalidrawView(e){await e.setViewState({type:"excalidraw",state:e.view.getState(),popstate:!0})}isExcalidrawFile(e){if(!e)return!1;if("excalidraw"===e.extension)return!0;const t=e?this.app.metadataCache.getFileCache(e):null;return!!(null==t?void 0:t.frontmatter)&&!!t.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidrawlib`;const t=obsidian_module.normalizePath(this.settings.folder);await checkAndCreateFolder(t);const A=getNewUniqueFilepath(this.app.vault,e,t);this.app.vault.create(A,this.settings.library),new obsidian_module.Notice(`Exported library to ${A}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json new file mode 100644 index 0000000..799911e --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "obsidian-excalidraw-plugin", + "name": "Excalidraw", + "version": "1.9.14", + "minAppVersion": "1.1.6", + "description": "An Obsidian plugin to edit and view Excalidraw drawings", + "author": "Zsolt Viczian", + "authorUrl": "https://zsolt.blog", + "fundingUrl": "https://ko-fi.com/zsolt", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css new file mode 100644 index 0000000..98bcd56 --- /dev/null +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -0,0 +1,384 @@ +.App { + font-family: sans-serif; + text-align: center; + } + + .excalidraw-wrapper { + height: 100%; + margin: 0px; + background-color: white; + } + + .context-menu-option__shortcut { + background-color: transparent !important; + } + +.block-language-excalidraw { + text-align:center; +} + +.excalidraw .github-corner { + display: none; +} + +.excalidraw-embedded-img { + width: 100%; +} + +.excalidraw-svg-right-wrap { + float: right; + margin: 0px 0px 20px 20px; +} + +.excalidraw-svg-left-wrap { + float: left; + margin: 0px 35px 20px 0px; +} + +.excalidraw-svg-right { + float: right; +} + +.excalidraw-svg-center { + text-align: center; + margin: auto; +} + +.excalidraw-svg-left { + float: left; +} + +div.excalidraw-svg-right, +div.excalidraw-svg-left { + display: table; + width: 100%; +} + +button.ToolIcon_type_button[title="Export"] { + display:none; +} + +.excalidraw-prompt-div { + display: flex; + max-width: 800px; +} + +.excalidraw-prompt-form { + display: flex; + flex-grow: 1; +} + +.excalidraw-prompt-input { + flex-grow: 1; +} + +.excalidraw-prompt-button { + width: 9em; +} + +.excalidraw-prompt-buttons-div { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-evenly; +} + +li[data-testid] { + border: 0 !important; + margin: 0 !important; + padding: 0 !important; + width: 100% !important; +} + +.excalidraw .context-menu-option-separator { + margin: 4px !important; +} + +.excalidraw .popover { + padding: 0 !important; + border-color: transparent !important; + border: 0 !important; + box-shadow: 0 !important; + background-color: transparent !important; +} + +.excalidraw .popover { + position: fixed !important; +} + +.disable-zen-mode--visible { + color: var(--text-primary-color); +} + +.disable-zen-mode { + width: 9em !important; +} + +.ex-coffee-div { + text-align: center; + margin-bottom: 10px; +} + +.excalidraw-scriptengine-install td>img { + width: 100%; + max-width:800px; +} + +.excalidraw-scriptengine-install img.coffee { + width: 130px; +} + +.excalidraw-scriptengine-install tr { + vertical-align: top; +} + +.excalidraw-scriptengine-install table { + max-width: 130ch; +} + +.excalidraw-scriptengine-install td.label { + min-width: 11ch; + font-weight: bold; + padding-right: 5px; +} + +.excalidraw-scriptengine-install td.data { + width: 100%; +} + +.excalidraw-scriptengine-install .modal-content { + max-width: 130ch; + user-select: text; +} + +.excalidraw-scriptengine-install .modal { + max-height:90%; + width: auto; +} + +.excalidraw-prompt-center { + text-align: center !important; +} + +.excalidraw-prompt-center button { + margin: 0 10px; +} + +.excalidraw-prompt-center.filepath { + text-align: center; + font-weight: bold; + margin-bottom: 2em; +} + +.excalidraw-dirty { + color: red; +} + +.workspace-leaf-content .excalidraw-view { + padding: 0px 1px; /*1px so on ipad swipe in from left and right still works*/ + overflow: hidden; +} + +.excalidraw-videoWrapper { + max-width:600px +} +.excalidraw-videoWrapper div { + position: relative; + padding-bottom: 56.25%; + height: 0; + margin: 0 auto; +} + +.excalidraw-videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.excalidraw-release .modal-content{ + padding-right: 5px; + margin-right: -5px; + user-select: text; +} + +.excalidraw-release .modal { + max-height: 80%; + max-width: 42em; +} + +.excalidraw .Island .scrollbar { + --scrollbar-thumb-bg: silver; +} + +.excalidraw .ToolIcon__icon img{ + height: 1em; +} + +.excalidraw-scriptengine-install tbody>tr>td>div>img { + height:20px; + background-color: silver; + padding: 2px; +} + +.excalidraw-scriptengine-install tbody>tr>td>div { + width: 50px; + display: inline-block; +} + +.excalidraw-release p>a>img { + width: 100% +} + +.excalidraw .context-menu-option { + box-shadow: none; +} + +textarea.excalidraw-wysiwyg { + border: none; + outline: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-radius: 0; +} + +.is-tablet .excalidraw button, +.is-mobile .excalidraw button { + padding: initial; + height: 1.8rem; +} + +.excalidraw button, +.ToolIcon button { + box-shadow: none; + justify-content: initial; +} + +.excalidraw { + --default-button-size: 2rem !important; + --default-icon-size: 1rem !important; + --lg-button-size: 1.8rem !important; + --lg-icon-size: 1rem !important; +} + +.excalidraw .tray-zoom { + pointer-events: initial; + padding-bottom: 0.05rem; + padding-top: 0.05rem; +} + +.excalidraw-container.theme--dark { + background-color: #121212; + color: #fff; +} + +/* https://discordapp.com/channels/686053708261228577/989603365606531104/1041266507256184863 */ +/*.workspace-leaf { + contain: none !important; +}*/ + +.color-picker-content { + overflow-y: auto; + max-height: 10rem; +} + +.excalidraw .FixedSideContainer_side_top { + top: 0.3rem; +} + +.excalidraw .ToolIcon__keybinding { + font-size: 0.45rem !important; +} + +.Island > .Stack > .Stack { + padding:0.2rem; +} + +label.color-input-container > input { + max-width: 5rem; +} + +.excalidraw .FixedSideContainer_side_top { + left: 10px !important; + top: 10px !important; + right: 10px !important; + bottom: 10px !important; +} + +.excalidraw-hidden { + display: none !important; +} + +.excalidraw .panelColumn .buttonList { + max-width: 13rem; +} + +.excalidraw button { + width: initial; +} + +.excalidraw input[type="color"] { + width: 1.65rem; + height: 1.65rem; +} + +.excalidraw input[type="color"]::-webkit-color-swatch { + height: 1.65rem; +} + + +.excalidraw input[type="color"]::-webkit-color-swatch-wrapper { + padding: 0; +} + +.excalidraw-settings input { + min-width: 10em; +} + +div.excalidraw-draginfo { + position: absolute; + z-index: 1000; + color: var(--text-normal); + padding: 3px; + background: var(--color-base-40); + display: block; + border-radius: 5px; +} + +.excalidraw [data-radix-popper-content-wrapper] { + position: absolute !important; +} + +.excalidraw__embeddable-container .view-header { + display: none !important; +} + +.excalidraw__embeddable-container input { + background: initial; +} + +.excalidraw .HelpDialog__key { + background-color: var(--color-gray-80) !important; +} + +.excalidraw .embeddable-menu { + width: fit-content; + height: fit-content; + position: absolute; + display: block; + z-index: var(--zIndex-layerUI); +} + +.excalidraw .welcome-screen-center__logo svg { + width: 5rem !important; +} + +.excalidraw-image-wrapper { + text-align: center; +} + +.excalidraw-image-wrapper img { + margin: auto; +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json new file mode 100644 index 0000000..028c821 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/data.json @@ -0,0 +1,53 @@ +{ + "commitMessage": "vault backup: {{date}}", + "commitDateFormat": "YYYY-MM-DD HH:mm:ss", + "autoSaveInterval": 0, + "autoPushInterval": 0, + "autoPullInterval": 0, + "autoPullOnBoot": false, + "disablePush": false, + "pullBeforePush": true, + "disablePopups": false, + "listChangedFilesInMessageBody": false, + "showStatusBar": true, + "updateSubmodules": false, + "syncMethod": "merge", + "customMessageOnAutoBackup": false, + "autoBackupAfterFileChange": false, + "treeStructure": false, + "refreshSourceControl": true, + "basePath": "", + "differentIntervalCommitAndPush": false, + "changedFilesInStatusBar": false, + "showedMobileNotice": true, + "refreshSourceControlTimer": 7000, + "showBranchStatusBar": true, + "setLastSaveToLastCommit": false, + "submoduleRecurseCheckout": false, + "gitDir": "", + "showFileMenu": true, + "lineAuthor": { + "show": false, + "followMovement": "inactive", + "authorDisplay": "initials", + "showCommitHash": false, + "dateTimeFormatOptions": "date", + "dateTimeFormatCustomString": "YYYY-MM-DD HH:mm", + "dateTimeTimezone": "viewer-local", + "coloringMaxAge": "1y", + "colorNew": { + "r": 255, + "g": 150, + "b": 150 + }, + "colorOld": { + "r": 120, + "g": 160, + "b": 255 + }, + "textColorCss": "var(--text-muted)", + "ignoreWhitespace": false, + "gutterSpacingFallbackLength": 5 + }, + "autoCommitMessage": "vault backup: {{date}}" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js new file mode 100644 index 0000000..e079ea5 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/main.js @@ -0,0 +1,44183 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key2 of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key2) && key2 !== except) + __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key2, value) => { + __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value); + return value; +}; + +// node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +var require_base64_js = __commonJS({ + "node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + exports2.byteLength = byteLength; + exports2.toByteArray = toByteArray; + exports2.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + var i; + var len; + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) + validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num2) { + return lookup[num2 >> 18 & 63] + lookup[num2 >> 12 & 63] + lookup[num2 >> 6 & 63] + lookup[num2 & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push( + lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==" + ); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push( + lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=" + ); + } + return parts.join(""); + } + } +}); + +// node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +var require_ieee754 = __commonJS({ + "node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js"(exports2) { + init_polyfill_buffer(); + exports2.read = function(buffer2, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer2[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports2.write = function(buffer2, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer2[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer2[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer2[offset + i - d] |= s * 128; + }; + } +}); + +// node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +var require_buffer = __commonJS({ + "node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var base64 = require_base64_js(); + var ieee754 = require_ieee754(); + var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports2.Buffer = Buffer2; + exports2.SlowBuffer = SlowBuffer; + exports2.INSPECT_MAX_BYTES = 50; + var K_MAX_LENGTH = 2147483647; + exports2.kMaxLength = K_MAX_LENGTH; + Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error( + "This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support." + ); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { foo: function() { + return 42; + } }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } + } + Object.defineProperty(Buffer2.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) + return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer2.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) + return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function Buffer2(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer2.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString2(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value + ); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer2.from(valueOf, encodingOrOffset, length); + } + const b = fromObject(value); + if (b) + return b; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer2.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value + ); + } + Buffer2.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer2, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer2.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer2.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer2.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString2(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy2 = new Uint8Array(arrayView); + return fromArrayBuffer(copy2.buffer, copy2.byteOffset, copy2.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer2.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer2.alloc(+length); + } + Buffer2.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer2.prototype; + }; + Buffer2.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) + a = Buffer2.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) + b = Buffer2.from(b, b.offset, b.byteLength); + if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ); + } + if (a === b) + return 0; + let x = a.length; + let y = b.length; + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + Buffer2.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer2.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer2.alloc(0); + } + let i; + if (length === void 0) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + const buffer2 = Buffer2.allocUnsafe(length); + let pos = 0; + for (i = 0; i < list.length; ++i) { + let buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer2.length) { + if (!Buffer2.isBuffer(buf)) + buf = Buffer2.from(buf); + buf.copy(buffer2, pos); + } else { + Uint8Array.prototype.set.call( + buffer2, + buf, + pos + ); + } + } else if (!Buffer2.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer2, pos); + } + pos += buf.length; + } + return buffer2; + }; + function byteLength(string, encoding) { + if (Buffer2.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string + ); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) + return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) + encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.prototype._isBuffer = true; + function swap(b, n, m) { + const i = b[n]; + b[n] = b[m]; + b[m] = i; + } + Buffer2.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; + }; + Buffer2.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; + }; + Buffer2.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; + }; + Buffer2.prototype.toString = function toString() { + const length = this.length; + if (length === 0) + return ""; + if (arguments.length === 0) + return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer2.prototype.toLocaleString = Buffer2.prototype.toString; + Buffer2.prototype.equals = function equals2(b) { + if (!Buffer2.isBuffer(b)) + throw new TypeError("Argument must be a Buffer"); + if (this === b) + return true; + return Buffer2.compare(this, b) === 0; + }; + Buffer2.prototype.inspect = function inspect() { + let str = ""; + const max = exports2.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) + str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect; + } + Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer2.from(target, target.offset, target.byteLength); + } + if (!Buffer2.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target + ); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) + return 0; + let x = thisEnd - thisStart; + let y = end - start; + const len = Math.min(x, y); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) + return -1; + if (y < x) + return 1; + return 0; + }; + function bidirectionalIndexOf(buffer2, val, byteOffset, encoding, dir) { + if (buffer2.length === 0) + return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer2.length - 1; + } + if (byteOffset < 0) + byteOffset = buffer2.length + byteOffset; + if (byteOffset >= buffer2.length) { + if (dir) + return -1; + else + byteOffset = buffer2.length - 1; + } else if (byteOffset < 0) { + if (dir) + byteOffset = 0; + else + return -1; + } + if (typeof val === "string") { + val = Buffer2.from(val, encoding); + } + if (Buffer2.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer2, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer2, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer2, val, byteOffset); + } + } + return arrayIndexOf(buffer2, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i2) { + if (indexSize === 1) { + return buf[i2]; + } else { + return buf.readUInt16BE(i2 * indexSize); + } + } + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) + foundIndex = i; + if (i - foundIndex + 1 === valLength) + return foundIndex * indexSize; + } else { + if (foundIndex !== -1) + i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) + byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) + return i; + } + } + return -1; + } + Buffer2.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) + return i; + buf[offset + i] = parsed; + } + return i; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer2.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) + encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error( + "Buffer.write(string, encoding, offset[, length]) is no longer supported" + ); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) + length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) + encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer2.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i = start; + while (i < end) { + const firstByte = buf[i]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + var MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i = 0; + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) + start = 0; + if (!end || end < 0 || end > len) + end = len; + let out = ""; + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; + } + Buffer2.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) + start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) + end = 0; + } else if (end > len) { + end = len; + } + if (end < start) + end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer2.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError("offset is not uint"); + if (offset + ext > length) + throw new RangeError("Trying to access beyond buffer length"); + } + Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + return val; + }; + Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer2.prototype.readUint16LE = Buffer2.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer2.prototype.readUint16BE = Buffer2.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last2 * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first2 * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let i = byteLength2; + let mul = 1; + let val = this[offset + --i]; + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) + return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last2 << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first2 << 24) + // Overflow + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2); + }); + Buffer2.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer2.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer2.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer2.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer2.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + } + Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i = byteLength2 - 1; + let mul = 1; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 127, -128); + if (value < 0) + value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) + value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + if (offset < 0) + throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer2.prototype.copy = function copy2(target, targetStart, start, end) { + if (!Buffer2.isBuffer(target)) + throw new TypeError("argument should be a Buffer"); + if (!start) + start = 0; + if (!end && end !== 0) + end = this.length; + if (targetStart >= target.length) + targetStart = target.length; + if (!targetStart) + targetStart = 0; + if (end > 0 && end < start) + end = start; + if (end === start) + return 0; + if (target.length === 0 || this.length === 0) + return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) + throw new RangeError("Index out of range"); + if (end < 0) + throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) + end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ); + } + return len; + }; + Buffer2.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) + val = 0; + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + const bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; + }; + var errors = {}; + function E(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E( + "ERR_BUFFER_OUT_OF_BOUNDS", + function(name) { + if (name) { + return `${name} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, + RangeError + ); + E( + "ERR_INVALID_ARG_TYPE", + function(name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}`; + }, + TypeError + ); + E( + "ERR_OUT_OF_RANGE", + function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, + RangeError + ); + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE( + type || "offset", + `>= ${type ? 1 : 0} and <= ${length}`, + value + ); + } + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) + return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } else if (i + 1 === length) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) + break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) + break; + bytes.push( + codePoint >> 6 | 192, + codePoint & 63 | 128 + ); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) + break; + bytes.push( + codePoint >> 12 | 224, + codePoint >> 6 & 63 | 128, + codePoint & 63 | 128 + ); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) + break; + bytes.push( + codePoint >> 18 | 240, + codePoint >> 12 & 63 | 128, + codePoint >> 6 & 63 | 128, + codePoint & 63 | 128 + ); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) + break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) + break; + dst[i + offset] = src[i]; + } + return i; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + var hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + } +}); + +// polyfill_buffer.js +var import_obsidian, buffer, Buffer; +var init_polyfill_buffer = __esm({ + "polyfill_buffer.js"() { + import_obsidian = require("obsidian"); + if (import_obsidian.Platform.isMobileApp) { + buffer = require_buffer().Buffer; + } else { + buffer = global.Buffer; + } + Buffer = buffer; + } +}); + +// node_modules/.pnpm/async-lock@1.4.0/node_modules/async-lock/lib/index.js +var require_lib = __commonJS({ + "node_modules/.pnpm/async-lock@1.4.0/node_modules/async-lock/lib/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var AsyncLock2 = function(opts) { + opts = opts || {}; + this.Promise = opts.Promise || Promise; + this.queues = /* @__PURE__ */ Object.create(null); + this.domainReentrant = opts.domainReentrant || false; + if (this.domainReentrant) { + if (typeof process === "undefined" || typeof process.domain === "undefined") { + throw new Error( + "Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill." + ); + } + this.domains = /* @__PURE__ */ Object.create(null); + } + this.timeout = opts.timeout || AsyncLock2.DEFAULT_TIMEOUT; + this.maxOccupationTime = opts.maxOccupationTime || AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME; + this.maxExecutionTime = opts.maxExecutionTime || AsyncLock2.DEFAULT_MAX_EXECUTION_TIME; + if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { + this.maxPending = opts.maxPending; + } else { + this.maxPending = AsyncLock2.DEFAULT_MAX_PENDING; + } + }; + AsyncLock2.DEFAULT_TIMEOUT = 0; + AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME = 0; + AsyncLock2.DEFAULT_MAX_EXECUTION_TIME = 0; + AsyncLock2.DEFAULT_MAX_PENDING = 1e3; + AsyncLock2.prototype.acquire = function(key2, fn, cb, opts) { + if (Array.isArray(key2)) { + return this._acquireBatch(key2, fn, cb, opts); + } + if (typeof fn !== "function") { + throw new Error("You must pass a function to execute"); + } + var deferredResolve = null; + var deferredReject = null; + var deferred2 = null; + if (typeof cb !== "function") { + opts = cb; + cb = null; + deferred2 = new this.Promise(function(resolve, reject) { + deferredResolve = resolve; + deferredReject = reject; + }); + } + opts = opts || {}; + var resolved = false; + var timer = null; + var occupationTimer = null; + var executionTimer = null; + var self2 = this; + var done = function(locked, err, ret) { + if (occupationTimer) { + clearTimeout(occupationTimer); + occupationTimer = null; + } + if (executionTimer) { + clearTimeout(executionTimer); + executionTimer = null; + } + if (locked) { + if (!!self2.queues[key2] && self2.queues[key2].length === 0) { + delete self2.queues[key2]; + } + if (self2.domainReentrant) { + delete self2.domains[key2]; + } + } + if (!resolved) { + if (!deferred2) { + if (typeof cb === "function") { + cb(err, ret); + } + } else { + if (err) { + deferredReject(err); + } else { + deferredResolve(ret); + } + } + resolved = true; + } + if (locked) { + if (!!self2.queues[key2] && self2.queues[key2].length > 0) { + self2.queues[key2].shift()(); + } + } + }; + var exec = function(locked) { + if (resolved) { + return done(locked); + } + if (timer) { + clearTimeout(timer); + timer = null; + } + if (self2.domainReentrant && locked) { + self2.domains[key2] = process.domain; + } + var maxExecutionTime = opts.maxExecutionTime || self2.maxExecutionTime; + if (maxExecutionTime) { + executionTimer = setTimeout(function() { + if (!!self2.queues[key2]) { + done(locked, new Error("Maximum execution time is exceeded " + key2)); + } + }, maxExecutionTime); + } + if (fn.length === 1) { + var called = false; + try { + fn(function(err, ret) { + if (!called) { + called = true; + done(locked, err, ret); + } + }); + } catch (err) { + if (!called) { + called = true; + done(locked, err); + } + } + } else { + self2._promiseTry(function() { + return fn(); + }).then(function(ret) { + done(locked, void 0, ret); + }, function(error) { + done(locked, error); + }); + } + }; + if (self2.domainReentrant && !!process.domain) { + exec = process.domain.bind(exec); + } + if (!self2.queues[key2]) { + self2.queues[key2] = []; + exec(true); + } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key2]) { + exec(false); + } else if (self2.queues[key2].length >= self2.maxPending) { + done(false, new Error("Too many pending tasks in queue " + key2)); + } else { + var taskFn = function() { + exec(true); + }; + if (opts.skipQueue) { + self2.queues[key2].unshift(taskFn); + } else { + self2.queues[key2].push(taskFn); + } + var timeout = opts.timeout || self2.timeout; + if (timeout) { + timer = setTimeout(function() { + timer = null; + done(false, new Error("async-lock timed out in queue " + key2)); + }, timeout); + } + } + var maxOccupationTime = opts.maxOccupationTime || self2.maxOccupationTime; + if (maxOccupationTime) { + occupationTimer = setTimeout(function() { + if (!!self2.queues[key2]) { + done(false, new Error("Maximum occupation time is exceeded in queue " + key2)); + } + }, maxOccupationTime); + } + if (deferred2) { + return deferred2; + } + }; + AsyncLock2.prototype._acquireBatch = function(keys, fn, cb, opts) { + if (typeof cb !== "function") { + opts = cb; + cb = null; + } + var self2 = this; + var getFn = function(key2, fn2) { + return function(cb2) { + self2.acquire(key2, fn2, cb2, opts); + }; + }; + var fnx = keys.reduceRight(function(prev, key2) { + return getFn(key2, prev); + }, fn); + if (typeof cb === "function") { + fnx(cb); + } else { + return new this.Promise(function(resolve, reject) { + if (fnx.length === 1) { + fnx(function(err, ret) { + if (err) { + reject(err); + } else { + resolve(ret); + } + }); + } else { + resolve(fnx()); + } + }); + } + }; + AsyncLock2.prototype.isBusy = function(key2) { + if (!key2) { + return Object.keys(this.queues).length > 0; + } else { + return !!this.queues[key2]; + } + }; + AsyncLock2.prototype._promiseTry = function(fn) { + try { + return this.Promise.resolve(fn()); + } catch (e) { + return this.Promise.reject(e); + } + }; + module2.exports = AsyncLock2; + } +}); + +// node_modules/.pnpm/async-lock@1.4.0/node_modules/async-lock/index.js +var require_async_lock = __commonJS({ + "node_modules/.pnpm/async-lock@1.4.0/node_modules/async-lock/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = require_lib(); + } +}); + +// node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js"(exports2, module2) { + init_polyfill_buffer(); + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js"(exports2, module2) { + init_polyfill_buffer(); + var buffer2 = require_buffer(); + var Buffer2 = buffer2.Buffer; + function copyProps(src, dst) { + for (var key2 in src) { + dst[key2] = src[key2]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module2.exports = buffer2; + } else { + copyProps(buffer2, exports2); + exports2.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer2.SlowBuffer(size); + }; + } +}); + +// node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/hash.js +var require_hash = __commonJS({ + "node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/hash.js"(exports2, module2) { + init_polyfill_buffer(); + var Buffer2 = require_safe_buffer().Buffer; + function Hash2(blockSize, finalSize) { + this._block = Buffer2.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer2.from(data, enc); + } + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + this._len += length; + return this; + }; + Hash2.prototype.digest = function(enc) { + var rem = this._len % this._blockSize; + this._block[rem] = 128; + this._block.fill(0, rem + 1); + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); + } + var bits = this._len * 8; + if (bits <= 4294967295) { + this._block.writeUInt32BE(bits, this._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); + } + this._update(this._block); + var hash2 = this._hash(); + return enc ? hash2.toString(enc) : hash2; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + module2.exports = Hash2; + } +}); + +// node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha1.js +var require_sha1 = __commonJS({ + "node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha1.js"(exports2, module2) { + init_polyfill_buffer(); + var inherits = require_inherits_browser(); + var Hash2 = require_hash(); + var Buffer2 = require_safe_buffer().Buffer; + var K2 = [ + 1518500249, + 1859775393, + 2400959708 | 0, + 3395469782 | 0 + ]; + var W = new Array(80); + function Sha1() { + this.init(); + this._w = W; + Hash2.call(this, 64, 56); + } + inherits(Sha1, Hash2); + Sha1.prototype.init = function() { + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + return this; + }; + function rotl1(num2) { + return num2 << 1 | num2 >>> 31; + } + function rotl5(num2) { + return num2 << 5 | num2 >>> 27; + } + function rotl30(num2) { + return num2 << 30 | num2 >>> 2; + } + function ft(s, b, c, d) { + if (s === 0) + return b & c | ~b & d; + if (s === 2) + return b & c | b & d | c & d; + return b ^ c ^ d; + } + Sha1.prototype._update = function(M) { + var W2 = this._w; + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; + for (var i = 0; i < 16; ++i) + W2[i] = M.readInt32BE(i * 4); + for (; i < 80; ++i) + W2[i] = rotl1(W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16]); + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W2[j] + K2[s] | 0; + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; + } + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; + Sha1.prototype._hash = function() { + var H = Buffer2.allocUnsafe(20); + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); + return H; + }; + module2.exports = Sha1; + } +}); + +// node_modules/.pnpm/crc-32@1.2.2/node_modules/crc-32/crc32.js +var require_crc32 = __commonJS({ + "node_modules/.pnpm/crc-32@1.2.2/node_modules/crc-32/crc32.js"(exports2) { + init_polyfill_buffer(); + var CRC32; + (function(factory) { + if (typeof DO_NOT_EXPORT_CRC === "undefined") { + if ("object" === typeof exports2) { + factory(exports2); + } else if ("function" === typeof define && define.amd) { + define(function() { + var module3 = {}; + factory(module3); + return module3; + }); + } else { + factory(CRC32 = {}); + } + } else { + factory(CRC32 = {}); + } + })(function(CRC322) { + CRC322.version = "1.2.2"; + function signed_crc_table() { + var c = 0, table = new Array(256); + for (var n = 0; n != 256; ++n) { + c = n; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + table[n] = c; + } + return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; + } + var T0 = signed_crc_table(); + function slice_by_16_tables(T) { + var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); + for (n = 0; n != 256; ++n) + table[n] = T[n]; + for (n = 0; n != 256; ++n) { + v = T[n]; + for (c = 256 + n; c < 4096; c += 256) + v = table[c] = v >>> 8 ^ T[v & 255]; + } + var out = []; + for (n = 1; n != 16; ++n) + out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); + return out; + } + var TT = slice_by_16_tables(T0); + var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; + var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; + var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; + function crc32_bstr(bstr, seed) { + var C = seed ^ -1; + for (var i = 0, L = bstr.length; i < L; ) + C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; + return ~C; + } + function crc32_buf(B, seed) { + var C = seed ^ -1, L = B.length - 15, i = 0; + for (; i < L; ) + C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; + L += 15; + while (i < L) + C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; + return ~C; + } + function crc32_str(str, seed) { + var C = seed ^ -1; + for (var i = 0, L = str.length, c = 0, d = 0; i < L; ) { + c = str.charCodeAt(i++); + if (c < 128) { + C = C >>> 8 ^ T0[(C ^ c) & 255]; + } else if (c < 2048) { + C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } else if (c >= 55296 && c < 57344) { + c = (c & 1023) + 64; + d = str.charCodeAt(i++) & 1023; + C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; + } else { + C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } + } + return ~C; + } + CRC322.table = T0; + CRC322.bstr = crc32_bstr; + CRC322.buf = crc32_buf; + CRC322.str = crc32_str; + }); + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); + } + exports2.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports2.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports2.setTyped = function(on) { + if (on) { + exports2.Buf8 = Uint8Array; + exports2.Buf16 = Uint16Array; + exports2.Buf32 = Int32Array; + exports2.assign(exports2, fnTyped); + } else { + exports2.Buf8 = Array; + exports2.Buf16 = Array; + exports2.Buf32 = Array; + exports2.assign(exports2, fnUntyped); + } + }; + exports2.setTyped(TYPED_OK); + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = ( + /* extra bits for each length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0] + ); + var extra_dbits = ( + /* extra bits for each distance code */ + [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13] + ); + var extra_blbits = ( + /* extra bits for each bit length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7] + ); + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits( + s, + tree[c * 2], + tree[c * 2 + 1] + /*.Len*/ + ); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[ + 1 + /*SMALLEST*/ + ] = s.heap[s.heap_len--]; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + m = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[ + 1 + /*SMALLEST*/ + ] = node++; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[ + 1 + /*SMALLEST*/ + ]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last2) { + send_bits(s, (STORED_BLOCK << 1) + (last2 ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last2) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last2); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last2 ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last2 ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last2) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports2._tr_init = _tr_init; + exports2._tr_stored_block = _tr_stored_block; + exports2._tr_flush_block = _tr_flush_block; + exports2._tr_tally = _tr_tally; + exports2._tr_align = _tr_align; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module2.exports = adler32; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js +var require_crc322 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc322(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module2.exports = crc322; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + 2: "need dictionary", + /* Z_NEED_DICT 2 */ + 1: "stream end", + /* Z_STREAM_END 1 */ + 0: "", + /* Z_OK 0 */ + "-1": "file error", + /* Z_ERRNO (-1) */ + "-2": "stream error", + /* Z_STREAM_ERROR (-2) */ + "-3": "data error", + /* Z_DATA_ERROR (-3) */ + "-4": "insufficient memory", + /* Z_MEM_ERROR (-4) */ + "-5": "buffer error", + /* Z_BUF_ERROR (-5) */ + "-6": "incompatible version" + /* Z_VERSION_ERROR (-6) */ + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var trees = require_trees(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var msg = require_messages(); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last2) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last2); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc322(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush2) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush2) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush2) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush2) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush2) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), + /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), + /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), + /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), + /* 3 */ + new Config(4, 4, 16, 16, deflate_slow), + /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), + /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), + /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), + /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), + /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) + /* 9 max compression */ + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method2, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method2 !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method2; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate2(strm, flush2) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush2 > Z_BLOCK || flush2 < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush2 !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush2; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte( + s, + (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush2) <= rank(old_flush) && flush2 !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush2 !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush2) : s.strategy === Z_RLE ? deflate_rle(s, flush2) : configuration_table[s.level].func(s, flush2); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush2 === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush2 !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush2 === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush2 !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status2; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status2 = strm.state.status; + if (status2 !== INIT_STATE && status2 !== EXTRA_STATE && status2 !== NAME_STATE && status2 !== COMMENT_STATE && status2 !== HCRC_STATE && status2 !== BUSY_STATE && status2 !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status2 === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports2.deflateInit = deflateInit; + exports2.deflateInit2 = deflateInit2; + exports2.deflateReset = deflateReset; + exports2.deflateResetKeep = deflateResetKeep; + exports2.deflateSetHeader = deflateSetHeader; + exports2.deflate = deflate2; + exports2.deflateEnd = deflateEnd; + exports2.deflateSetDictionary = deflateSetDictionary; + exports2.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + var q; + _utf8len[254] = _utf8len[254] = 1; + exports2.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports2.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports2.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports2.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports2.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module2.exports = ZStream; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var zlib_deflate = require_deflate(); + var utils = require_common(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_deflate.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status2 = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status2, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_deflate.deflate(strm, _mode); + if (status2 !== Z_STREAM_END && status2 !== Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status2 = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status2) { + if (status2 === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function deflate2(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate2(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate2(input, options); + } + exports2.Deflate = Deflate; + exports2.deflate = deflate2; + exports2.deflateRaw = deflateRaw; + exports2.gzip = gzip; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var BAD = 30; + var TYPE = 12; + module2.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last2; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last2 = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last2 && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last2 ? 5 + (last2 - _in) : 5 - (_in - last2); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + /* Length codes 257..285 base */ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + /* Length codes 257..285 extra */ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + /* Distance codes 0..29 base */ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + /* Distance codes 0..29 extra */ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module2.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root2 = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root2 = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root2 > max) { + root2 = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root2 < min) { + root2 = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root2; + drop = 0; + low = -1; + used = 1 << root2; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root2 && (huff & mask) !== low) { + if (drop === 0) { + drop = root2; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root2 << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root2; + return 0; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA2 = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix; + var distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy2) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy2 >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy2) { + dist = copy2; + } + utils.arraySet(state.window, src, end - copy2, dist, state.wnext); + copy2 -= dist; + if (copy2) { + utils.arraySet(state.window, src, end - copy2, copy2, 0); + state.wnext = copy2; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate2(strm, flush2) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy2; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = ( + /* permutation of code lengths */ + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] + ); + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc322(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA2; + case EXTRA2: + if (state.flags & 1024) { + copy2 = state.length; + if (copy2 > have) { + copy2 = have; + } + if (copy2) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet( + state.head.extra, + input, + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + copy2, + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + } + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + state.length -= copy2; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush2 === Z_BLOCK || flush2 === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush2 === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy2 = state.length; + if (copy2) { + if (copy2 > have) { + copy2 = have; + } + if (copy2 > left) { + copy2 = left; + } + if (copy2 === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy2, put); + have -= copy2; + next += copy2; + left -= copy2; + put += copy2; + state.length -= copy2; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy2 = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy2 > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy2--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy2 = _out - left; + if (state.offset > copy2) { + copy2 = state.offset - copy2; + if (copy2 > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy2 > state.wnext) { + copy2 -= state.wnext; + from = state.wsize - copy2; + } else { + from = state.wnext - copy2; + } + if (copy2 > state.length) { + copy2 = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy2 = state.length; + } + if (copy2 > left) { + copy2 = left; + } + left -= copy2; + state.length -= copy2; + do { + output[put++] = from_source[from++]; + } while (--copy2); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/ + state.flags ? crc322(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush2 !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ + state.flags ? crc322(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush2 === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports2.inflateReset = inflateReset; + exports2.inflateReset2 = inflateReset2; + exports2.inflateResetKeep = inflateResetKeep; + exports2.inflateInit = inflateInit; + exports2.inflateInit2 = inflateInit2; + exports2.inflate = inflate2; + exports2.inflateEnd = inflateEnd; + exports2.inflateGetHeader = inflateGetHeader; + exports2.inflateSetDictionary = inflateSetDictionary; + exports2.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js +var require_constants = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + //Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module2.exports = GZheader; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var zlib_inflate = require_inflate(); + var utils = require_common(); + var strings = require_strings(); + var c = require_constants(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_inflate.inflateInit2( + this.strm, + opt.windowBits + ); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status2, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status2 === c.Z_NEED_DICT && dictionary) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status2 === c.Z_BUF_ERROR && allowBufError === true) { + status2 = c.Z_OK; + allowBufError = false; + } + if (status2 !== c.Z_STREAM_END && status2 !== c.Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status2 === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== c.Z_STREAM_END); + if (status2 === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status2 = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status2) { + if (status2 === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function inflate2(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate2(input, options); + } + exports2.Inflate = Inflate; + exports2.inflate = inflate2; + exports2.inflateRaw = inflateRaw; + exports2.ungzip = inflate2; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var assign2 = require_common().assign; + var deflate2 = require_deflate2(); + var inflate2 = require_inflate2(); + var constants = require_constants(); + var pako2 = {}; + assign2(pako2, deflate2, inflate2, constants); + module2.exports = pako2; + } +}); + +// node_modules/.pnpm/pify@4.0.1/node_modules/pify/index.js +var require_pify = __commonJS({ + "node_modules/.pnpm/pify@4.0.1/node_modules/pify/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var processFn = (fn, options) => function(...args) { + const P = options.promiseModule; + return new P((resolve, reject) => { + if (options.multiArgs) { + args.push((...result) => { + if (options.errorFirst) { + if (result[0]) { + reject(result); + } else { + result.shift(); + resolve(result); + } + } else { + resolve(result); + } + }); + } else if (options.errorFirst) { + args.push((error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + } else { + args.push(resolve); + } + fn.apply(this, args); + }); + }; + module2.exports = (input, options) => { + options = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, options); + const objType = typeof input; + if (!(input !== null && (objType === "object" || objType === "function"))) { + throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${input === null ? "null" : objType}\``); + } + const filter = (key2) => { + const match = (pattern) => typeof pattern === "string" ? key2 === pattern : pattern.test(key2); + return options.include ? options.include.some(match) : !options.exclude.some(match); + }; + let ret; + if (objType === "function") { + ret = function(...args) { + return options.excludeMain ? input(...args) : processFn(input, options).apply(this, args); + }; + } else { + ret = Object.create(Object.getPrototypeOf(input)); + } + for (const key2 in input) { + const property = input[key2]; + ret[key2] = typeof property === "function" && filter(key2) ? processFn(property, options) : property; + } + return ret; + }; + } +}); + +// node_modules/.pnpm/ignore@5.2.4/node_modules/ignore/index.js +var require_ignore = __commonJS({ + "node_modules/.pnpm/ignore@5.2.4/node_modules/ignore/index.js"(exports2, module2) { + init_polyfill_buffer(); + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var EMPTY = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var SLASH = "/"; + var TMP_KEY_IGNORE = "node-ignore"; + if (typeof Symbol !== "undefined") { + TMP_KEY_IGNORE = Symbol.for("node-ignore"); + } + var KEY_IGNORE = TMP_KEY_IGNORE; + var define2 = (object, key2, value) => Object.defineProperty(object, key2, { value }); + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY + ); + var cleanRangeBackSlash = (slashes) => { + const { length } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [ + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY + ], + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], + // Escape metacharacters + // which is written down by users but means special for regular expressions. + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + (match) => `\\${match}` + ], + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => "[^/]" + ], + // leading slash + [ + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => "^" + ], + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => "\\/" + ], + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, + // '**/foo' <-> 'foo' + () => "^(?:.*\\/)?" + ], + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; + } + ], + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer + // Check if it is not the last `'/**'` + (_, index2, str) => index2 + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" + ], + // normal intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' + // 'abc.*/' -> go + // 'abc.*' -> skip this rule, + // coz trailing single wildcard will be handed by [trailing wildcard] + /(^|[^\\]+)(\\\*)+(?=.+)/g, + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1, p2) => { + const unescaped = p2.replace(/\\\*/g, "[^\\/]*"); + return p1 + unescaped; + } + ], + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" + ], + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` + ], + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + } + ] + ]; + var regexCache = /* @__PURE__ */ Object.create(null); + var makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, "i") : new RegExp(source); + }; + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); + var IgnoreRule = class { + constructor(origin, pattern, negative, regex2) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex2; + } + }; + var createRule = (pattern, ignoreCase) => { + const origin = pattern; + let negative = false; + if (pattern.indexOf("!") === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regex2 = makeRegex(pattern, ignoreCase); + return new IgnoreRule( + origin, + pattern, + negative, + regex2 + ); + }; + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path2, originalPath, doThrow) => { + if (!isString(path2)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ); + } + if (!path2) { + return doThrow(`path must not be empty`, TypeError); + } + if (checkPath.isNotRelative(path2)) { + const r = "`path.relative()`d"; + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ); + } + return true; + }; + var isNotRelative = (path2) => REGEX_TEST_INVALID_PATH.test(path2); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + var Ignore = class { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _initCache() { + this._ignoreCache = /* @__PURE__ */ Object.create(null); + this._testCache = /* @__PURE__ */ Object.create(null); + } + _addPattern(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + // @param {Array | string | Ignore} pattern + add(pattern) { + this._added = false; + makeArray( + isString(pattern) ? splitPattern(pattern) : pattern + ).forEach(this._addPattern, this); + if (this._added) { + this._initCache(); + } + return this; + } + // legacy + addPattern(pattern) { + return this.add(pattern); + } + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored + _testOne(path2, checkUnignored) { + let ignored = false; + let unignored = false; + this._rules.forEach((rule) => { + const { negative } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule.regex.test(path2); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored, + unignored + }; + } + // @returns {TestResult} + _test(originalPath, cache, checkUnignored, slices) { + const path2 = originalPath && checkPath.convert(originalPath); + checkPath( + path2, + originalPath, + this._allowRelativePaths ? RETURN_FALSE : throwError + ); + return this._t(path2, cache, checkUnignored, slices); + } + _t(path2, cache, checkUnignored, slices) { + if (path2 in cache) { + return cache[path2]; + } + if (!slices) { + slices = path2.split(SLASH); + } + slices.pop(); + if (!slices.length) { + return cache[path2] = this._testOne(path2, checkUnignored); + } + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ); + return cache[path2] = parent.ignored ? parent : this._testOne(path2, checkUnignored); + } + ignores(path2) { + return this._test(path2, this._ignoreCache, false).ignored; + } + createFilter() { + return (path2) => !this.ignores(path2); + } + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + // @returns {TestResult} + test(path2) { + return this._test(path2, this._testCache, true); + } + }; + var factory = (options) => new Ignore(options); + var isPathValid = (path2) => checkPath(path2 && checkPath.convert(path2), path2, RETURN_FALSE); + factory.isPathValid = isPathValid; + factory.default = factory; + module2.exports = factory; + if ( + // Detect `process` so that it can run in browsers. + typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32") + ) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path2) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path2) || isNotRelative(path2); + } + } +}); + +// node_modules/.pnpm/clean-git-ref@2.0.1/node_modules/clean-git-ref/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/.pnpm/clean-git-ref@2.0.1/node_modules/clean-git-ref/lib/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function replaceAll(str, search, replacement) { + search = search instanceof RegExp ? search : new RegExp(escapeRegExp(search), "g"); + return str.replace(search, replacement); + } + var CleanGitRef = { + clean: function clean(value) { + if (typeof value !== "string") { + throw new Error("Expected a string, received: " + value); + } + value = replaceAll(value, "./", "/"); + value = replaceAll(value, "..", "."); + value = replaceAll(value, " ", "-"); + value = replaceAll(value, /^[~^:?*\\\-]/g, ""); + value = replaceAll(value, /[~^:?*\\]/g, "-"); + value = replaceAll(value, /[~^:?*\\\-]$/g, ""); + value = replaceAll(value, "@{", "-"); + value = replaceAll(value, /\.$/g, ""); + value = replaceAll(value, /\/$/g, ""); + value = replaceAll(value, /\.lock$/g, ""); + return value; + } + }; + module2.exports = CleanGitRef; + } +}); + +// node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/onp.js +var require_onp = __commonJS({ + "node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/onp.js"(exports2, module2) { + init_polyfill_buffer(); + module2.exports = function(a_, b_) { + var a = a_, b = b_, m = a.length, n = b.length, reverse = false, ed = null, offset = m + 1, path2 = [], pathposi = [], ses = [], lcs = "", SES_DELETE = -1, SES_COMMON = 0, SES_ADD = 1; + var tmp1, tmp2; + var init3 = function() { + if (m >= n) { + tmp1 = a; + tmp2 = m; + a = b; + b = tmp1; + m = n; + n = tmp2; + reverse = true; + offset = m + 1; + } + }; + var P = function(x, y, k) { + return { + "x": x, + "y": y, + "k": k + }; + }; + var seselem = function(elem, t) { + return { + "elem": elem, + "t": t + }; + }; + var snake = function(k, p, pp) { + var r, x, y; + if (p > pp) { + r = path2[k - 1 + offset]; + } else { + r = path2[k + 1 + offset]; + } + y = Math.max(p, pp); + x = y - k; + while (x < m && y < n && a[x] === b[y]) { + ++x; + ++y; + } + path2[k + offset] = pathposi.length; + pathposi[pathposi.length] = new P(x, y, r); + return y; + }; + var recordseq = function(epc) { + var x_idx, y_idx, px_idx, py_idx, i; + x_idx = y_idx = 1; + px_idx = py_idx = 0; + for (i = epc.length - 1; i >= 0; --i) { + while (px_idx < epc[i].x || py_idx < epc[i].y) { + if (epc[i].y - epc[i].x > py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(b[py_idx], SES_DELETE); + } else { + ses[ses.length] = new seselem(b[py_idx], SES_ADD); + } + ++y_idx; + ++py_idx; + } else if (epc[i].y - epc[i].x < py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(a[px_idx], SES_ADD); + } else { + ses[ses.length] = new seselem(a[px_idx], SES_DELETE); + } + ++x_idx; + ++px_idx; + } else { + ses[ses.length] = new seselem(a[px_idx], SES_COMMON); + lcs += a[px_idx]; + ++x_idx; + ++y_idx; + ++px_idx; + ++py_idx; + } + } + } + }; + init3(); + return { + SES_DELETE: -1, + SES_COMMON: 0, + SES_ADD: 1, + editdistance: function() { + return ed; + }, + getlcs: function() { + return lcs; + }, + getses: function() { + return ses; + }, + compose: function() { + var delta, size, fp, p, r, epc, i, k; + delta = n - m; + size = m + n + 3; + fp = {}; + for (i = 0; i < size; ++i) { + fp[i] = -1; + path2[i] = -1; + } + p = -1; + do { + ++p; + for (k = -p; k <= delta - 1; ++k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + for (k = delta + p; k >= delta + 1; --k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + fp[delta + offset] = snake(delta, fp[delta - 1 + offset] + 1, fp[delta + 1 + offset]); + } while (fp[delta + offset] !== n); + ed = delta + 2 * p; + r = path2[delta + offset]; + epc = []; + while (r !== -1) { + epc[epc.length] = new P(pathposi[r].x, pathposi[r].y, null); + r = pathposi[r].k; + } + recordseq(epc); + } + }; + }; + } +}); + +// node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/diff3.js +var require_diff3 = __commonJS({ + "node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/diff3.js"(exports2, module2) { + init_polyfill_buffer(); + var onp = require_onp(); + function longestCommonSubsequence(file1, file2) { + var diff2 = new onp(file1, file2); + diff2.compose(); + var ses = diff2.getses(); + var root2; + var prev; + var file1RevIdx = file1.length - 1, file2RevIdx = file2.length - 1; + for (var i = ses.length - 1; i >= 0; --i) { + if (ses[i].t === diff2.SES_COMMON) { + if (prev) { + prev.chain = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = prev.chain; + } else { + root2 = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = root2; + } + file1RevIdx--; + file2RevIdx--; + } else if (ses[i].t === diff2.SES_DELETE) { + file1RevIdx--; + } else if (ses[i].t === diff2.SES_ADD) { + file2RevIdx--; + } + } + var tail = { + file1index: -1, + file2index: -1, + chain: null + }; + if (!prev) { + return tail; + } + prev.chain = tail; + return root2; + } + function diffIndices(file1, file2) { + var result = []; + var tail1 = file1.length; + var tail2 = file2.length; + for (var candidate = longestCommonSubsequence(file1, file2); candidate !== null; candidate = candidate.chain) { + var mismatchLength1 = tail1 - candidate.file1index - 1; + var mismatchLength2 = tail2 - candidate.file2index - 1; + tail1 = candidate.file1index; + tail2 = candidate.file2index; + if (mismatchLength1 || mismatchLength2) { + result.push({ + file1: [tail1 + 1, mismatchLength1], + file2: [tail2 + 1, mismatchLength2] + }); + } + } + result.reverse(); + return result; + } + function diff3MergeIndices(a, o, b) { + var i; + var m1 = diffIndices(o, a); + var m2 = diffIndices(o, b); + var hunks = []; + function addHunk(h, side2) { + hunks.push([h.file1[0], side2, h.file1[1], h.file2[0], h.file2[1]]); + } + for (i = 0; i < m1.length; i++) { + addHunk(m1[i], 0); + } + for (i = 0; i < m2.length; i++) { + addHunk(m2[i], 2); + } + hunks.sort(function(x, y) { + return x[0] - y[0]; + }); + var result = []; + var commonOffset = 0; + function copyCommon(targetOffset) { + if (targetOffset > commonOffset) { + result.push([1, commonOffset, targetOffset - commonOffset]); + commonOffset = targetOffset; + } + } + for (var hunkIndex = 0; hunkIndex < hunks.length; hunkIndex++) { + var firstHunkIndex = hunkIndex; + var hunk = hunks[hunkIndex]; + var regionLhs = hunk[0]; + var regionRhs = regionLhs + hunk[2]; + while (hunkIndex < hunks.length - 1) { + var maybeOverlapping = hunks[hunkIndex + 1]; + var maybeLhs = maybeOverlapping[0]; + if (maybeLhs > regionRhs) + break; + regionRhs = Math.max(regionRhs, maybeLhs + maybeOverlapping[2]); + hunkIndex++; + } + copyCommon(regionLhs); + if (firstHunkIndex == hunkIndex) { + if (hunk[4] > 0) { + result.push([hunk[1], hunk[3], hunk[4]]); + } + } else { + var regions = { + 0: [a.length, -1, o.length, -1], + 2: [b.length, -1, o.length, -1] + }; + for (i = firstHunkIndex; i <= hunkIndex; i++) { + hunk = hunks[i]; + var side = hunk[1]; + var r = regions[side]; + var oLhs = hunk[0]; + var oRhs = oLhs + hunk[2]; + var abLhs = hunk[3]; + var abRhs = abLhs + hunk[4]; + r[0] = Math.min(abLhs, r[0]); + r[1] = Math.max(abRhs, r[1]); + r[2] = Math.min(oLhs, r[2]); + r[3] = Math.max(oRhs, r[3]); + } + var aLhs = regions[0][0] + (regionLhs - regions[0][2]); + var aRhs = regions[0][1] + (regionRhs - regions[0][3]); + var bLhs = regions[2][0] + (regionLhs - regions[2][2]); + var bRhs = regions[2][1] + (regionRhs - regions[2][3]); + result.push([ + -1, + aLhs, + aRhs - aLhs, + regionLhs, + regionRhs - regionLhs, + bLhs, + bRhs - bLhs + ]); + } + commonOffset = regionRhs; + } + copyCommon(o.length); + return result; + } + function diff3Merge2(a, o, b) { + var result = []; + var files = [a, o, b]; + var indices = diff3MergeIndices(a, o, b); + var okLines = []; + function flushOk() { + if (okLines.length) { + result.push({ + ok: okLines + }); + } + okLines = []; + } + function pushOk(xs) { + for (var j = 0; j < xs.length; j++) { + okLines.push(xs[j]); + } + } + function isTrueConflict(rec) { + if (rec[2] != rec[6]) + return true; + var aoff = rec[1]; + var boff = rec[5]; + for (var j = 0; j < rec[2]; j++) { + if (a[j + aoff] != b[j + boff]) + return true; + } + return false; + } + for (var i = 0; i < indices.length; i++) { + var x = indices[i]; + var side = x[0]; + if (side == -1) { + if (!isTrueConflict(x)) { + pushOk(files[0].slice(x[1], x[1] + x[2])); + } else { + flushOk(); + result.push({ + conflict: { + a: a.slice(x[1], x[1] + x[2]), + aIndex: x[1], + o: o.slice(x[3], x[3] + x[4]), + oIndex: x[3], + b: b.slice(x[5], x[5] + x[6]), + bIndex: x[5] + } + }); + } + } else { + pushOk(files[side].slice(x[1], x[1] + x[2])); + } + } + flushOk(); + return result; + } + module2.exports = diff3Merge2; + } +}); + +// node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports2, module2) { + init_polyfill_buffer(); + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/.pnpm/debug@4.3.4_supports-color@9.4.0/node_modules/debug/src/common.js +var require_common2 = __commonJS({ + "node_modules/.pnpm/debug@4.3.4_supports-color@9.4.0/node_modules/debug/src/common.js"(exports2, module2) { + init_polyfill_buffer(); + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key2) => { + createDebug[key2] = env[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash2 = 0; + for (let i = 0; i < namespace.length; i++) { + hash2 = (hash2 << 5) - hash2 + namespace.charCodeAt(i); + hash2 |= 0; + } + return createDebug.colors[Math.abs(hash2) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug3(...args) { + if (!debug3.enabled) { + return; + } + const self2 = debug3; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index2 = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index2++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index2]; + match = formatter.call(self2, val); + args.splice(index2, 1); + index2--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug3.namespace = namespace; + debug3.useColors = createDebug.useColors(); + debug3.color = createDebug.selectColor(namespace); + debug3.extend = extend; + debug3.destroy = createDebug.destroy; + Object.defineProperty(debug3, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug3); + } + return debug3; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + let i; + const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + const len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) { + continue; + } + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + let i; + let len; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + return false; + } + function toNamespace(regexp) { + return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/.pnpm/debug@4.3.4_supports-color@9.4.0/node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/.pnpm/debug@4.3.4_supports-color@9.4.0/node_modules/debug/src/browser.js"(exports2, module2) { + init_polyfill_buffer(); + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = localstorage(); + exports2.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index2 = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index2++; + if (match === "%c") { + lastC = index2; + } + }); + args.splice(lastC, 0, c); + } + exports2.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports2.storage.setItem("debug", namespaces); + } else { + exports2.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports2.storage.getItem("debug"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module2.exports = require_common2()(exports2); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/src/index.js +var require_src = __commonJS({ + "node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/src/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var fs_1 = require("fs"); + var debug_1 = __importDefault(require_browser()); + var log2 = debug_1.default("@kwsites/file-exists"); + function check(path2, isFile, isDirectory) { + log2(`checking %s`, path2); + try { + const stat = fs_1.statSync(path2); + if (stat.isFile() && isFile) { + log2(`[OK] path represents a file`); + return true; + } + if (stat.isDirectory() && isDirectory) { + log2(`[OK] path represents a directory`); + return true; + } + log2(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log2(`[FAIL] path is not accessible: %o`, e); + return false; + } + log2(`[FATAL] %o`, e); + throw e; + } + } + function exists2(path2, type = exports2.READABLE) { + return check(path2, (type & exports2.FILE) > 0, (type & exports2.FOLDER) > 0); + } + exports2.exists = exists2; + exports2.FILE = 1; + exports2.FOLDER = 2; + exports2.READABLE = exports2.FILE + exports2.FOLDER; + } +}); + +// node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/index.js +var require_dist = __commonJS({ + "node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + function __export3(m) { + for (var p in m) + if (!exports2.hasOwnProperty(p)) + exports2[p] = m[p]; + } + Object.defineProperty(exports2, "__esModule", { value: true }); + __export3(require_src()); + } +}); + +// node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/dist/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createDeferred = exports2.deferred = void 0; + function deferred2() { + let done; + let fail; + let status2 = "pending"; + const promise2 = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise: promise2, + done(result) { + if (status2 === "pending") { + status2 = "resolved"; + done(result); + } + }, + fail(error) { + if (status2 === "pending") { + status2 = "rejected"; + fail(error); + } + }, + get fulfilled() { + return status2 !== "pending"; + }, + get status() { + return status2; + } + }; + } + exports2.deferred = deferred2; + exports2.createDeferred = deferred2; + exports2.default = deferred2; + } +}); + +// node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js +var require_color_name = __commonJS({ + "node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] + }; + } +}); + +// node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js +var require_css_unit_converter = __commonJS({ + "node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js"(exports2, module2) { + init_polyfill_buffer(); + var conversions = { + // length + "px": { + "px": 1, + "cm": 96 / 2.54, + "mm": 96 / 25.4, + "in": 96, + "pt": 96 / 72, + "pc": 16 + }, + "cm": { + "px": 2.54 / 96, + "cm": 1, + "mm": 0.1, + "in": 2.54, + "pt": 2.54 / 72, + "pc": 2.54 / 6 + }, + "mm": { + "px": 25.4 / 96, + "cm": 10, + "mm": 1, + "in": 25.4, + "pt": 25.4 / 72, + "pc": 25.4 / 6 + }, + "in": { + "px": 1 / 96, + "cm": 1 / 2.54, + "mm": 1 / 25.4, + "in": 1, + "pt": 1 / 72, + "pc": 1 / 6 + }, + "pt": { + "px": 0.75, + "cm": 72 / 2.54, + "mm": 72 / 25.4, + "in": 72, + "pt": 1, + "pc": 12 + }, + "pc": { + "px": 6 / 96, + "cm": 6 / 2.54, + "mm": 6 / 25.4, + "in": 6, + "pt": 6 / 72, + "pc": 1 + }, + // angle + "deg": { + "deg": 1, + "grad": 0.9, + "rad": 180 / Math.PI, + "turn": 360 + }, + "grad": { + "deg": 400 / 360, + "grad": 1, + "rad": 200 / Math.PI, + "turn": 400 + }, + "rad": { + "deg": Math.PI / 180, + "grad": Math.PI / 200, + "rad": 1, + "turn": Math.PI * 2 + }, + "turn": { + "deg": 1 / 360, + "grad": 1 / 400, + "rad": 0.5 / Math.PI, + "turn": 1 + }, + // time + "s": { + "s": 1, + "ms": 1 / 1e3 + }, + "ms": { + "s": 1e3, + "ms": 1 + }, + // frequency + "Hz": { + "Hz": 1, + "kHz": 1e3 + }, + "kHz": { + "Hz": 1 / 1e3, + "kHz": 1 + }, + // resolution + "dpi": { + "dpi": 1, + "dpcm": 1 / 2.54, + "dppx": 1 / 96 + }, + "dpcm": { + "dpi": 2.54, + "dpcm": 1, + "dppx": 2.54 / 96 + }, + "dppx": { + "dpi": 96, + "dpcm": 96 / 2.54, + "dppx": 1 + } + }; + module2.exports = function(value, sourceUnit, targetUnit, precision) { + if (!conversions.hasOwnProperty(targetUnit)) + throw new Error("Cannot convert to " + targetUnit); + if (!conversions[targetUnit].hasOwnProperty(sourceUnit)) + throw new Error("Cannot convert from " + sourceUnit + " to " + targetUnit); + var converted = conversions[targetUnit][sourceUnit] * value; + if (precision !== false) { + precision = Math.pow(10, parseInt(precision) || 5); + return Math.round(converted * precision) / precision; + } + return converted; + }; + } +}); + +// node_modules/.pnpm/css-color-converter@2.0.0/node_modules/css-color-converter/lib/index.js +var require_lib3 = __commonJS({ + "node_modules/.pnpm/css-color-converter@2.0.0/node_modules/css-color-converter/lib/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.fromRgba = fromRgba; + exports2.fromRgb = fromRgb; + exports2.fromHsla = fromHsla; + exports2.fromHsl = fromHsl; + exports2.fromString = fromString2; + exports2["default"] = void 0; + var _colorName = _interopRequireDefault(require_color_name()); + var _cssUnitConverter = _interopRequireDefault(require_css_unit_converter()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + function _classCallCheck(instance10, Constructor) { + if (!(instance10 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + return Constructor; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray2(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray2(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray2(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray2(o, minLen); + } + function _arrayLikeToArray2(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) + return; + var _arr = []; + var _n = true; + var _d = false; + var _e = void 0; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) + break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) + _i["return"](); + } finally { + if (_d) + throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) + return arr; + } + var hex = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?$/; + var shortHex = /^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?$/; + var rgb = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbfn = /^rgba?\(\s*(\d+)\s+(\d+)\s+(\d+)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbperc = /^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbpercfn = /^rgba?\(\s*(\d+%)\s+(\d+%)\s+(\d+%)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var hsl = /^hsla?\(\s*(\d+)(deg|rad|grad|turn)?\s*,\s*(\d+)%\s*,\s*(\d+)%(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + function contains2(haystack, needle) { + return haystack.indexOf(needle) > -1; + } + function rgbToHsl(r, g, b) { + var rprim = r / 255; + var gprim = g / 255; + var bprim = b / 255; + var cmax = Math.max(rprim, gprim, bprim); + var cmin = Math.min(rprim, gprim, bprim); + var delta = cmax - cmin; + var l = (cmax + cmin) / 2; + if (delta === 0) { + return [0, 0, l * 100]; + } + var s = delta / (1 - Math.abs(2 * l - 1)); + var h = function() { + switch (cmax) { + case rprim: { + return (gprim - bprim) / delta % 6; + } + case gprim: { + return (bprim - rprim) / delta + 2; + } + default: { + return (rprim - gprim) / delta + 4; + } + } + }(); + return [h * 60, s * 100, l * 100]; + } + function hslToRgb(h, s, l) { + var hprim = h / 60; + var sprim = s / 100; + var lprim = l / 100; + var c = (1 - Math.abs(2 * lprim - 1)) * sprim; + var x = c * (1 - Math.abs(hprim % 2 - 1)); + var m = lprim - c / 2; + var _ref = function() { + if (hprim < 1) + return [c, x, 0]; + if (hprim < 2) + return [x, c, 0]; + if (hprim < 3) + return [0, c, x]; + if (hprim < 4) + return [0, x, c]; + if (hprim < 5) + return [x, 0, c]; + return [c, 0, x]; + }(), _ref2 = _slicedToArray(_ref, 3), rprim = _ref2[0], gprim = _ref2[1], bprim = _ref2[2]; + return [(rprim + m) * 255, (gprim + m) * 255, (bprim + m) * 255]; + } + var Color = /* @__PURE__ */ function() { + function Color2(_ref3) { + var _ref4 = _slicedToArray(_ref3, 4), r = _ref4[0], g = _ref4[1], b = _ref4[2], a = _ref4[3]; + _classCallCheck(this, Color2); + this.values = [Math.max(Math.min(parseInt(r, 10), 255), 0), Math.max(Math.min(parseInt(g, 10), 255), 0), Math.max(Math.min(parseInt(b, 10), 255), 0), a == null ? 1 : Math.max(Math.min(parseFloat(a), 255), 0)]; + } + _createClass(Color2, [{ + key: "toRgbString", + value: function toRgbString() { + var _this$values = _slicedToArray(this.values, 4), r = _this$values[0], g = _this$values[1], b = _this$values[2], a = _this$values[3]; + if (a === 1) { + return "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")"); + } + return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")"); + } + }, { + key: "toHslString", + value: function toHslString() { + var _this$toHslaArray = this.toHslaArray(), _this$toHslaArray2 = _slicedToArray(_this$toHslaArray, 4), h = _this$toHslaArray2[0], s = _this$toHslaArray2[1], l = _this$toHslaArray2[2], a = _this$toHslaArray2[3]; + if (a === 1) { + return "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)"); + } + return "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")"); + } + }, { + key: "toHexString", + value: function toHexString() { + var _this$values2 = _slicedToArray(this.values, 4), r = _this$values2[0], g = _this$values2[1], b = _this$values2[2], a = _this$values2[3]; + r = Number(r).toString(16).padStart(2, "0"); + g = Number(g).toString(16).padStart(2, "0"); + b = Number(b).toString(16).padStart(2, "0"); + a = a < 1 ? parseInt(a * 255, 10).toString(16).padStart(2, "0") : ""; + return "#".concat(r).concat(g).concat(b).concat(a); + } + }, { + key: "toRgbaArray", + value: function toRgbaArray() { + return this.values; + } + }, { + key: "toHslaArray", + value: function toHslaArray() { + var _this$values3 = _slicedToArray(this.values, 4), r = _this$values3[0], g = _this$values3[1], b = _this$values3[2], a = _this$values3[3]; + var _rgbToHsl = rgbToHsl(r, g, b), _rgbToHsl2 = _slicedToArray(_rgbToHsl, 3), h = _rgbToHsl2[0], s = _rgbToHsl2[1], l = _rgbToHsl2[2]; + return [h, s, l, a]; + } + }]); + return Color2; + }(); + function fromRgba(_ref5) { + var _ref6 = _slicedToArray(_ref5, 4), r = _ref6[0], g = _ref6[1], b = _ref6[2], a = _ref6[3]; + return new Color([r, g, b, a]); + } + function fromRgb(_ref7) { + var _ref8 = _slicedToArray(_ref7, 3), r = _ref8[0], g = _ref8[1], b = _ref8[2]; + return fromRgba([r, g, b, 1]); + } + function fromHsla(_ref9) { + var _ref10 = _slicedToArray(_ref9, 4), h = _ref10[0], s = _ref10[1], l = _ref10[2], a = _ref10[3]; + var _hslToRgb = hslToRgb(h, s, l), _hslToRgb2 = _slicedToArray(_hslToRgb, 3), r = _hslToRgb2[0], g = _hslToRgb2[1], b = _hslToRgb2[2]; + return fromRgba([r, g, b, a]); + } + function fromHsl(_ref11) { + var _ref12 = _slicedToArray(_ref11, 3), h = _ref12[0], s = _ref12[1], l = _ref12[2]; + return fromHsla([h, s, l, 1]); + } + function fromHexString(str) { + var _ref13 = hex.exec(str) || shortHex.exec(str), _ref14 = _slicedToArray(_ref13, 5), r = _ref14[1], g = _ref14[2], b = _ref14[3], a = _ref14[4]; + r = parseInt(r.length < 2 ? r.repeat(2) : r, 16); + g = parseInt(g.length < 2 ? g.repeat(2) : g, 16); + b = parseInt(b.length < 2 ? b.repeat(2) : b, 16); + a = a && (parseInt(a.length < 2 ? a.repeat(2) : a, 16) / 255).toPrecision(1) || 1; + return fromRgba([r, g, b, a]); + } + function fromRgbString(str) { + var _ref15 = rgb.exec(str) || rgbperc.exec(str) || rgbfn.exec(str) || rgbpercfn.exec(str), _ref16 = _slicedToArray(_ref15, 5), r = _ref16[1], g = _ref16[2], b = _ref16[3], a = _ref16[4]; + r = contains2(r, "%") ? parseInt(r, 10) * 255 / 100 : parseInt(r, 10); + g = contains2(g, "%") ? parseInt(g, 10) * 255 / 100 : parseInt(g, 10); + b = contains2(b, "%") > 0 ? parseInt(b, 10) * 255 / 100 : parseInt(b, 10); + a = a === void 0 ? 1 : parseFloat(a) / (contains2(a, "%") ? 100 : 1); + return fromRgba([r, g, b, a]); + } + function fromHslString(str) { + var _hsl$exec = hsl.exec(str), _hsl$exec2 = _slicedToArray(_hsl$exec, 6), h = _hsl$exec2[1], unit = _hsl$exec2[2], s = _hsl$exec2[3], l = _hsl$exec2[4], a = _hsl$exec2[5]; + unit = unit || "deg"; + h = (0, _cssUnitConverter["default"])(parseFloat(h), unit, "deg"); + s = parseFloat(s); + l = parseFloat(l); + a = a === void 0 ? 1 : parseFloat(a) / (contains2(a, "%") ? 100 : 1); + return fromHsla([h, s, l, a]); + } + function fromString2(str) { + if (_colorName["default"][str]) { + return fromRgb(_colorName["default"][str]); + } + if (hex.test(str) || shortHex.test(str)) { + return fromHexString(str); + } + if (rgb.test(str) || rgbperc.test(str) || rgbfn.test(str) || rgbpercfn.test(str)) { + return fromRgbString(str); + } + if (hsl.test(str)) { + return fromHslString(str); + } + return null; + } + var _default = { + fromString: fromString2, + fromRgb, + fromRgba, + fromHsl, + fromHsla + }; + exports2["default"] = _default; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js +var require_isArguments = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var toStr = Object.prototype.toString; + module2.exports = function isArguments(value) { + var str = toStr.call(value); + var isArgs = str === "[object Arguments]"; + if (!isArgs) { + isArgs = str !== "[object Array]" && value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && toStr.call(value.callee) === "[object Function]"; + } + return isArgs; + }; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js +var require_implementation = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var keysShim; + if (!Object.keys) { + has = Object.prototype.hasOwnProperty; + toStr = Object.prototype.toString; + isArgs = require_isArguments(); + isEnumerable = Object.prototype.propertyIsEnumerable; + hasDontEnumBug = !isEnumerable.call({ toString: null }, "toString"); + hasProtoEnumBug = isEnumerable.call(function() { + }, "prototype"); + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ]; + equalsConstructorPrototype = function(o) { + var ctor = o.constructor; + return ctor && ctor.prototype === o; + }; + excludedKeys = { + $applicationCache: true, + $console: true, + $external: true, + $frame: true, + $frameElement: true, + $frames: true, + $innerHeight: true, + $innerWidth: true, + $onmozfullscreenchange: true, + $onmozfullscreenerror: true, + $outerHeight: true, + $outerWidth: true, + $pageXOffset: true, + $pageYOffset: true, + $parent: true, + $scrollLeft: true, + $scrollTop: true, + $scrollX: true, + $scrollY: true, + $self: true, + $webkitIndexedDB: true, + $webkitStorageInfo: true, + $window: true + }; + hasAutomationEqualityBug = function() { + if (typeof window === "undefined") { + return false; + } + for (var k in window) { + try { + if (!excludedKeys["$" + k] && has.call(window, k) && window[k] !== null && typeof window[k] === "object") { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } + } + } catch (e) { + return true; + } + } + return false; + }(); + equalsConstructorPrototypeIfNotBuggy = function(o) { + if (typeof window === "undefined" || !hasAutomationEqualityBug) { + return equalsConstructorPrototype(o); + } + try { + return equalsConstructorPrototype(o); + } catch (e) { + return false; + } + }; + keysShim = function keys(object) { + var isObject = object !== null && typeof object === "object"; + var isFunction = toStr.call(object) === "[object Function]"; + var isArguments = isArgs(object); + var isString = isObject && toStr.call(object) === "[object String]"; + var theKeys = []; + if (!isObject && !isFunction && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + var skipProto = hasProtoEnumBug && isFunction; + if (isString && object.length > 0 && !has.call(object, 0)) { + for (var i = 0; i < object.length; ++i) { + theKeys.push(String(i)); + } + } + if (isArguments && object.length > 0) { + for (var j = 0; j < object.length; ++j) { + theKeys.push(String(j)); + } + } else { + for (var name in object) { + if (!(skipProto && name === "prototype") && has.call(object, name)) { + theKeys.push(String(name)); + } + } + } + if (hasDontEnumBug) { + var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); + for (var k = 0; k < dontEnums.length; ++k) { + if (!(skipConstructor && dontEnums[k] === "constructor") && has.call(object, dontEnums[k])) { + theKeys.push(dontEnums[k]); + } + } + } + return theKeys; + }; + } + var has; + var toStr; + var isArgs; + var isEnumerable; + var hasDontEnumBug; + var hasProtoEnumBug; + var dontEnums; + var equalsConstructorPrototype; + var excludedKeys; + var hasAutomationEqualityBug; + var equalsConstructorPrototypeIfNotBuggy; + module2.exports = keysShim; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js +var require_object_keys = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var slice = Array.prototype.slice; + var isArgs = require_isArguments(); + var origKeys = Object.keys; + var keysShim = origKeys ? function keys(o) { + return origKeys(o); + } : require_implementation(); + var originalKeys = Object.keys; + keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = function() { + var args = Object.keys(arguments); + return args && args.length === arguments.length; + }(1, 2); + if (!keysWorksWithArguments) { + Object.keys = function keys(object) { + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } + return originalKeys(object); + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; + }; + module2.exports = keysShim; + } +}); + +// node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js +var require_shams = __commonJS({ + "node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js +var require_has_symbols = __commonJS({ + "node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = require_shams(); + module2.exports = function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }; + } +}); + +// node_modules/.pnpm/has-proto@1.0.1/node_modules/has-proto/index.js +var require_has_proto = __commonJS({ + "node_modules/.pnpm/has-proto@1.0.1/node_modules/has-proto/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var test = { + foo: {} + }; + var $Object = Object; + module2.exports = function hasProto() { + return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object); + }; + } +}); + +// node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/implementation.js +var require_implementation2 = __commonJS({ + "node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var slice = Array.prototype.slice; + var toStr = Object.prototype.toString; + var funcType = "[object Function]"; + module2.exports = function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + var bound; + var binder = function() { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push("$" + i); + } + bound = Function("binder", "return function (" + boundArgs.join(",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = function Empty2() { + }; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; + } +}); + +// node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/index.js +var require_function_bind = __commonJS({ + "node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation2(); + module2.exports = Function.prototype.bind || implementation; + } +}); + +// node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js +var require_src2 = __commonJS({ + "node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var bind = require_function_bind(); + module2.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + } +}); + +// node_modules/.pnpm/get-intrinsic@1.2.1/node_modules/get-intrinsic/index.js +var require_get_intrinsic = __commonJS({ + "node_modules/.pnpm/get-intrinsic@1.2.1/node_modules/get-intrinsic/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var undefined2; + var $SyntaxError = SyntaxError; + var $Function = Function; + var $TypeError = TypeError; + var getEvalledConstructor = function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) { + } + }; + var $gOPD = Object.getOwnPropertyDescriptor; + if ($gOPD) { + try { + $gOPD({}, ""); + } catch (e) { + $gOPD = null; + } + } + var throwTypeError = function() { + throw new $TypeError(); + }; + var ThrowTypeError = $gOPD ? function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }() : throwTypeError; + var hasSymbols = require_has_symbols()(); + var hasProto = require_has_proto()(); + var getProto = Object.getPrototypeOf || (hasProto ? function(x) { + return x.__proto__; + } : null); + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array); + var INTRINSICS = { + "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2, + "%AsyncFromSyncIteratorPrototype%": undefined2, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": Error, + "%eval%": eval, + // eslint-disable-line no-eval + "%EvalError%": EvalError, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2, + "%JSON%": typeof JSON === "object" ? JSON : undefined2, + "%Map%": typeof Map === "undefined" ? undefined2 : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": Object, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy, + "%RangeError%": RangeError, + "%ReferenceError%": ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined2 : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2, + "%Symbol%": hasSymbols ? Symbol : undefined2, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array, + "%URIError%": URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet + }; + if (getProto) { + try { + null.error; + } catch (e) { + errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var errorProto; + var doEval = function doEval2(name) { + var value; + if (name === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name === "%AsyncGenerator%") { + var fn = doEval2("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name === "%AsyncIteratorPrototype%") { + var gen = doEval2("%AsyncGenerator%"); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name] = value; + return value; + }; + var LEGACY_ALIASES = { + "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], + "%ArrayPrototype%": ["Array", "prototype"], + "%ArrayProto_entries%": ["Array", "prototype", "entries"], + "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], + "%ArrayProto_keys%": ["Array", "prototype", "keys"], + "%ArrayProto_values%": ["Array", "prototype", "values"], + "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], + "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], + "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], + "%BooleanPrototype%": ["Boolean", "prototype"], + "%DataViewPrototype%": ["DataView", "prototype"], + "%DatePrototype%": ["Date", "prototype"], + "%ErrorPrototype%": ["Error", "prototype"], + "%EvalErrorPrototype%": ["EvalError", "prototype"], + "%Float32ArrayPrototype%": ["Float32Array", "prototype"], + "%Float64ArrayPrototype%": ["Float64Array", "prototype"], + "%FunctionPrototype%": ["Function", "prototype"], + "%Generator%": ["GeneratorFunction", "prototype"], + "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], + "%Int8ArrayPrototype%": ["Int8Array", "prototype"], + "%Int16ArrayPrototype%": ["Int16Array", "prototype"], + "%Int32ArrayPrototype%": ["Int32Array", "prototype"], + "%JSONParse%": ["JSON", "parse"], + "%JSONStringify%": ["JSON", "stringify"], + "%MapPrototype%": ["Map", "prototype"], + "%NumberPrototype%": ["Number", "prototype"], + "%ObjectPrototype%": ["Object", "prototype"], + "%ObjProto_toString%": ["Object", "prototype", "toString"], + "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], + "%PromisePrototype%": ["Promise", "prototype"], + "%PromiseProto_then%": ["Promise", "prototype", "then"], + "%Promise_all%": ["Promise", "all"], + "%Promise_reject%": ["Promise", "reject"], + "%Promise_resolve%": ["Promise", "resolve"], + "%RangeErrorPrototype%": ["RangeError", "prototype"], + "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], + "%RegExpPrototype%": ["RegExp", "prototype"], + "%SetPrototype%": ["Set", "prototype"], + "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], + "%StringPrototype%": ["String", "prototype"], + "%SymbolPrototype%": ["Symbol", "prototype"], + "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], + "%TypedArrayPrototype%": ["TypedArray", "prototype"], + "%TypeErrorPrototype%": ["TypeError", "prototype"], + "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], + "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], + "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], + "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], + "%URIErrorPrototype%": ["URIError", "prototype"], + "%WeakMapPrototype%": ["WeakMap", "prototype"], + "%WeakSetPrototype%": ["WeakSet", "prototype"] + }; + var bind = require_function_bind(); + var hasOwn = require_src2(); + var $concat = bind.call(Function.call, Array.prototype.concat); + var $spliceApply = bind.call(Function.apply, Array.prototype.splice); + var $replace = bind.call(Function.call, String.prototype.replace); + var $strSlice = bind.call(Function.call, String.prototype.slice); + var $exec = bind.call(Function.call, RegExp.prototype.exec); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = function stringToPath2(string) { + var first2 = $strSlice(string, 0, 1); + var last2 = $strSlice(string, -1); + if (first2 === "%" && last2 !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last2 === "%" && first2 !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + }); + return result; + }; + var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name + " does not exist!"); + }; + module2.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== "string" || name.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first2 = $strSlice(part, 0, 1); + var last2 = $strSlice(part, -1); + if ((first2 === '"' || first2 === "'" || first2 === "`" || (last2 === '"' || last2 === "'" || last2 === "`")) && first2 !== last2) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available."); + } + return void 0; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }; + } +}); + +// node_modules/.pnpm/has-property-descriptors@1.0.0/node_modules/has-property-descriptors/index.js +var require_has_property_descriptors = __commonJS({ + "node_modules/.pnpm/has-property-descriptors@1.0.0/node_modules/has-property-descriptors/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true); + var hasPropertyDescriptors = function hasPropertyDescriptors2() { + if ($defineProperty) { + try { + $defineProperty({}, "a", { value: 1 }); + return true; + } catch (e) { + return false; + } + } + return false; + }; + hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + if (!hasPropertyDescriptors()) { + return null; + } + try { + return $defineProperty([], "length", { value: 1 }).length !== 1; + } catch (e) { + return true; + } + }; + module2.exports = hasPropertyDescriptors; + } +}); + +// node_modules/.pnpm/define-properties@1.2.0/node_modules/define-properties/index.js +var require_define_properties = __commonJS({ + "node_modules/.pnpm/define-properties@1.2.0/node_modules/define-properties/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var keys = require_object_keys(); + var hasSymbols = typeof Symbol === "function" && typeof Symbol("foo") === "symbol"; + var toStr = Object.prototype.toString; + var concat = Array.prototype.concat; + var origDefineProperty = Object.defineProperty; + var isFunction = function(fn) { + return typeof fn === "function" && toStr.call(fn) === "[object Function]"; + }; + var hasPropertyDescriptors = require_has_property_descriptors()(); + var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; + var defineProperty = function(object, name, value, predicate) { + if (name in object) { + if (predicate === true) { + if (object[name] === value) { + return; + } + } else if (!isFunction(predicate) || !predicate()) { + return; + } + } + if (supportsDescriptors) { + origDefineProperty(object, name, { + configurable: true, + enumerable: false, + value, + writable: true + }); + } else { + object[name] = value; + } + }; + var defineProperties = function(object, map) { + var predicates = arguments.length > 2 ? arguments[2] : {}; + var props = keys(map); + if (hasSymbols) { + props = concat.call(props, Object.getOwnPropertySymbols(map)); + } + for (var i = 0; i < props.length; i += 1) { + defineProperty(object, props[i], map[props[i]], predicates[props[i]]); + } + }; + defineProperties.supportsDescriptors = !!supportsDescriptors; + module2.exports = defineProperties; + } +}); + +// node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/index.js +var require_call_bind = __commonJS({ + "node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var bind = require_function_bind(); + var GetIntrinsic = require_get_intrinsic(); + var $apply = GetIntrinsic("%Function.prototype.apply%"); + var $call = GetIntrinsic("%Function.prototype.call%"); + var $reflectApply = GetIntrinsic("%Reflect.apply%", true) || bind.call($call, $apply); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true); + var $max = GetIntrinsic("%Math.max%"); + if ($defineProperty) { + try { + $defineProperty({}, "a", { value: 1 }); + } catch (e) { + $defineProperty = null; + } + } + module2.exports = function callBind(originalFunction) { + var func = $reflectApply(bind, $call, arguments); + if ($gOPD && $defineProperty) { + var desc = $gOPD(func, "length"); + if (desc.configurable) { + $defineProperty( + func, + "length", + { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } + ); + } + } + return func; + }; + var applyBind = function applyBind2() { + return $reflectApply(bind, $apply, arguments); + }; + if ($defineProperty) { + $defineProperty(module2.exports, "apply", { value: applyBind }); + } else { + module2.exports.apply = applyBind; + } + } +}); + +// node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/callBound.js +var require_callBound = __commonJS({ + "node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/callBound.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBind = require_call_bind(); + var $indexOf = callBind(GetIntrinsic("String.prototype.indexOf")); + module2.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) { + return callBind(intrinsic); + } + return intrinsic; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/implementation.js +var require_implementation3 = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var objectKeys = require_object_keys(); + var hasSymbols = require_shams()(); + var callBound = require_callBound(); + var toObject = Object; + var $push = callBound("Array.prototype.push"); + var $propIsEnumerable = callBound("Object.prototype.propertyIsEnumerable"); + var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; + module2.exports = function assign2(target, source1) { + if (target == null) { + throw new TypeError("target must be an object"); + } + var to = toObject(target); + if (arguments.length === 1) { + return to; + } + for (var s = 1; s < arguments.length; ++s) { + var from = toObject(arguments[s]); + var keys = objectKeys(from); + var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); + if (getSymbols) { + var syms = getSymbols(from); + for (var j = 0; j < syms.length; ++j) { + var key2 = syms[j]; + if ($propIsEnumerable(from, key2)) { + $push(keys, key2); + } + } + } + for (var i = 0; i < keys.length; ++i) { + var nextKey = keys[i]; + if ($propIsEnumerable(from, nextKey)) { + var propValue = from[nextKey]; + to[nextKey] = propValue; + } + } + } + return to; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/polyfill.js +var require_polyfill = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation3(); + var lacksProperEnumerationOrder = function() { + if (!Object.assign) { + return false; + } + var str = "abcdefghijklmnopqrst"; + var letters = str.split(""); + var map = {}; + for (var i = 0; i < letters.length; ++i) { + map[letters[i]] = letters[i]; + } + var obj = Object.assign({}, map); + var actual = ""; + for (var k in obj) { + actual += k; + } + return str !== actual; + }; + var assignHasPendingExceptions = function() { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, "xy"); + } catch (e) { + return thrower[1] === "y"; + } + return false; + }; + module2.exports = function getPolyfill() { + if (!Object.assign) { + return implementation; + } + if (lacksProperEnumerationOrder()) { + return implementation; + } + if (assignHasPendingExceptions()) { + return implementation; + } + return Object.assign; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/shim.js +var require_shim = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var getPolyfill = require_polyfill(); + module2.exports = function shimAssign() { + var polyfill = getPolyfill(); + define2( + Object, + { assign: polyfill }, + { assign: function() { + return Object.assign !== polyfill; + } } + ); + return polyfill; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/index.js +var require_object = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.4/node_modules/object.assign/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var defineProperties = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation3(); + var getPolyfill = require_polyfill(); + var shim = require_shim(); + var polyfill = callBind.apply(getPolyfill()); + var bound = function assign2(target, source1) { + return polyfill(Object, arguments); + }; + defineProperties(bound, { + getPolyfill, + implementation, + shim + }); + module2.exports = bound; + } +}); + +// node_modules/.pnpm/functions-have-names@1.2.3/node_modules/functions-have-names/index.js +var require_functions_have_names = __commonJS({ + "node_modules/.pnpm/functions-have-names@1.2.3/node_modules/functions-have-names/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var functionsHaveNames = function functionsHaveNames2() { + return typeof function f() { + }.name === "string"; + }; + var gOPD = Object.getOwnPropertyDescriptor; + if (gOPD) { + try { + gOPD([], "length"); + } catch (e) { + gOPD = null; + } + } + functionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() { + if (!functionsHaveNames() || !gOPD) { + return false; + } + var desc = gOPD(function() { + }, "name"); + return !!desc && !!desc.configurable; + }; + var $bind = Function.prototype.bind; + functionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() { + return functionsHaveNames() && typeof $bind === "function" && function f() { + }.bind().name !== ""; + }; + module2.exports = functionsHaveNames; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/implementation.js +var require_implementation4 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var functionsHaveConfigurableNames = require_functions_have_names().functionsHaveConfigurableNames(); + var $Object = Object; + var $TypeError = TypeError; + module2.exports = function flags() { + if (this != null && this !== $Object(this)) { + throw new $TypeError("RegExp.prototype.flags getter called on non-object"); + } + var result = ""; + if (this.hasIndices) { + result += "d"; + } + if (this.global) { + result += "g"; + } + if (this.ignoreCase) { + result += "i"; + } + if (this.multiline) { + result += "m"; + } + if (this.dotAll) { + result += "s"; + } + if (this.unicode) { + result += "u"; + } + if (this.unicodeSets) { + result += "v"; + } + if (this.sticky) { + result += "y"; + } + return result; + }; + if (functionsHaveConfigurableNames && Object.defineProperty) { + Object.defineProperty(module2.exports, "name", { value: "get flags" }); + } + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/polyfill.js +var require_polyfill2 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation4(); + var supportsDescriptors = require_define_properties().supportsDescriptors; + var $gOPD = Object.getOwnPropertyDescriptor; + module2.exports = function getPolyfill() { + if (supportsDescriptors && /a/mig.flags === "gim") { + var descriptor = $gOPD(RegExp.prototype, "flags"); + if (descriptor && typeof descriptor.get === "function" && typeof RegExp.prototype.dotAll === "boolean" && typeof RegExp.prototype.hasIndices === "boolean") { + var calls = ""; + var o = {}; + Object.defineProperty(o, "hasIndices", { + get: function() { + calls += "d"; + } + }); + Object.defineProperty(o, "sticky", { + get: function() { + calls += "y"; + } + }); + if (calls === "dy") { + return descriptor.get; + } + } + } + return implementation; + }; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/shim.js +var require_shim2 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var supportsDescriptors = require_define_properties().supportsDescriptors; + var getPolyfill = require_polyfill2(); + var gOPD = Object.getOwnPropertyDescriptor; + var defineProperty = Object.defineProperty; + var TypeErr = TypeError; + var getProto = Object.getPrototypeOf; + var regex2 = /a/; + module2.exports = function shimFlags() { + if (!supportsDescriptors || !getProto) { + throw new TypeErr("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors"); + } + var polyfill = getPolyfill(); + var proto = getProto(regex2); + var descriptor = gOPD(proto, "flags"); + if (!descriptor || descriptor.get !== polyfill) { + defineProperty(proto, "flags", { + configurable: true, + enumerable: false, + get: polyfill + }); + } + return polyfill; + }; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/index.js +var require_regexp_prototype = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.0/node_modules/regexp.prototype.flags/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation4(); + var getPolyfill = require_polyfill2(); + var shim = require_shim2(); + var flagsBound = callBind(getPolyfill()); + define2(flagsBound, { + getPolyfill, + implementation, + shim + }); + module2.exports = flagsBound; + } +}); + +// node_modules/.pnpm/has-tostringtag@1.0.0/node_modules/has-tostringtag/shams.js +var require_shams2 = __commonJS({ + "node_modules/.pnpm/has-tostringtag@1.0.0/node_modules/has-tostringtag/shams.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasSymbols = require_shams(); + module2.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; + }; + } +}); + +// node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js +var require_is_arguments = __commonJS({ + "node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasToStringTag = require_shams2()(); + var callBound = require_callBound(); + var $toString = callBound("Object.prototype.toString"); + var isStandardArguments = function isArguments(value) { + if (hasToStringTag && value && typeof value === "object" && Symbol.toStringTag in value) { + return false; + } + return $toString(value) === "[object Arguments]"; + }; + var isLegacyArguments = function isArguments(value) { + if (isStandardArguments(value)) { + return true; + } + return value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && $toString(value) !== "[object Array]" && $toString(value.callee) === "[object Function]"; + }; + var supportsStandardArguments = function() { + return isStandardArguments(arguments); + }(); + isStandardArguments.isLegacyArguments = isLegacyArguments; + module2.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments; + } +}); + +// (disabled):node_modules/.pnpm/object-inspect@1.12.3/node_modules/object-inspect/util.inspect +var require_util = __commonJS({ + "(disabled):node_modules/.pnpm/object-inspect@1.12.3/node_modules/object-inspect/util.inspect"() { + init_polyfill_buffer(); + } +}); + +// node_modules/.pnpm/object-inspect@1.12.3/node_modules/object-inspect/index.js +var require_object_inspect = __commonJS({ + "node_modules/.pnpm/object-inspect@1.12.3/node_modules/object-inspect/index.js"(exports2, module2) { + init_polyfill_buffer(); + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString2 = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num2, str) { + if (num2 === Infinity || num2 === -Infinity || num2 !== num2 || num2 && num2 > -1e3 && num2 < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num2 === "number") { + var int = num2 < 0 ? -$floor(-num2) : $floor(num2); + if (int !== num2) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + var utilInspect = require_util(); + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + module2.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && (opts.quoteStyle !== "single" && opts.quoteStyle !== "double")) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent2 = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + if (typeof obj === "function" && !isRegExp(obj)) { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += ""; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent2 && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent2) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function(value, key2) { + mapParts.push(inspect(key2, obj, true) + " => " + inspect(value, obj)); + }); + } + return collectionOf("Map", mapSize.call(obj), mapParts, indent2); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function(value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf("Set", setSize.call(obj), setParts, indent2); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag2 = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag2 + "{}"; + } + if (indent2) { + return tag2 + "{" + indentedJoin(ys, indent2) + "}"; + } + return tag2 + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }; + function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === "double" ? '"' : "'"; + return quoteChar + s + quoteChar; + } + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + function isArray(obj) { + return toStr(obj) === "[object Array]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isDate(obj) { + return toStr(obj) === "[object Date]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isError(obj) { + return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isString(obj) { + return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isNumber(obj) { + return toStr(obj) === "[object Number]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) { + } + return false; + } + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) { + } + return false; + } + var hasOwn = Object.prototype.hasOwnProperty || function(key2) { + return key2 in this; + }; + function has(obj, key2) { + return hasOwn.call(obj, key2); + } + function toStr(obj) { + return objectToString2.call(obj); + } + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) { + } + return false; + } + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) { + } + return false; + } + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) { + } + return false; + } + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) { + } + return false; + } + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) { + } + return false; + } + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var s = $replace.call($replace.call(str, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + function markBoxed(str) { + return "Object(" + str + ")"; + } + function weakCollectionOf(type) { + return type + " { ? }"; + } + function collectionOf(type, size, entries, indent2) { + var joinedEntries = indent2 ? indentedJoin(entries, indent2) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === " ") { + baseIndent = " "; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + function indentedJoin(xs, indent2) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent2.prev + indent2.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent2.prev; + } + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key2 in obj) { + if (!has(obj, key2)) { + continue; + } + if (isArr && String(Number(key2)) === key2 && key2 < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key2] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key2)) { + xs.push(inspect(key2, obj) + ": " + inspect(obj[key2], obj)); + } else { + xs.push(key2 + ": " + inspect(obj[key2], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + } +}); + +// node_modules/.pnpm/side-channel@1.0.4/node_modules/side-channel/index.js +var require_side_channel = __commonJS({ + "node_modules/.pnpm/side-channel@1.0.4/node_modules/side-channel/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_callBound(); + var inspect = require_object_inspect(); + var $TypeError = GetIntrinsic("%TypeError%"); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $Map = GetIntrinsic("%Map%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var listGetNode = function(list, key2) { + for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key2) { + prev.next = curr.next; + curr.next = list.next; + list.next = curr; + return curr; + } + } + }; + var listGet = function(objects, key2) { + var node = listGetNode(objects, key2); + return node && node.value; + }; + var listSet = function(objects, key2, value) { + var node = listGetNode(objects, key2); + if (node) { + node.value = value; + } else { + objects.next = { + // eslint-disable-line no-param-reassign + key: key2, + next: objects.next, + value + }; + } + }; + var listHas = function(objects, key2) { + return !!listGetNode(objects, key2); + }; + module2.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function(key2) { + if (!channel.has(key2)) { + throw new $TypeError("Side channel does not contain " + inspect(key2)); + } + }, + get: function(key2) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if ($wm) { + return $weakMapGet($wm, key2); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key2); + } + } else { + if ($o) { + return listGet($o, key2); + } + } + }, + has: function(key2) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if ($wm) { + return $weakMapHas($wm, key2); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key2); + } + } else { + if ($o) { + return listHas($o, key2); + } + } + return false; + }, + set: function(key2, value) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key2, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key2, value); + } else { + if (!$o) { + $o = { key: {}, next: null }; + } + listSet($o, key2, value); + } + } + }; + return channel; + }; + } +}); + +// node_modules/.pnpm/internal-slot@1.0.5/node_modules/internal-slot/index.js +var require_internal_slot = __commonJS({ + "node_modules/.pnpm/internal-slot@1.0.5/node_modules/internal-slot/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var has = require_src2(); + var channel = require_side_channel()(); + var $TypeError = GetIntrinsic("%TypeError%"); + var SLOT = { + assert: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + channel.assert(O); + if (!SLOT.has(O, slot)) { + throw new $TypeError("`" + slot + "` is not present on `O`"); + } + }, + get: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + return slots && slots["$" + slot]; + }, + has: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + return !!slots && has(slots, "$" + slot); + }, + set: function(O, slot, V) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + if (!slots) { + slots = {}; + channel.set(O, slots); + } + slots["$" + slot] = V; + } + }; + if (Object.freeze) { + Object.freeze(SLOT); + } + module2.exports = SLOT; + } +}); + +// node_modules/.pnpm/stop-iteration-iterator@1.0.0/node_modules/stop-iteration-iterator/index.js +var require_stop_iteration_iterator = __commonJS({ + "node_modules/.pnpm/stop-iteration-iterator@1.0.0/node_modules/stop-iteration-iterator/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var SLOT = require_internal_slot(); + var $SyntaxError = SyntaxError; + var $StopIteration = typeof StopIteration === "object" ? StopIteration : null; + module2.exports = function getStopIterationIterator(origIterator) { + if (!$StopIteration) { + throw new $SyntaxError("this environment lacks StopIteration"); + } + SLOT.set(origIterator, "[[Done]]", false); + var siIterator = { + next: function next() { + var iterator = SLOT.get(this, "[[Iterator]]"); + var done = SLOT.get(iterator, "[[Done]]"); + try { + return { + done, + value: done ? void 0 : iterator.next() + }; + } catch (e) { + SLOT.set(iterator, "[[Done]]", true); + if (e !== $StopIteration) { + throw e; + } + return { + done: true, + value: void 0 + }; + } + } + }; + SLOT.set(siIterator, "[[Iterator]]", origIterator); + return siIterator; + }; + } +}); + +// node_modules/.pnpm/isarray@2.0.5/node_modules/isarray/index.js +var require_isarray = __commonJS({ + "node_modules/.pnpm/isarray@2.0.5/node_modules/isarray/index.js"(exports2, module2) { + init_polyfill_buffer(); + var toString = {}.toString; + module2.exports = Array.isArray || function(arr) { + return toString.call(arr) == "[object Array]"; + }; + } +}); + +// node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js +var require_is_string = __commonJS({ + "node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var strValue = String.prototype.valueOf; + var tryStringObject = function tryStringObject2(value) { + try { + strValue.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var strClass = "[object String]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isString(value) { + if (typeof value === "string") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; + }; + } +}); + +// node_modules/.pnpm/is-map@2.0.2/node_modules/is-map/index.js +var require_is_map = __commonJS({ + "node_modules/.pnpm/is-map@2.0.2/node_modules/is-map/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Map) { + exported = function isMap(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isMap(x) { + return false; + }; + } + module2.exports = exported || function isMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x); + if ($setHas) { + try { + $setHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Map; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/is-set@2.0.2/node_modules/is-set/index.js +var require_is_set = __commonJS({ + "node_modules/.pnpm/is-set@2.0.2/node_modules/is-set/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Set) { + exported = function isSet(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$setHas) { + exported = function isSet(x) { + return false; + }; + } + module2.exports = exported || function isSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas.call(x); + if ($mapHas) { + try { + $mapHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Set; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/es-get-iterator@1.1.3/node_modules/es-get-iterator/index.js +var require_es_get_iterator = __commonJS({ + "node_modules/.pnpm/es-get-iterator@1.1.3/node_modules/es-get-iterator/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isArguments = require_is_arguments(); + var getStopIterationIterator = require_stop_iteration_iterator(); + if (require_has_symbols()() || require_shams()()) { + $iterator = Symbol.iterator; + module2.exports = function getIterator3(iterable) { + if (iterable != null && typeof iterable[$iterator] !== "undefined") { + return iterable[$iterator](); + } + if (isArguments(iterable)) { + return Array.prototype[$iterator].call(iterable); + } + }; + } else { + isArray = require_isarray(); + isString = require_is_string(); + GetIntrinsic = require_get_intrinsic(); + $Map = GetIntrinsic("%Map%", true); + $Set = GetIntrinsic("%Set%", true); + callBound = require_callBound(); + $arrayPush = callBound("Array.prototype.push"); + $charCodeAt = callBound("String.prototype.charCodeAt"); + $stringSlice = callBound("String.prototype.slice"); + advanceStringIndex = function advanceStringIndex2(S, index2) { + var length = S.length; + if (index2 + 1 >= length) { + return index2 + 1; + } + var first2 = $charCodeAt(S, index2); + if (first2 < 55296 || first2 > 56319) { + return index2 + 1; + } + var second = $charCodeAt(S, index2 + 1); + if (second < 56320 || second > 57343) { + return index2 + 1; + } + return index2 + 2; + }; + getArrayIterator = function getArrayIterator2(arraylike) { + var i = 0; + return { + next: function next() { + var done = i >= arraylike.length; + var value; + if (!done) { + value = arraylike[i]; + i += 1; + } + return { + done, + value + }; + } + }; + }; + getNonCollectionIterator = function getNonCollectionIterator2(iterable, noPrimordialCollections) { + if (isArray(iterable) || isArguments(iterable)) { + return getArrayIterator(iterable); + } + if (isString(iterable)) { + var i = 0; + return { + next: function next() { + var nextIndex = advanceStringIndex(iterable, i); + var value = $stringSlice(iterable, i, nextIndex); + i = nextIndex; + return { + done: nextIndex > iterable.length, + value + }; + } + }; + } + if (noPrimordialCollections && typeof iterable["_es6-shim iterator_"] !== "undefined") { + return iterable["_es6-shim iterator_"](); + } + }; + if (!$Map && !$Set) { + module2.exports = function getIterator3(iterable) { + if (iterable != null) { + return getNonCollectionIterator(iterable, true); + } + }; + } else { + isMap = require_is_map(); + isSet = require_is_set(); + $mapForEach = callBound("Map.prototype.forEach", true); + $setForEach = callBound("Set.prototype.forEach", true); + if (typeof process === "undefined" || !process.versions || !process.versions.node) { + $mapIterator = callBound("Map.prototype.iterator", true); + $setIterator = callBound("Set.prototype.iterator", true); + } + $mapAtAtIterator = callBound("Map.prototype.@@iterator", true) || callBound("Map.prototype._es6-shim iterator_", true); + $setAtAtIterator = callBound("Set.prototype.@@iterator", true) || callBound("Set.prototype._es6-shim iterator_", true); + getCollectionIterator = function getCollectionIterator2(iterable) { + if (isMap(iterable)) { + if ($mapIterator) { + return getStopIterationIterator($mapIterator(iterable)); + } + if ($mapAtAtIterator) { + return $mapAtAtIterator(iterable); + } + if ($mapForEach) { + var entries = []; + $mapForEach(iterable, function(v, k) { + $arrayPush(entries, [k, v]); + }); + return getArrayIterator(entries); + } + } + if (isSet(iterable)) { + if ($setIterator) { + return getStopIterationIterator($setIterator(iterable)); + } + if ($setAtAtIterator) { + return $setAtAtIterator(iterable); + } + if ($setForEach) { + var values = []; + $setForEach(iterable, function(v) { + $arrayPush(values, v); + }); + return getArrayIterator(values); + } + } + }; + module2.exports = function getIterator3(iterable) { + return getCollectionIterator(iterable) || getNonCollectionIterator(iterable); + }; + } + } + var $iterator; + var isArray; + var isString; + var GetIntrinsic; + var $Map; + var $Set; + var callBound; + var $arrayPush; + var $charCodeAt; + var $stringSlice; + var advanceStringIndex; + var getArrayIterator; + var getNonCollectionIterator; + var isMap; + var isSet; + var $mapForEach; + var $setForEach; + var $mapIterator; + var $setIterator; + var $mapAtAtIterator; + var $setAtAtIterator; + var getCollectionIterator; + } +}); + +// node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/implementation.js +var require_implementation5 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var numberIsNaN = function(value) { + return value !== value; + }; + module2.exports = function is(a, b) { + if (a === 0 && b === 0) { + return 1 / a === 1 / b; + } + if (a === b) { + return true; + } + if (numberIsNaN(a) && numberIsNaN(b)) { + return true; + } + return false; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/polyfill.js +var require_polyfill3 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation5(); + module2.exports = function getPolyfill() { + return typeof Object.is === "function" ? Object.is : implementation; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/shim.js +var require_shim3 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var getPolyfill = require_polyfill3(); + var define2 = require_define_properties(); + module2.exports = function shimObjectIs() { + var polyfill = getPolyfill(); + define2(Object, { is: polyfill }, { + is: function testObjectIs() { + return Object.is !== polyfill; + } + }); + return polyfill; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/index.js +var require_object_is = __commonJS({ + "node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation5(); + var getPolyfill = require_polyfill3(); + var shim = require_shim3(); + var polyfill = callBind(getPolyfill(), Object); + define2(polyfill, { + getPolyfill, + implementation, + shim + }); + module2.exports = polyfill; + } +}); + +// node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js +var require_is_callable = __commonJS({ + "node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var fnToStr = Function.prototype.toString; + var reflectApply = typeof Reflect === "object" && Reflect !== null && Reflect.apply; + var badArrayLike; + var isCallableMarker; + if (typeof reflectApply === "function" && typeof Object.defineProperty === "function") { + try { + badArrayLike = Object.defineProperty({}, "length", { + get: function() { + throw isCallableMarker; + } + }); + isCallableMarker = {}; + reflectApply(function() { + throw 42; + }, null, badArrayLike); + } catch (_) { + if (_ !== isCallableMarker) { + reflectApply = null; + } + } + } else { + reflectApply = null; + } + var constructorRegex = /^\s*class\b/; + var isES6ClassFn = function isES6ClassFunction(value) { + try { + var fnStr = fnToStr.call(value); + return constructorRegex.test(fnStr); + } catch (e) { + return false; + } + }; + var tryFunctionObject = function tryFunctionToStr(value) { + try { + if (isES6ClassFn(value)) { + return false; + } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var objectClass = "[object Object]"; + var fnClass = "[object Function]"; + var genClass = "[object GeneratorFunction]"; + var ddaClass = "[object HTMLAllCollection]"; + var ddaClass2 = "[object HTML document.all class]"; + var ddaClass3 = "[object HTMLCollection]"; + var hasToStringTag = typeof Symbol === "function" && !!Symbol.toStringTag; + var isIE68 = !(0 in [,]); + var isDDA = function isDocumentDotAll() { + return false; + }; + if (typeof document === "object") { + all = document.all; + if (toStr.call(all) === toStr.call(document.all)) { + isDDA = function isDocumentDotAll(value) { + if ((isIE68 || !value) && (typeof value === "undefined" || typeof value === "object")) { + try { + var str = toStr.call(value); + return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value("") == null; + } catch (e) { + } + } + return false; + }; + } + } + var all; + module2.exports = reflectApply ? function isCallable(value) { + if (isDDA(value)) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + try { + reflectApply(value, null, badArrayLike); + } catch (e) { + if (e !== isCallableMarker) { + return false; + } + } + return !isES6ClassFn(value) && tryFunctionObject(value); + } : function isCallable(value) { + if (isDDA(value)) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + if (hasToStringTag) { + return tryFunctionObject(value); + } + if (isES6ClassFn(value)) { + return false; + } + var strClass = toStr.call(value); + if (strClass !== fnClass && strClass !== genClass && !/^\[object HTML/.test(strClass)) { + return false; + } + return tryFunctionObject(value); + }; + } +}); + +// node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js +var require_for_each = __commonJS({ + "node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isCallable = require_is_callable(); + var toStr = Object.prototype.toString; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var forEachArray = function forEachArray2(array, iterator, receiver) { + for (var i = 0, len = array.length; i < len; i++) { + if (hasOwnProperty.call(array, i)) { + if (receiver == null) { + iterator(array[i], i, array); + } else { + iterator.call(receiver, array[i], i, array); + } + } + } + }; + var forEachString = function forEachString2(string, iterator, receiver) { + for (var i = 0, len = string.length; i < len; i++) { + if (receiver == null) { + iterator(string.charAt(i), i, string); + } else { + iterator.call(receiver, string.charAt(i), i, string); + } + } + }; + var forEachObject = function forEachObject2(object, iterator, receiver) { + for (var k in object) { + if (hasOwnProperty.call(object, k)) { + if (receiver == null) { + iterator(object[k], k, object); + } else { + iterator.call(receiver, object[k], k, object); + } + } + } + }; + var forEach2 = function forEach3(list, iterator, thisArg) { + if (!isCallable(iterator)) { + throw new TypeError("iterator must be a function"); + } + var receiver; + if (arguments.length >= 3) { + receiver = thisArg; + } + if (toStr.call(list) === "[object Array]") { + forEachArray(list, iterator, receiver); + } else if (typeof list === "string") { + forEachString(list, iterator, receiver); + } else { + forEachObject(list, iterator, receiver); + } + }; + module2.exports = forEach2; + } +}); + +// node_modules/.pnpm/available-typed-arrays@1.0.5/node_modules/available-typed-arrays/index.js +var require_available_typed_arrays = __commonJS({ + "node_modules/.pnpm/available-typed-arrays@1.0.5/node_modules/available-typed-arrays/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var possibleNames = [ + "BigInt64Array", + "BigUint64Array", + "Float32Array", + "Float64Array", + "Int16Array", + "Int32Array", + "Int8Array", + "Uint16Array", + "Uint32Array", + "Uint8Array", + "Uint8ClampedArray" + ]; + var g = typeof globalThis === "undefined" ? global : globalThis; + module2.exports = function availableTypedArrays() { + var out = []; + for (var i = 0; i < possibleNames.length; i++) { + if (typeof g[possibleNames[i]] === "function") { + out[out.length] = possibleNames[i]; + } + } + return out; + }; + } +}); + +// node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js +var require_gopd = __commonJS({ + "node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + module2.exports = $gOPD; + } +}); + +// node_modules/.pnpm/is-typed-array@1.1.10/node_modules/is-typed-array/index.js +var require_is_typed_array = __commonJS({ + "node_modules/.pnpm/is-typed-array@1.1.10/node_modules/is-typed-array/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var forEach2 = require_for_each(); + var availableTypedArrays = require_available_typed_arrays(); + var callBound = require_callBound(); + var $toString = callBound("Object.prototype.toString"); + var hasToStringTag = require_shams2()(); + var gOPD = require_gopd(); + var g = typeof globalThis === "undefined" ? global : globalThis; + var typedArrays = availableTypedArrays(); + var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array, value) { + for (var i = 0; i < array.length; i += 1) { + if (array[i] === value) { + return i; + } + } + return -1; + }; + var $slice = callBound("String.prototype.slice"); + var toStrTags = {}; + var getPrototypeOf = Object.getPrototypeOf; + if (hasToStringTag && gOPD && getPrototypeOf) { + forEach2(typedArrays, function(typedArray) { + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + }); + } + var tryTypedArrays = function tryAllTypedArrays(value) { + var anyTrue = false; + forEach2(toStrTags, function(getter, typedArray) { + if (!anyTrue) { + try { + anyTrue = getter.call(value) === typedArray; + } catch (e) { + } + } + }); + return anyTrue; + }; + module2.exports = function isTypedArray(value) { + if (!value || typeof value !== "object") { + return false; + } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { + var tag2 = $slice($toString(value), 8, -1); + return $indexOf(typedArrays, tag2) > -1; + } + if (!gOPD) { + return false; + } + return tryTypedArrays(value); + }; + } +}); + +// node_modules/.pnpm/is-array-buffer@3.0.2/node_modules/is-array-buffer/index.js +var require_is_array_buffer = __commonJS({ + "node_modules/.pnpm/is-array-buffer@3.0.2/node_modules/is-array-buffer/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBind = require_call_bind(); + var callBound = require_callBound(); + var GetIntrinsic = require_get_intrinsic(); + var isTypedArray = require_is_typed_array(); + var $ArrayBuffer = GetIntrinsic("ArrayBuffer", true); + var $Float32Array = GetIntrinsic("Float32Array", true); + var $byteLength = callBound("ArrayBuffer.prototype.byteLength", true); + var abSlice = $ArrayBuffer && !$byteLength && new $ArrayBuffer().slice; + var $abSlice = abSlice && callBind(abSlice); + module2.exports = $byteLength || $abSlice ? function isArrayBuffer(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + try { + if ($byteLength) { + $byteLength(obj); + } else { + $abSlice(obj, 0); + } + return true; + } catch (e) { + return false; + } + } : $Float32Array ? function IsArrayBuffer(obj) { + try { + return new $Float32Array(obj).buffer === obj && !isTypedArray(obj); + } catch (e) { + return typeof obj === "object" && e.name === "RangeError"; + } + } : function isArrayBuffer(obj) { + return false; + }; + } +}); + +// node_modules/.pnpm/is-date-object@1.0.5/node_modules/is-date-object/index.js +var require_is_date_object = __commonJS({ + "node_modules/.pnpm/is-date-object@1.0.5/node_modules/is-date-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var getDay = Date.prototype.getDay; + var tryDateObject = function tryDateGetDayCall(value) { + try { + getDay.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var dateClass = "[object Date]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isDateObject(value) { + if (typeof value !== "object" || value === null) { + return false; + } + return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; + }; + } +}); + +// node_modules/.pnpm/is-regex@1.1.4/node_modules/is-regex/index.js +var require_is_regex = __commonJS({ + "node_modules/.pnpm/is-regex@1.1.4/node_modules/is-regex/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var hasToStringTag = require_shams2()(); + var has; + var $exec; + var isRegexMarker; + var badStringifier; + if (hasToStringTag) { + has = callBound("Object.prototype.hasOwnProperty"); + $exec = callBound("RegExp.prototype.exec"); + isRegexMarker = {}; + throwRegexMarker = function() { + throw isRegexMarker; + }; + badStringifier = { + toString: throwRegexMarker, + valueOf: throwRegexMarker + }; + if (typeof Symbol.toPrimitive === "symbol") { + badStringifier[Symbol.toPrimitive] = throwRegexMarker; + } + } + var throwRegexMarker; + var $toString = callBound("Object.prototype.toString"); + var gOPD = Object.getOwnPropertyDescriptor; + var regexClass = "[object RegExp]"; + module2.exports = hasToStringTag ? function isRegex(value) { + if (!value || typeof value !== "object") { + return false; + } + var descriptor = gOPD(value, "lastIndex"); + var hasLastIndexDataProperty = descriptor && has(descriptor, "value"); + if (!hasLastIndexDataProperty) { + return false; + } + try { + $exec(value, badStringifier); + } catch (e) { + return e === isRegexMarker; + } + } : function isRegex(value) { + if (!value || typeof value !== "object" && typeof value !== "function") { + return false; + } + return $toString(value) === regexClass; + }; + } +}); + +// node_modules/.pnpm/is-shared-array-buffer@1.0.2/node_modules/is-shared-array-buffer/index.js +var require_is_shared_array_buffer = __commonJS({ + "node_modules/.pnpm/is-shared-array-buffer@1.0.2/node_modules/is-shared-array-buffer/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $byteLength = callBound("SharedArrayBuffer.prototype.byteLength", true); + module2.exports = $byteLength ? function isSharedArrayBuffer(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + try { + $byteLength(obj); + return true; + } catch (e) { + return false; + } + } : function isSharedArrayBuffer(obj) { + return false; + }; + } +}); + +// node_modules/.pnpm/is-number-object@1.0.7/node_modules/is-number-object/index.js +var require_is_number_object = __commonJS({ + "node_modules/.pnpm/is-number-object@1.0.7/node_modules/is-number-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var numToStr = Number.prototype.toString; + var tryNumberObject = function tryNumberObject2(value) { + try { + numToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var numClass = "[object Number]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isNumberObject(value) { + if (typeof value === "number") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass; + }; + } +}); + +// node_modules/.pnpm/is-boolean-object@1.1.2/node_modules/is-boolean-object/index.js +var require_is_boolean_object = __commonJS({ + "node_modules/.pnpm/is-boolean-object@1.1.2/node_modules/is-boolean-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $boolToStr = callBound("Boolean.prototype.toString"); + var $toString = callBound("Object.prototype.toString"); + var tryBooleanObject = function booleanBrandCheck(value) { + try { + $boolToStr(value); + return true; + } catch (e) { + return false; + } + }; + var boolClass = "[object Boolean]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isBoolean(value) { + if (typeof value === "boolean") { + return true; + } + if (value === null || typeof value !== "object") { + return false; + } + return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass; + }; + } +}); + +// node_modules/.pnpm/is-symbol@1.0.4/node_modules/is-symbol/index.js +var require_is_symbol = __commonJS({ + "node_modules/.pnpm/is-symbol@1.0.4/node_modules/is-symbol/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var toStr = Object.prototype.toString; + var hasSymbols = require_has_symbols()(); + if (hasSymbols) { + symToStr = Symbol.prototype.toString; + symStringRegex = /^Symbol\(.*\)$/; + isSymbolObject = function isRealSymbolObject(value) { + if (typeof value.valueOf() !== "symbol") { + return false; + } + return symStringRegex.test(symToStr.call(value)); + }; + module2.exports = function isSymbol(value) { + if (typeof value === "symbol") { + return true; + } + if (toStr.call(value) !== "[object Symbol]") { + return false; + } + try { + return isSymbolObject(value); + } catch (e) { + return false; + } + }; + } else { + module2.exports = function isSymbol(value) { + return false; + }; + } + var symToStr; + var symStringRegex; + var isSymbolObject; + } +}); + +// node_modules/.pnpm/has-bigints@1.0.2/node_modules/has-bigints/index.js +var require_has_bigints = __commonJS({ + "node_modules/.pnpm/has-bigints@1.0.2/node_modules/has-bigints/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $BigInt = typeof BigInt !== "undefined" && BigInt; + module2.exports = function hasNativeBigInts() { + return typeof $BigInt === "function" && typeof BigInt === "function" && typeof $BigInt(42) === "bigint" && typeof BigInt(42) === "bigint"; + }; + } +}); + +// node_modules/.pnpm/is-bigint@1.0.4/node_modules/is-bigint/index.js +var require_is_bigint = __commonJS({ + "node_modules/.pnpm/is-bigint@1.0.4/node_modules/is-bigint/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasBigInts = require_has_bigints()(); + if (hasBigInts) { + bigIntValueOf = BigInt.prototype.valueOf; + tryBigInt = function tryBigIntObject(value) { + try { + bigIntValueOf.call(value); + return true; + } catch (e) { + } + return false; + }; + module2.exports = function isBigInt(value) { + if (value === null || typeof value === "undefined" || typeof value === "boolean" || typeof value === "string" || typeof value === "number" || typeof value === "symbol" || typeof value === "function") { + return false; + } + if (typeof value === "bigint") { + return true; + } + return tryBigInt(value); + }; + } else { + module2.exports = function isBigInt(value) { + return false; + }; + } + var bigIntValueOf; + var tryBigInt; + } +}); + +// node_modules/.pnpm/which-boxed-primitive@1.0.2/node_modules/which-boxed-primitive/index.js +var require_which_boxed_primitive = __commonJS({ + "node_modules/.pnpm/which-boxed-primitive@1.0.2/node_modules/which-boxed-primitive/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isString = require_is_string(); + var isNumber = require_is_number_object(); + var isBoolean = require_is_boolean_object(); + var isSymbol = require_is_symbol(); + var isBigInt = require_is_bigint(); + module2.exports = function whichBoxedPrimitive(value) { + if (value == null || typeof value !== "object" && typeof value !== "function") { + return null; + } + if (isString(value)) { + return "String"; + } + if (isNumber(value)) { + return "Number"; + } + if (isBoolean(value)) { + return "Boolean"; + } + if (isSymbol(value)) { + return "Symbol"; + } + if (isBigInt(value)) { + return "BigInt"; + } + }; + } +}); + +// node_modules/.pnpm/is-weakmap@2.0.1/node_modules/is-weakmap/index.js +var require_is_weakmap = __commonJS({ + "node_modules/.pnpm/is-weakmap@2.0.1/node_modules/is-weakmap/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $WeakMap = typeof WeakMap === "function" && WeakMap.prototype ? WeakMap : null; + var $WeakSet = typeof WeakSet === "function" && WeakSet.prototype ? WeakSet : null; + var exported; + if (!$WeakMap) { + exported = function isWeakMap(x) { + return false; + }; + } + var $mapHas = $WeakMap ? $WeakMap.prototype.has : null; + var $setHas = $WeakSet ? $WeakSet.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isWeakMap(x) { + return false; + }; + } + module2.exports = exported || function isWeakMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x, $mapHas); + if ($setHas) { + try { + $setHas.call(x, $setHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakMap; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/is-weakset@2.0.2/node_modules/is-weakset/index.js +var require_is_weakset = __commonJS({ + "node_modules/.pnpm/is-weakset@2.0.2/node_modules/is-weakset/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_callBound(); + var $WeakSet = GetIntrinsic("%WeakSet%", true); + var $setHas = callBound("WeakSet.prototype.has", true); + if ($setHas) { + $mapHas = callBound("WeakMap.prototype.has", true); + module2.exports = function isWeakSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas(x, $setHas); + if ($mapHas) { + try { + $mapHas(x, $mapHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakSet; + } catch (e) { + } + return false; + }; + } else { + module2.exports = function isWeakSet(x) { + return false; + }; + } + var $mapHas; + } +}); + +// node_modules/.pnpm/which-collection@1.0.1/node_modules/which-collection/index.js +var require_which_collection = __commonJS({ + "node_modules/.pnpm/which-collection@1.0.1/node_modules/which-collection/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isMap = require_is_map(); + var isSet = require_is_set(); + var isWeakMap = require_is_weakmap(); + var isWeakSet = require_is_weakset(); + module2.exports = function whichCollection(value) { + if (value && typeof value === "object") { + if (isMap(value)) { + return "Map"; + } + if (isSet(value)) { + return "Set"; + } + if (isWeakMap(value)) { + return "WeakMap"; + } + if (isWeakSet(value)) { + return "WeakSet"; + } + } + return false; + }; + } +}); + +// node_modules/.pnpm/which-typed-array@1.1.9/node_modules/which-typed-array/index.js +var require_which_typed_array = __commonJS({ + "node_modules/.pnpm/which-typed-array@1.1.9/node_modules/which-typed-array/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var forEach2 = require_for_each(); + var availableTypedArrays = require_available_typed_arrays(); + var callBound = require_callBound(); + var gOPD = require_gopd(); + var $toString = callBound("Object.prototype.toString"); + var hasToStringTag = require_shams2()(); + var g = typeof globalThis === "undefined" ? global : globalThis; + var typedArrays = availableTypedArrays(); + var $slice = callBound("String.prototype.slice"); + var toStrTags = {}; + var getPrototypeOf = Object.getPrototypeOf; + if (hasToStringTag && gOPD && getPrototypeOf) { + forEach2(typedArrays, function(typedArray) { + if (typeof g[typedArray] === "function") { + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + } + }); + } + var tryTypedArrays = function tryAllTypedArrays(value) { + var foundName = false; + forEach2(toStrTags, function(getter, typedArray) { + if (!foundName) { + try { + var name = getter.call(value); + if (name === typedArray) { + foundName = name; + } + } catch (e) { + } + } + }); + return foundName; + }; + var isTypedArray = require_is_typed_array(); + module2.exports = function whichTypedArray(value) { + if (!isTypedArray(value)) { + return false; + } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { + return $slice($toString(value), 8, -1); + } + return tryTypedArrays(value); + }; + } +}); + +// node_modules/.pnpm/array-buffer-byte-length@1.0.0/node_modules/array-buffer-byte-length/index.js +var require_array_buffer_byte_length = __commonJS({ + "node_modules/.pnpm/array-buffer-byte-length@1.0.0/node_modules/array-buffer-byte-length/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $byteLength = callBound("ArrayBuffer.prototype.byteLength", true); + var isArrayBuffer = require_is_array_buffer(); + module2.exports = function byteLength(ab) { + if (!isArrayBuffer(ab)) { + return NaN; + } + return $byteLength ? $byteLength(ab) : ab.byteLength; + }; + } +}); + +// node_modules/.pnpm/deep-equal@2.2.1/node_modules/deep-equal/index.js +var require_deep_equal = __commonJS({ + "node_modules/.pnpm/deep-equal@2.2.1/node_modules/deep-equal/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var assign2 = require_object(); + var callBound = require_callBound(); + var flags = require_regexp_prototype(); + var GetIntrinsic = require_get_intrinsic(); + var getIterator3 = require_es_get_iterator(); + var getSideChannel = require_side_channel(); + var is = require_object_is(); + var isArguments = require_is_arguments(); + var isArray = require_isarray(); + var isArrayBuffer = require_is_array_buffer(); + var isDate = require_is_date_object(); + var isRegex = require_is_regex(); + var isSharedArrayBuffer = require_is_shared_array_buffer(); + var objectKeys = require_object_keys(); + var whichBoxedPrimitive = require_which_boxed_primitive(); + var whichCollection = require_which_collection(); + var whichTypedArray = require_which_typed_array(); + var byteLength = require_array_buffer_byte_length(); + var sabByteLength = callBound("SharedArrayBuffer.prototype.byteLength", true); + var $getTime = callBound("Date.prototype.getTime"); + var gPO = Object.getPrototypeOf; + var $objToString = callBound("Object.prototype.toString"); + var $Set = GetIntrinsic("%Set%", true); + var $mapHas = callBound("Map.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSize = callBound("Map.prototype.size", true); + var $setAdd = callBound("Set.prototype.add", true); + var $setDelete = callBound("Set.prototype.delete", true); + var $setHas = callBound("Set.prototype.has", true); + var $setSize = callBound("Set.prototype.size", true); + function setHasEqualElement(set, val1, opts, channel) { + var i = getIterator3(set); + var result; + while ((result = i.next()) && !result.done) { + if (internalDeepEqual(val1, result.value, opts, channel)) { + $setDelete(set, result.value); + return true; + } + } + return false; + } + function findLooseMatchingPrimitives(prim) { + if (typeof prim === "undefined") { + return null; + } + if (typeof prim === "object") { + return void 0; + } + if (typeof prim === "symbol") { + return false; + } + if (typeof prim === "string" || typeof prim === "number") { + return +prim === +prim; + } + return true; + } + function mapMightHaveLoosePrim(a, b, prim, item, opts, channel) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + var curB = $mapGet(b, altValue); + var looseOpts = assign2({}, opts, { strict: false }); + if (typeof curB === "undefined" && !$mapHas(b, altValue) || !internalDeepEqual(item, curB, looseOpts, channel)) { + return false; + } + return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel); + } + function setMightHaveLoosePrim(a, b, prim) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + return $setHas(b, altValue) && !$setHas(a, altValue); + } + function mapHasEqualEntry(set, map, key1, item1, opts, channel) { + var i = getIterator3(set); + var result; + var key2; + while ((result = i.next()) && !result.done) { + key2 = result.value; + if ( + // eslint-disable-next-line no-use-before-define + internalDeepEqual(key1, key2, opts, channel) && internalDeepEqual(item1, $mapGet(map, key2), opts, channel) + ) { + $setDelete(set, key2); + return true; + } + } + return false; + } + function internalDeepEqual(actual, expected, options, channel) { + var opts = options || {}; + if (opts.strict ? is(actual, expected) : actual === expected) { + return true; + } + var actualBoxed = whichBoxedPrimitive(actual); + var expectedBoxed = whichBoxedPrimitive(expected); + if (actualBoxed !== expectedBoxed) { + return false; + } + if (!actual || !expected || typeof actual !== "object" && typeof expected !== "object") { + return opts.strict ? is(actual, expected) : actual == expected; + } + var hasActual = channel.has(actual); + var hasExpected = channel.has(expected); + var sentinel; + if (hasActual && hasExpected) { + if (channel.get(actual) === channel.get(expected)) { + return true; + } + } else { + sentinel = {}; + } + if (!hasActual) { + channel.set(actual, sentinel); + } + if (!hasExpected) { + channel.set(expected, sentinel); + } + return objEquiv(actual, expected, opts, channel); + } + function isBuffer(x) { + if (!x || typeof x !== "object" || typeof x.length !== "number") { + return false; + } + if (typeof x.copy !== "function" || typeof x.slice !== "function") { + return false; + } + if (x.length > 0 && typeof x[0] !== "number") { + return false; + } + return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x)); + } + function setEquiv(a, b, opts, channel) { + if ($setSize(a) !== $setSize(b)) { + return false; + } + var iA = getIterator3(a); + var iB = getIterator3(b); + var resultA; + var resultB; + var set; + while ((resultA = iA.next()) && !resultA.done) { + if (resultA.value && typeof resultA.value === "object") { + if (!set) { + set = new $Set(); + } + $setAdd(set, resultA.value); + } else if (!$setHas(b, resultA.value)) { + if (opts.strict) { + return false; + } + if (!setMightHaveLoosePrim(a, b, resultA.value)) { + return false; + } + if (!set) { + set = new $Set(); + } + $setAdd(set, resultA.value); + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + if (resultB.value && typeof resultB.value === "object") { + if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } else if (!opts.strict && !$setHas(a, resultB.value) && !setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function mapEquiv(a, b, opts, channel) { + if ($mapSize(a) !== $mapSize(b)) { + return false; + } + var iA = getIterator3(a); + var iB = getIterator3(b); + var resultA; + var resultB; + var set; + var key2; + var item1; + var item2; + while ((resultA = iA.next()) && !resultA.done) { + key2 = resultA.value[0]; + item1 = resultA.value[1]; + if (key2 && typeof key2 === "object") { + if (!set) { + set = new $Set(); + } + $setAdd(set, key2); + } else { + item2 = $mapGet(b, key2); + if (typeof item2 === "undefined" && !$mapHas(b, key2) || !internalDeepEqual(item1, item2, opts, channel)) { + if (opts.strict) { + return false; + } + if (!mapMightHaveLoosePrim(a, b, key2, item1, opts, channel)) { + return false; + } + if (!set) { + set = new $Set(); + } + $setAdd(set, key2); + } + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + key2 = resultB.value[0]; + item2 = resultB.value[1]; + if (key2 && typeof key2 === "object") { + if (!mapHasEqualEntry(set, a, key2, item2, opts, channel)) { + return false; + } + } else if (!opts.strict && (!a.has(key2) || !internalDeepEqual($mapGet(a, key2), item2, opts, channel)) && !mapHasEqualEntry(set, a, key2, item2, assign2({}, opts, { strict: false }), channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function objEquiv(a, b, opts, channel) { + var i, key2; + if (typeof a !== typeof b) { + return false; + } + if (a == null || b == null) { + return false; + } + if ($objToString(a) !== $objToString(b)) { + return false; + } + if (isArguments(a) !== isArguments(b)) { + return false; + } + var aIsArray = isArray(a); + var bIsArray = isArray(b); + if (aIsArray !== bIsArray) { + return false; + } + var aIsError = a instanceof Error; + var bIsError = b instanceof Error; + if (aIsError !== bIsError) { + return false; + } + if (aIsError || bIsError) { + if (a.name !== b.name || a.message !== b.message) { + return false; + } + } + var aIsRegex = isRegex(a); + var bIsRegex = isRegex(b); + if (aIsRegex !== bIsRegex) { + return false; + } + if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) { + return false; + } + var aIsDate = isDate(a); + var bIsDate = isDate(b); + if (aIsDate !== bIsDate) { + return false; + } + if (aIsDate || bIsDate) { + if ($getTime(a) !== $getTime(b)) { + return false; + } + } + if (opts.strict && gPO && gPO(a) !== gPO(b)) { + return false; + } + var aWhich = whichTypedArray(a); + var bWhich = whichTypedArray(b); + if ((aWhich || bWhich) && aWhich !== bWhich) { + return false; + } + var aIsBuffer = isBuffer(a); + var bIsBuffer = isBuffer(b); + if (aIsBuffer !== bIsBuffer) { + return false; + } + if (aIsBuffer || bIsBuffer) { + if (a.length !== b.length) { + return false; + } + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; + } + var aIsArrayBuffer = isArrayBuffer(a); + var bIsArrayBuffer = isArrayBuffer(b); + if (aIsArrayBuffer !== bIsArrayBuffer) { + return false; + } + if (aIsArrayBuffer || bIsArrayBuffer) { + if (byteLength(a) !== byteLength(b)) { + return false; + } + return typeof Uint8Array === "function" && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel); + } + var aIsSAB = isSharedArrayBuffer(a); + var bIsSAB = isSharedArrayBuffer(b); + if (aIsSAB !== bIsSAB) { + return false; + } + if (aIsSAB || bIsSAB) { + if (sabByteLength(a) !== sabByteLength(b)) { + return false; + } + return typeof Uint8Array === "function" && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel); + } + if (typeof a !== typeof b) { + return false; + } + var ka = objectKeys(a); + var kb = objectKeys(b); + if (ka.length !== kb.length) { + return false; + } + ka.sort(); + kb.sort(); + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) { + return false; + } + } + for (i = ka.length - 1; i >= 0; i--) { + key2 = ka[i]; + if (!internalDeepEqual(a[key2], b[key2], opts, channel)) { + return false; + } + } + var aCollection = whichCollection(a); + var bCollection = whichCollection(b); + if (aCollection !== bCollection) { + return false; + } + if (aCollection === "Set" || bCollection === "Set") { + return setEquiv(a, b, opts, channel); + } + if (aCollection === "Map") { + return mapEquiv(a, b, opts, channel); + } + return true; + } + module2.exports = function deepEqual2(a, b, opts) { + return internalDeepEqual(a, b, opts, getSideChannel()); + }; + } +}); + +// node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256/src/sha256.js +var require_sha256 = __commonJS({ + "node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256/src/sha256.js"(exports, module) { + init_polyfill_buffer(); + (function() { + "use strict"; + var ERROR = "input is invalid type"; + var WINDOW = typeof window === "object"; + var root = WINDOW ? window : {}; + if (root.JS_SHA256_NO_WINDOW) { + WINDOW = false; + } + var WEB_WORKER = !WINDOW && typeof self === "object"; + var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; + if (NODE_JS) { + root = global; + } else if (WEB_WORKER) { + root = self; + } + var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === "object" && module.exports; + var AMD = typeof define === "function" && define.amd; + var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; + var HEX_CHARS = "0123456789abcdef".split(""); + var EXTRA = [-2147483648, 8388608, 32768, 128]; + var SHIFT = [24, 16, 8, 0]; + var K = [ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 + ]; + var OUTPUT_TYPES = ["hex", "array", "digest", "arrayBuffer"]; + var blocks = []; + if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) { + Array.isArray = function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + } + if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { + ArrayBuffer.isView = function(obj) { + return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; + }; + } + var createOutputMethod = function(outputType, is2242) { + return function(message) { + return new Sha256(is2242, true).update(message)[outputType](); + }; + }; + var createMethod = function(is2242) { + var method2 = createOutputMethod("hex", is2242); + if (NODE_JS) { + method2 = nodeWrap(method2, is2242); + } + method2.create = function() { + return new Sha256(is2242); + }; + method2.update = function(message) { + return method2.create().update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createOutputMethod(type, is2242); + } + return method2; + }; + var nodeWrap = function(method, is224) { + var crypto = eval("require('crypto')"); + var Buffer = eval("require('buffer').Buffer"); + var algorithm = is224 ? "sha224" : "sha256"; + var nodeMethod = function(message) { + if (typeof message === "string") { + return crypto.createHash(algorithm).update(message, "utf8").digest("hex"); + } else { + if (message === null || message === void 0) { + throw new Error(ERROR); + } else if (message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } + } + if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) { + return crypto.createHash(algorithm).update(new Buffer(message)).digest("hex"); + } else { + return method(message); + } + }; + return nodeMethod; + }; + var createHmacOutputMethod = function(outputType, is2242) { + return function(key2, message) { + return new HmacSha256(key2, is2242, true).update(message)[outputType](); + }; + }; + var createHmacMethod = function(is2242) { + var method2 = createHmacOutputMethod("hex", is2242); + method2.create = function(key2) { + return new HmacSha256(key2, is2242); + }; + method2.update = function(key2, message) { + return method2.create(key2).update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createHmacOutputMethod(type, is2242); + } + return method2; + }; + function Sha256(is2242, sharedMemory) { + if (sharedMemory) { + blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + this.blocks = blocks; + } else { + this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + if (is2242) { + this.h0 = 3238371032; + this.h1 = 914150663; + this.h2 = 812702999; + this.h3 = 4144912697; + this.h4 = 4290775857; + this.h5 = 1750603025; + this.h6 = 1694076839; + this.h7 = 3204075428; + } else { + this.h0 = 1779033703; + this.h1 = 3144134277; + this.h2 = 1013904242; + this.h3 = 2773480762; + this.h4 = 1359893119; + this.h5 = 2600822924; + this.h6 = 528734635; + this.h7 = 1541459225; + } + this.block = this.start = this.bytes = this.hBytes = 0; + this.finalized = this.hashed = false; + this.first = true; + this.is224 = is2242; + } + Sha256.prototype.update = function(message) { + if (this.finalized) { + return; + } + var notString, type = typeof message; + if (type !== "string") { + if (type === "object") { + if (message === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } else if (!Array.isArray(message)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + notString = true; + } + var code, index2 = 0, i, length = message.length, blocks2 = this.blocks; + while (index2 < length) { + if (this.hashed) { + this.hashed = false; + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + if (notString) { + for (i = this.start; index2 < length && i < 64; ++index2) { + blocks2[i >> 2] |= message[index2] << SHIFT[i++ & 3]; + } + } else { + for (i = this.start; index2 < length && i < 64; ++index2) { + code = message.charCodeAt(index2); + if (code < 128) { + blocks2[i >> 2] |= code << SHIFT[i++ & 3]; + } else if (code < 2048) { + blocks2[i >> 2] |= (192 | code >> 6) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else if (code < 55296 || code >= 57344) { + blocks2[i >> 2] |= (224 | code >> 12) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else { + code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index2) & 1023); + blocks2[i >> 2] |= (240 | code >> 18) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 12 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } + } + } + this.lastByteIndex = i; + this.bytes += i - this.start; + if (i >= 64) { + this.block = blocks2[16]; + this.start = i - 64; + this.hash(); + this.hashed = true; + } else { + this.start = i; + } + } + if (this.bytes > 4294967295) { + this.hBytes += this.bytes / 4294967296 << 0; + this.bytes = this.bytes % 4294967296; + } + return this; + }; + Sha256.prototype.finalize = function() { + if (this.finalized) { + return; + } + this.finalized = true; + var blocks2 = this.blocks, i = this.lastByteIndex; + blocks2[16] = this.block; + blocks2[i >> 2] |= EXTRA[i & 3]; + this.block = blocks2[16]; + if (i >= 56) { + if (!this.hashed) { + this.hash(); + } + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + blocks2[14] = this.hBytes << 3 | this.bytes >>> 29; + blocks2[15] = this.bytes << 3; + this.hash(); + }; + Sha256.prototype.hash = function() { + var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6, h = this.h7, blocks2 = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc; + for (j = 16; j < 64; ++j) { + t1 = blocks2[j - 15]; + s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3; + t1 = blocks2[j - 2]; + s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10; + blocks2[j] = blocks2[j - 16] + s0 + blocks2[j - 7] + s1 << 0; + } + bc = b & c; + for (j = 0; j < 64; j += 4) { + if (this.first) { + if (this.is224) { + ab = 300032; + t1 = blocks2[0] - 1413257819; + h = t1 - 150054599 << 0; + d = t1 + 24177077 << 0; + } else { + ab = 704751109; + t1 = blocks2[0] - 210244248; + h = t1 - 1521486534 << 0; + d = t1 + 143694565 << 0; + } + this.first = false; + } else { + s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); + s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); + ab = a & b; + maj = ab ^ a & c ^ bc; + ch = e & f ^ ~e & g; + t1 = h + s1 + ch + K[j] + blocks2[j]; + t2 = s0 + maj; + h = d + t1 << 0; + d = t1 + t2 << 0; + } + s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10); + s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7); + da = d & a; + maj = da ^ d & b ^ ab; + ch = h & e ^ ~h & f; + t1 = g + s1 + ch + K[j + 1] + blocks2[j + 1]; + t2 = s0 + maj; + g = c + t1 << 0; + c = t1 + t2 << 0; + s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10); + s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7); + cd = c & d; + maj = cd ^ c & a ^ da; + ch = g & h ^ ~g & e; + t1 = f + s1 + ch + K[j + 2] + blocks2[j + 2]; + t2 = s0 + maj; + f = b + t1 << 0; + b = t1 + t2 << 0; + s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10); + s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7); + bc = b & c; + maj = bc ^ b & d ^ cd; + ch = f & g ^ ~f & h; + t1 = e + s1 + ch + K[j + 3] + blocks2[j + 3]; + t2 = s0 + maj; + e = a + t1 << 0; + a = t1 + t2 << 0; + } + this.h0 = this.h0 + a << 0; + this.h1 = this.h1 + b << 0; + this.h2 = this.h2 + c << 0; + this.h3 = this.h3 + d << 0; + this.h4 = this.h4 + e << 0; + this.h5 = this.h5 + f << 0; + this.h6 = this.h6 + g << 0; + this.h7 = this.h7 + h << 0; + }; + Sha256.prototype.hex = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var hex = HEX_CHARS[h0 >> 28 & 15] + HEX_CHARS[h0 >> 24 & 15] + HEX_CHARS[h0 >> 20 & 15] + HEX_CHARS[h0 >> 16 & 15] + HEX_CHARS[h0 >> 12 & 15] + HEX_CHARS[h0 >> 8 & 15] + HEX_CHARS[h0 >> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h1 >> 28 & 15] + HEX_CHARS[h1 >> 24 & 15] + HEX_CHARS[h1 >> 20 & 15] + HEX_CHARS[h1 >> 16 & 15] + HEX_CHARS[h1 >> 12 & 15] + HEX_CHARS[h1 >> 8 & 15] + HEX_CHARS[h1 >> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h2 >> 28 & 15] + HEX_CHARS[h2 >> 24 & 15] + HEX_CHARS[h2 >> 20 & 15] + HEX_CHARS[h2 >> 16 & 15] + HEX_CHARS[h2 >> 12 & 15] + HEX_CHARS[h2 >> 8 & 15] + HEX_CHARS[h2 >> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h3 >> 28 & 15] + HEX_CHARS[h3 >> 24 & 15] + HEX_CHARS[h3 >> 20 & 15] + HEX_CHARS[h3 >> 16 & 15] + HEX_CHARS[h3 >> 12 & 15] + HEX_CHARS[h3 >> 8 & 15] + HEX_CHARS[h3 >> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h4 >> 28 & 15] + HEX_CHARS[h4 >> 24 & 15] + HEX_CHARS[h4 >> 20 & 15] + HEX_CHARS[h4 >> 16 & 15] + HEX_CHARS[h4 >> 12 & 15] + HEX_CHARS[h4 >> 8 & 15] + HEX_CHARS[h4 >> 4 & 15] + HEX_CHARS[h4 & 15] + HEX_CHARS[h5 >> 28 & 15] + HEX_CHARS[h5 >> 24 & 15] + HEX_CHARS[h5 >> 20 & 15] + HEX_CHARS[h5 >> 16 & 15] + HEX_CHARS[h5 >> 12 & 15] + HEX_CHARS[h5 >> 8 & 15] + HEX_CHARS[h5 >> 4 & 15] + HEX_CHARS[h5 & 15] + HEX_CHARS[h6 >> 28 & 15] + HEX_CHARS[h6 >> 24 & 15] + HEX_CHARS[h6 >> 20 & 15] + HEX_CHARS[h6 >> 16 & 15] + HEX_CHARS[h6 >> 12 & 15] + HEX_CHARS[h6 >> 8 & 15] + HEX_CHARS[h6 >> 4 & 15] + HEX_CHARS[h6 & 15]; + if (!this.is224) { + hex += HEX_CHARS[h7 >> 28 & 15] + HEX_CHARS[h7 >> 24 & 15] + HEX_CHARS[h7 >> 20 & 15] + HEX_CHARS[h7 >> 16 & 15] + HEX_CHARS[h7 >> 12 & 15] + HEX_CHARS[h7 >> 8 & 15] + HEX_CHARS[h7 >> 4 & 15] + HEX_CHARS[h7 & 15]; + } + return hex; + }; + Sha256.prototype.toString = Sha256.prototype.hex; + Sha256.prototype.digest = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var arr = [ + h0 >> 24 & 255, + h0 >> 16 & 255, + h0 >> 8 & 255, + h0 & 255, + h1 >> 24 & 255, + h1 >> 16 & 255, + h1 >> 8 & 255, + h1 & 255, + h2 >> 24 & 255, + h2 >> 16 & 255, + h2 >> 8 & 255, + h2 & 255, + h3 >> 24 & 255, + h3 >> 16 & 255, + h3 >> 8 & 255, + h3 & 255, + h4 >> 24 & 255, + h4 >> 16 & 255, + h4 >> 8 & 255, + h4 & 255, + h5 >> 24 & 255, + h5 >> 16 & 255, + h5 >> 8 & 255, + h5 & 255, + h6 >> 24 & 255, + h6 >> 16 & 255, + h6 >> 8 & 255, + h6 & 255 + ]; + if (!this.is224) { + arr.push(h7 >> 24 & 255, h7 >> 16 & 255, h7 >> 8 & 255, h7 & 255); + } + return arr; + }; + Sha256.prototype.array = Sha256.prototype.digest; + Sha256.prototype.arrayBuffer = function() { + this.finalize(); + var buffer2 = new ArrayBuffer(this.is224 ? 28 : 32); + var dataView = new DataView(buffer2); + dataView.setUint32(0, this.h0); + dataView.setUint32(4, this.h1); + dataView.setUint32(8, this.h2); + dataView.setUint32(12, this.h3); + dataView.setUint32(16, this.h4); + dataView.setUint32(20, this.h5); + dataView.setUint32(24, this.h6); + if (!this.is224) { + dataView.setUint32(28, this.h7); + } + return buffer2; + }; + function HmacSha256(key2, is2242, sharedMemory) { + var i, type = typeof key2; + if (type === "string") { + var bytes = [], length = key2.length, index2 = 0, code; + for (i = 0; i < length; ++i) { + code = key2.charCodeAt(i); + if (code < 128) { + bytes[index2++] = code; + } else if (code < 2048) { + bytes[index2++] = 192 | code >> 6; + bytes[index2++] = 128 | code & 63; + } else if (code < 55296 || code >= 57344) { + bytes[index2++] = 224 | code >> 12; + bytes[index2++] = 128 | code >> 6 & 63; + bytes[index2++] = 128 | code & 63; + } else { + code = 65536 + ((code & 1023) << 10 | key2.charCodeAt(++i) & 1023); + bytes[index2++] = 240 | code >> 18; + bytes[index2++] = 128 | code >> 12 & 63; + bytes[index2++] = 128 | code >> 6 & 63; + bytes[index2++] = 128 | code & 63; + } + } + key2 = bytes; + } else { + if (type === "object") { + if (key2 === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && key2.constructor === ArrayBuffer) { + key2 = new Uint8Array(key2); + } else if (!Array.isArray(key2)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(key2)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + } + if (key2.length > 64) { + key2 = new Sha256(is2242, true).update(key2).array(); + } + var oKeyPad = [], iKeyPad = []; + for (i = 0; i < 64; ++i) { + var b = key2[i] || 0; + oKeyPad[i] = 92 ^ b; + iKeyPad[i] = 54 ^ b; + } + Sha256.call(this, is2242, sharedMemory); + this.update(iKeyPad); + this.oKeyPad = oKeyPad; + this.inner = true; + this.sharedMemory = sharedMemory; + } + HmacSha256.prototype = new Sha256(); + HmacSha256.prototype.finalize = function() { + Sha256.prototype.finalize.call(this); + if (this.inner) { + this.inner = false; + var innerHash = this.array(); + Sha256.call(this, this.is224, this.sharedMemory); + this.update(this.oKeyPad); + this.update(innerHash); + Sha256.prototype.finalize.call(this); + } + }; + var exports = createMethod(); + exports.sha256 = exports; + exports.sha224 = createMethod(true); + exports.sha256.hmac = createHmacMethod(); + exports.sha224.hmac = createHmacMethod(true); + if (COMMON_JS) { + module.exports = exports; + } else { + root.sha256 = exports.sha256; + root.sha224 = exports.sha224; + if (AMD) { + define(function() { + return exports; + }); + } + } + })(); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/compiler.js +var require_compiler = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/compiler.js"(exports2) { + init_polyfill_buffer(); + (function(Hogan4) { + var rIsWhitespace = /\S/, rQuot = /\"/g, rNewline = /\n/g, rCr = /\r/g, rSlash = /\\/g, rLineSep = /\u2028/, rParagraphSep = /\u2029/; + Hogan4.tags = { + "#": 1, + "^": 2, + "<": 3, + "$": 4, + "/": 5, + "!": 6, + ">": 7, + "=": 8, + "_v": 9, + "{": 10, + "&": 11, + "_t": 12 + }; + Hogan4.scan = function scan(text2, delimiters) { + var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag2 = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; + function addBuf() { + if (buf.length > 0) { + tokens.push({ tag: "_t", text: new String(buf) }); + buf = ""; + } + } + function lineIsWhitespace() { + var isAllWhitespace = true; + for (var j = lineStart; j < tokens.length; j++) { + isAllWhitespace = Hogan4.tags[tokens[j].tag] < Hogan4.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; + if (!isAllWhitespace) { + return false; + } + } + return isAllWhitespace; + } + function filterLine(haveSeenTag, noNewLine) { + addBuf(); + if (haveSeenTag && lineIsWhitespace()) { + for (var j = lineStart, next; j < tokens.length; j++) { + if (tokens[j].text) { + if ((next = tokens[j + 1]) && next.tag == ">") { + next.indent = tokens[j].text.toString(); + } + tokens.splice(j, 1); + } + } + } else if (!noNewLine) { + tokens.push({ tag: "\n" }); + } + seenTag = false; + lineStart = tokens.length; + } + function changeDelimiters(text3, index2) { + var close = "=" + ctag, closeIndex = text3.indexOf(close, index2), delimiters2 = trim( + text3.substring(text3.indexOf("=", index2) + 1, closeIndex) + ).split(" "); + otag = delimiters2[0]; + ctag = delimiters2[delimiters2.length - 1]; + return closeIndex + close.length - 1; + } + if (delimiters) { + delimiters = delimiters.split(" "); + otag = delimiters[0]; + ctag = delimiters[1]; + } + for (i = 0; i < len; i++) { + if (state == IN_TEXT) { + if (tagChange(otag, text2, i)) { + --i; + addBuf(); + state = IN_TAG_TYPE; + } else { + if (text2.charAt(i) == "\n") { + filterLine(seenTag); + } else { + buf += text2.charAt(i); + } + } + } else if (state == IN_TAG_TYPE) { + i += otag.length - 1; + tag2 = Hogan4.tags[text2.charAt(i + 1)]; + tagType = tag2 ? text2.charAt(i + 1) : "_v"; + if (tagType == "=") { + i = changeDelimiters(text2, i); + state = IN_TEXT; + } else { + if (tag2) { + i++; + } + state = IN_TAG; + } + seenTag = i; + } else { + if (tagChange(ctag, text2, i)) { + tokens.push({ + tag: tagType, + n: trim(buf), + otag, + ctag, + i: tagType == "/" ? seenTag - otag.length : i + ctag.length + }); + buf = ""; + i += ctag.length - 1; + state = IN_TEXT; + if (tagType == "{") { + if (ctag == "}}") { + i++; + } else { + cleanTripleStache(tokens[tokens.length - 1]); + } + } + } else { + buf += text2.charAt(i); + } + } + } + filterLine(seenTag, true); + return tokens; + }; + function cleanTripleStache(token) { + if (token.n.substr(token.n.length - 1) === "}") { + token.n = token.n.substring(0, token.n.length - 1); + } + } + function trim(s) { + if (s.trim) { + return s.trim(); + } + return s.replace(/^\s*|\s*$/g, ""); + } + function tagChange(tag2, text2, index2) { + if (text2.charAt(index2) != tag2.charAt(0)) { + return false; + } + for (var i = 1, l = tag2.length; i < l; i++) { + if (text2.charAt(index2 + i) != tag2.charAt(i)) { + return false; + } + } + return true; + } + var allowedInSuper = { "_t": true, "\n": true, "$": true, "/": true }; + function buildTree(tokens, kind, stack, customTags) { + var instructions = [], opener = null, tail = null, token = null; + tail = stack[stack.length - 1]; + while (tokens.length > 0) { + token = tokens.shift(); + if (tail && tail.tag == "<" && !(token.tag in allowedInSuper)) { + throw new Error("Illegal content in < super tag."); + } + if (Hogan4.tags[token.tag] <= Hogan4.tags["$"] || isOpener(token, customTags)) { + stack.push(token); + token.nodes = buildTree(tokens, token.tag, stack, customTags); + } else if (token.tag == "/") { + if (stack.length === 0) { + throw new Error("Closing tag without opener: /" + token.n); + } + opener = stack.pop(); + if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) { + throw new Error("Nesting error: " + opener.n + " vs. " + token.n); + } + opener.end = token.i; + return instructions; + } else if (token.tag == "\n") { + token.last = tokens.length == 0 || tokens[0].tag == "\n"; + } + instructions.push(token); + } + if (stack.length > 0) { + throw new Error("missing closing tag: " + stack.pop().n); + } + return instructions; + } + function isOpener(token, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].o == token.n) { + token.tag = "#"; + return true; + } + } + } + function isCloser(close, open, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].c == close && tags[i].o == open) { + return true; + } + } + } + function stringifySubstitutions(obj) { + var items = []; + for (var key2 in obj) { + items.push('"' + esc(key2) + '": function(c,p,t,i) {' + obj[key2] + "}"); + } + return "{ " + items.join(",") + " }"; + } + function stringifyPartials(codeObj) { + var partials = []; + for (var key2 in codeObj.partials) { + partials.push('"' + esc(key2) + '":{name:"' + esc(codeObj.partials[key2].name) + '", ' + stringifyPartials(codeObj.partials[key2]) + "}"); + } + return "partials: {" + partials.join(",") + "}, subs: " + stringifySubstitutions(codeObj.subs); + } + Hogan4.stringify = function(codeObj, text2, options) { + return "{code: function (c,p,i) { " + Hogan4.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; + }; + var serialNo = 0; + Hogan4.generate = function(tree, text2, options) { + serialNo = 0; + var context = { code: "", subs: {}, partials: {} }; + Hogan4.walk(tree, context); + if (options.asString) { + return this.stringify(context, text2, options); + } + return this.makeTemplate(context, text2, options); + }; + Hogan4.wrapMain = function(code) { + return 'var t=this;t.b(i=i||"");' + code + "return t.fl();"; + }; + Hogan4.template = Hogan4.Template; + Hogan4.makeTemplate = function(codeObj, text2, options) { + var template = this.makePartials(codeObj); + template.code = new Function("c", "p", "i", this.wrapMain(codeObj.code)); + return new this.template(template, text2, this, options); + }; + Hogan4.makePartials = function(codeObj) { + var key2, template = { subs: {}, partials: codeObj.partials, name: codeObj.name }; + for (key2 in template.partials) { + template.partials[key2] = this.makePartials(template.partials[key2]); + } + for (key2 in codeObj.subs) { + template.subs[key2] = new Function("c", "p", "t", "i", codeObj.subs[key2]); + } + return template; + }; + function esc(s) { + return s.replace(rSlash, "\\\\").replace(rQuot, '\\"').replace(rNewline, "\\n").replace(rCr, "\\r").replace(rLineSep, "\\u2028").replace(rParagraphSep, "\\u2029"); + } + function chooseMethod(s) { + return ~s.indexOf(".") ? "d" : "f"; + } + function createPartial(node, context) { + var prefix = "<" + (context.prefix || ""); + var sym = prefix + node.n + serialNo++; + context.partials[sym] = { name: node.n, partials: {} }; + context.code += 't.b(t.rp("' + esc(sym) + '",c,p,"' + (node.indent || "") + '"));'; + return sym; + } + Hogan4.codegen = { + "#": function(node, context) { + context.code += "if(t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,0,' + node.i + "," + node.end + ',"' + node.otag + " " + node.ctag + '")){t.rs(c,p,function(c,p,t){'; + Hogan4.walk(node.nodes, context); + context.code += "});c.pop();}"; + }, + "^": function(node, context) { + context.code += "if(!t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,1,0,0,"")){'; + Hogan4.walk(node.nodes, context); + context.code += "};"; + }, + ">": createPartial, + "<": function(node, context) { + var ctx = { partials: {}, code: "", subs: {}, inPartial: true }; + Hogan4.walk(node.nodes, ctx); + var template = context.partials[createPartial(node, context)]; + template.subs = ctx.subs; + template.partials = ctx.partials; + }, + "$": function(node, context) { + var ctx = { subs: {}, code: "", partials: context.partials, prefix: node.n }; + Hogan4.walk(node.nodes, ctx); + context.subs[node.n] = ctx.code; + if (!context.inPartial) { + context.code += 't.sub("' + esc(node.n) + '",c,p,i);'; + } + }, + "\n": function(node, context) { + context.code += write('"\\n"' + (node.last ? "" : " + i")); + }, + "_v": function(node, context) { + context.code += "t.b(t.v(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + }, + "_t": function(node, context) { + context.code += write('"' + esc(node.text) + '"'); + }, + "{": tripleStache, + "&": tripleStache + }; + function tripleStache(node, context) { + context.code += "t.b(t.t(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + } + function write(s) { + return "t.b(" + s + ");"; + } + Hogan4.walk = function(nodelist, context) { + var func; + for (var i = 0, l = nodelist.length; i < l; i++) { + func = Hogan4.codegen[nodelist[i].tag]; + func && func(nodelist[i], context); + } + return context; + }; + Hogan4.parse = function(tokens, text2, options) { + options = options || {}; + return buildTree(tokens, "", [], options.sectionTags || []); + }; + Hogan4.cache = {}; + Hogan4.cacheKey = function(text2, options) { + return [text2, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join("||"); + }; + Hogan4.compile = function(text2, options) { + options = options || {}; + var key2 = Hogan4.cacheKey(text2, options); + var template = this.cache[key2]; + if (template) { + var partials = template.partials; + for (var name in partials) { + delete partials[name].instance; + } + return template; + } + template = this.generate(this.parse(this.scan(text2, options.delimiters), text2, options), text2, options); + return this.cache[key2] = template; + }; + })(typeof exports2 !== "undefined" ? exports2 : Hogan); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/template.js +var require_template = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/template.js"(exports2) { + init_polyfill_buffer(); + var Hogan4 = {}; + (function(Hogan5) { + Hogan5.Template = function(codeObj, text2, compiler, options) { + codeObj = codeObj || {}; + this.r = codeObj.code || this.r; + this.c = compiler; + this.options = options || {}; + this.text = text2 || ""; + this.partials = codeObj.partials || {}; + this.subs = codeObj.subs || {}; + this.buf = ""; + }; + Hogan5.Template.prototype = { + // render: replaced by generated code. + r: function(context, partials, indent2) { + return ""; + }, + // variable escaping + v: hoganEscape, + // triple stache + t: coerceToString, + render: function render2(context, partials, indent2) { + return this.ri([context], partials || {}, indent2); + }, + // render internal -- a hook for overrides that catches partials too + ri: function(context, partials, indent2) { + return this.r(context, partials, indent2); + }, + // ensurePartial + ep: function(symbol, partials) { + var partial = this.partials[symbol]; + var template = partials[partial.name]; + if (partial.instance && partial.base == template) { + return partial.instance; + } + if (typeof template == "string") { + if (!this.c) { + throw new Error("No compiler available."); + } + template = this.c.compile(template, this.options); + } + if (!template) { + return null; + } + this.partials[symbol].base = template; + if (partial.subs) { + if (!partials.stackText) + partials.stackText = {}; + for (key in partial.subs) { + if (!partials.stackText[key]) { + partials.stackText[key] = this.activeSub !== void 0 && partials.stackText[this.activeSub] ? partials.stackText[this.activeSub] : this.text; + } + } + template = createSpecializedPartial( + template, + partial.subs, + partial.partials, + this.stackSubs, + this.stackPartials, + partials.stackText + ); + } + this.partials[symbol].instance = template; + return template; + }, + // tries to find a partial in the current scope and render it + rp: function(symbol, context, partials, indent2) { + var partial = this.ep(symbol, partials); + if (!partial) { + return ""; + } + return partial.ri(context, partials, indent2); + }, + // render a section + rs: function(context, partials, section) { + var tail = context[context.length - 1]; + if (!isArray(tail)) { + section(context, partials, this); + return; + } + for (var i = 0; i < tail.length; i++) { + context.push(tail[i]); + section(context, partials, this); + context.pop(); + } + }, + // maybe start a section + s: function(val, ctx, partials, inverted, start, end, tags) { + var pass; + if (isArray(val) && val.length === 0) { + return false; + } + if (typeof val == "function") { + val = this.ms(val, ctx, partials, inverted, start, end, tags); + } + pass = !!val; + if (!inverted && pass && ctx) { + ctx.push(typeof val == "object" ? val : ctx[ctx.length - 1]); + } + return pass; + }, + // find values with dotted names + d: function(key2, ctx, partials, returnFound) { + var found, names = key2.split("."), val = this.f(names[0], ctx, partials, returnFound), doModelGet = this.options.modelGet, cx = null; + if (key2 === "." && isArray(ctx[ctx.length - 2])) { + val = ctx[ctx.length - 1]; + } else { + for (var i = 1; i < names.length; i++) { + found = findInScope(names[i], val, doModelGet); + if (found !== void 0) { + cx = val; + val = found; + } else { + val = ""; + } + } + } + if (returnFound && !val) { + return false; + } + if (!returnFound && typeof val == "function") { + ctx.push(cx); + val = this.mv(val, ctx, partials); + ctx.pop(); + } + return val; + }, + // find values with normal names + f: function(key2, ctx, partials, returnFound) { + var val = false, v = null, found = false, doModelGet = this.options.modelGet; + for (var i = ctx.length - 1; i >= 0; i--) { + v = ctx[i]; + val = findInScope(key2, v, doModelGet); + if (val !== void 0) { + found = true; + break; + } + } + if (!found) { + return returnFound ? false : ""; + } + if (!returnFound && typeof val == "function") { + val = this.mv(val, ctx, partials); + } + return val; + }, + // higher order templates + ls: function(func, cx, partials, text2, tags) { + var oldTags = this.options.delimiters; + this.options.delimiters = tags; + this.b(this.ct(coerceToString(func.call(cx, text2)), cx, partials)); + this.options.delimiters = oldTags; + return false; + }, + // compile text + ct: function(text2, cx, partials) { + if (this.options.disableLambda) { + throw new Error("Lambda features disabled."); + } + return this.c.compile(text2, this.options).render(cx, partials); + }, + // template result buffering + b: function(s) { + this.buf += s; + }, + fl: function() { + var r = this.buf; + this.buf = ""; + return r; + }, + // method replace section + ms: function(func, ctx, partials, inverted, start, end, tags) { + var textSource, cx = ctx[ctx.length - 1], result = func.call(cx); + if (typeof result == "function") { + if (inverted) { + return true; + } else { + textSource = this.activeSub && this.subsText && this.subsText[this.activeSub] ? this.subsText[this.activeSub] : this.text; + return this.ls(result, cx, partials, textSource.substring(start, end), tags); + } + } + return result; + }, + // method replace variable + mv: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + var result = func.call(cx); + if (typeof result == "function") { + return this.ct(coerceToString(result.call(cx)), cx, partials); + } + return result; + }, + sub: function(name, context, partials, indent2) { + var f = this.subs[name]; + if (f) { + this.activeSub = name; + f(context, partials, this, indent2); + this.activeSub = false; + } + } + }; + function findInScope(key2, scope, doModelGet) { + var val; + if (scope && typeof scope == "object") { + if (scope[key2] !== void 0) { + val = scope[key2]; + } else if (doModelGet && scope.get && typeof scope.get == "function") { + val = scope.get(key2); + } + } + return val; + } + function createSpecializedPartial(instance10, subs, partials, stackSubs, stackPartials, stackText) { + function PartialTemplate() { + } + ; + PartialTemplate.prototype = instance10; + function Substitutions() { + } + ; + Substitutions.prototype = instance10.subs; + var key2; + var partial = new PartialTemplate(); + partial.subs = new Substitutions(); + partial.subsText = {}; + partial.buf = ""; + stackSubs = stackSubs || {}; + partial.stackSubs = stackSubs; + partial.subsText = stackText; + for (key2 in subs) { + if (!stackSubs[key2]) + stackSubs[key2] = subs[key2]; + } + for (key2 in stackSubs) { + partial.subs[key2] = stackSubs[key2]; + } + stackPartials = stackPartials || {}; + partial.stackPartials = stackPartials; + for (key2 in partials) { + if (!stackPartials[key2]) + stackPartials[key2] = partials[key2]; + } + for (key2 in stackPartials) { + partial.partials[key2] = stackPartials[key2]; + } + return partial; + } + var rAmp = /&/g, rLt = //g, rApos = /\'/g, rQuot = /\"/g, hChars = /[&<>\"\']/; + function coerceToString(val) { + return String(val === null || val === void 0 ? "" : val); + } + function hoganEscape(str) { + str = coerceToString(str); + return hChars.test(str) ? str.replace(rAmp, "&").replace(rLt, "<").replace(rGt, ">").replace(rApos, "'").replace(rQuot, """) : str; + } + var isArray = Array.isArray || function(a) { + return Object.prototype.toString.call(a) === "[object Array]"; + }; + })(typeof exports2 !== "undefined" ? exports2 : Hogan4); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/hogan.js +var require_hogan = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/hogan.js"(exports2, module2) { + init_polyfill_buffer(); + var Hogan4 = require_compiler(); + Hogan4.Template = require_template().Template; + Hogan4.template = Hogan4.Template; + module2.exports = Hogan4; + } +}); + +// node_modules/.pnpm/feather-icons@4.29.0/node_modules/feather-icons/dist/feather.js +var require_feather = __commonJS({ + "node_modules/.pnpm/feather-icons@4.29.0/node_modules/feather-icons/dist/feather.js"(exports2, module2) { + init_polyfill_buffer(); + (function webpackUniversalModuleDefinition(root2, factory) { + if (typeof exports2 === "object" && typeof module2 === "object") + module2.exports = factory(); + else if (typeof define === "function" && define.amd) + define([], factory); + else if (typeof exports2 === "object") + exports2["feather"] = factory(); + else + root2["feather"] = factory(); + })(typeof self !== "undefined" ? self : exports2, function() { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module3 = installedModules[moduleId] = { + /******/ + i: moduleId, + /******/ + l: false, + /******/ + exports: {} + /******/ + }; + modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); + module3.l = true; + return module3.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports3, name, getter) { + if (!__webpack_require__.o(exports3, name)) { + Object.defineProperty(exports3, name, { + /******/ + configurable: false, + /******/ + enumerable: true, + /******/ + get: getter + /******/ + }); + } + }; + __webpack_require__.r = function(exports3) { + Object.defineProperty(exports3, "__esModule", { value: true }); + }; + __webpack_require__.n = function(module3) { + var getter = module3 && module3.__esModule ? ( + /******/ + function getDefault() { + return module3["default"]; + } + ) : ( + /******/ + function getModuleExports() { + return module3; + } + ); + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }({ + /***/ + "./dist/icons.json": ( + /*!*************************!*\ + !*** ./dist/icons.json ***! + \*************************/ + /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, aperture, archive, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, award, bar-chart-2, bar-chart, battery-charging, battery, bell-off, bell, bluetooth, bold, book-open, book, bookmark, box, briefcase, calendar, camera-off, camera, cast, check-circle, check-square, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, chrome, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-off, cloud-rain, cloud-snow, cloud, code, codepen, codesandbox, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, divide-circle, divide-square, divide, dollar-sign, download-cloud, download, dribbble, droplet, edit-2, edit-3, edit, external-link, eye-off, eye, facebook, fast-forward, feather, figma, file-minus, file-plus, file-text, file, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, grid, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, info, instagram, italic, key, layers, layout, life-buoy, link-2, link, linkedin, list, loader, lock, log-in, log-out, mail, map-pin, map, maximize-2, maximize, meh, menu, message-circle, message-square, mic-off, mic, minimize-2, minimize, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation-2, navigation, octagon, package, paperclip, pause-circle, pause, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, pie-chart, play-circle, play, plus-circle, plus-square, plus, pocket, power, printer, radio, refresh-ccw, refresh-cw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, server, settings, share-2, share, shield-off, shield, shopping-bag, shopping-cart, shuffle, sidebar, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, square, star, stop-circle, sun, sunrise, sunset, table, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash-2, trash, trello, trending-down, trending-up, triangle, truck, tv, twitch, twitter, type, umbrella, underline, unlock, upload-cloud, upload, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume-1, volume-2, volume-x, volume, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ + /***/ + function(module3) { + module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; + } + ), + /***/ + "./node_modules/classnames/dedupe.js": ( + /*!*******************************************!*\ + !*** ./node_modules/classnames/dedupe.js ***! + \*******************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var classNames = function() { + function StorageObject() { + } + StorageObject.prototype = /* @__PURE__ */ Object.create(null); + function _parseArray(resultSet, array) { + var length = array.length; + for (var i = 0; i < length; ++i) { + _parse(resultSet, array[i]); + } + } + var hasOwn = {}.hasOwnProperty; + function _parseNumber(resultSet, num2) { + resultSet[num2] = true; + } + function _parseObject(resultSet, object) { + for (var k in object) { + if (hasOwn.call(object, k)) { + resultSet[k] = !!object[k]; + } + } + } + var SPACE = /\s+/; + function _parseString(resultSet, str) { + var array = str.split(SPACE); + var length = array.length; + for (var i = 0; i < length; ++i) { + resultSet[array[i]] = true; + } + } + function _parse(resultSet, arg) { + if (!arg) + return; + var argType = typeof arg; + if (argType === "string") { + _parseString(resultSet, arg); + } else if (Array.isArray(arg)) { + _parseArray(resultSet, arg); + } else if (argType === "object") { + _parseObject(resultSet, arg); + } else if (argType === "number") { + _parseNumber(resultSet, arg); + } + } + function _classNames() { + var len = arguments.length; + var args = Array(len); + for (var i = 0; i < len; i++) { + args[i] = arguments[i]; + } + var classSet = new StorageObject(); + _parseArray(classSet, args); + var list = []; + for (var k in classSet) { + if (classSet[k]) { + list.push(k); + } + } + return list.join(" "); + } + return _classNames; + }(); + if (typeof module3 !== "undefined" && module3.exports) { + module3.exports = classNames; + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return classNames; + }.apply(exports3, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + } + })(); + } + ), + /***/ + "./node_modules/core-js/es/array/from.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/es/array/from.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + __webpack_require__( + /*! ../../modules/es.string.iterator */ + "./node_modules/core-js/modules/es.string.iterator.js" + ); + __webpack_require__( + /*! ../../modules/es.array.from */ + "./node_modules/core-js/modules/es.array.from.js" + ); + var path2 = __webpack_require__( + /*! ../../internals/path */ + "./node_modules/core-js/internals/path.js" + ); + module3.exports = path2.Array.from; + } + ), + /***/ + "./node_modules/core-js/internals/a-function.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/a-function.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + if (typeof it != "function") { + throw TypeError(String(it) + " is not a function"); + } + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/an-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/an-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + module3.exports = function(it) { + if (!isObject(it)) { + throw TypeError(String(it) + " is not an object"); + } + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/array-from.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/array-from.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var bind = __webpack_require__( + /*! ../internals/bind-context */ + "./node_modules/core-js/internals/bind-context.js" + ); + var toObject = __webpack_require__( + /*! ../internals/to-object */ + "./node_modules/core-js/internals/to-object.js" + ); + var callWithSafeIterationClosing = __webpack_require__( + /*! ../internals/call-with-safe-iteration-closing */ + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js" + ); + var isArrayIteratorMethod = __webpack_require__( + /*! ../internals/is-array-iterator-method */ + "./node_modules/core-js/internals/is-array-iterator-method.js" + ); + var toLength = __webpack_require__( + /*! ../internals/to-length */ + "./node_modules/core-js/internals/to-length.js" + ); + var createProperty = __webpack_require__( + /*! ../internals/create-property */ + "./node_modules/core-js/internals/create-property.js" + ); + var getIteratorMethod = __webpack_require__( + /*! ../internals/get-iterator-method */ + "./node_modules/core-js/internals/get-iterator-method.js" + ); + module3.exports = function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == "function" ? this : Array; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : void 0; + var mapping = mapfn !== void 0; + var index2 = 0; + var iteratorMethod = getIteratorMethod(O); + var length, result, step, iterator; + if (mapping) + mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2); + if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = iteratorMethod.call(O); + result = new C(); + for (; !(step = iterator.next()).done; index2++) { + createProperty( + result, + index2, + mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index2], true) : step.value + ); + } + } else { + length = toLength(O.length); + result = new C(length); + for (; length > index2; index2++) { + createProperty(result, index2, mapping ? mapfn(O[index2], index2) : O[index2]); + } + } + result.length = index2; + return result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/array-includes.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/array-includes.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var toLength = __webpack_require__( + /*! ../internals/to-length */ + "./node_modules/core-js/internals/to-length.js" + ); + var toAbsoluteIndex = __webpack_require__( + /*! ../internals/to-absolute-index */ + "./node_modules/core-js/internals/to-absolute-index.js" + ); + module3.exports = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index2 = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index2) { + value = O[index2++]; + if (value != value) + return true; + } + else + for (; length > index2; index2++) + if (IS_INCLUDES || index2 in O) { + if (O[index2] === el) + return IS_INCLUDES || index2 || 0; + } + return !IS_INCLUDES && -1; + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/bind-context.js": ( + /*!********************************************************!*\ + !*** ./node_modules/core-js/internals/bind-context.js ***! + \********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var aFunction = __webpack_require__( + /*! ../internals/a-function */ + "./node_modules/core-js/internals/a-function.js" + ); + module3.exports = function(fn, that, length) { + aFunction(fn); + if (that === void 0) + return fn; + switch (length) { + case 0: + return function() { + return fn.call(that); + }; + case 1: + return function(a) { + return fn.call(that, a); + }; + case 2: + return function(a, b) { + return fn.call(that, a, b); + }; + case 3: + return function(a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function() { + return fn.apply(that, arguments); + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": ( + /*!****************************************************************************!*\ + !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! + \****************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + module3.exports = function(iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + var returnMethod = iterator["return"]; + if (returnMethod !== void 0) + anObject(returnMethod.call(iterator)); + throw error; + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/check-correctness-of-iteration.js": ( + /*!**************************************************************************!*\ + !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! + \**************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var SAFE_CLOSING = false; + try { + var called = 0; + var iteratorWithReturn = { + next: function() { + return { done: !!called++ }; + }, + "return": function() { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function() { + return this; + }; + Array.from(iteratorWithReturn, function() { + throw 2; + }); + } catch (error) { + } + module3.exports = function(exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) + return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function() { + return { + next: function() { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { + } + return ITERATION_SUPPORT; + }; + } + ), + /***/ + "./node_modules/core-js/internals/classof-raw.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/classof-raw.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var toString = {}.toString; + module3.exports = function(it) { + return toString.call(it).slice(8, -1); + }; + } + ), + /***/ + "./node_modules/core-js/internals/classof.js": ( + /*!***************************************************!*\ + !*** ./node_modules/core-js/internals/classof.js ***! + \***************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var classofRaw = __webpack_require__( + /*! ../internals/classof-raw */ + "./node_modules/core-js/internals/classof-raw.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var CORRECT_ARGUMENTS = classofRaw(function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key2) { + try { + return it[key2]; + } catch (error) { + } + }; + module3.exports = function(it) { + var O, tag2, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag2 = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag2 : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/copy-constructor-properties.js": ( + /*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! + \***********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var ownKeys = __webpack_require__( + /*! ../internals/own-keys */ + "./node_modules/core-js/internals/own-keys.js" + ); + var getOwnPropertyDescriptorModule = __webpack_require__( + /*! ../internals/object-get-own-property-descriptor */ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + module3.exports = function(target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key2 = keys[i]; + if (!has(target, key2)) + defineProperty(target, key2, getOwnPropertyDescriptor(source, key2)); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/correct-prototype-getter.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !fails(function() { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + } + ), + /***/ + "./node_modules/core-js/internals/create-iterator-constructor.js": ( + /*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! + \***********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var IteratorPrototype = __webpack_require__( + /*! ../internals/iterators-core */ + "./node_modules/core-js/internals/iterators-core.js" + ).IteratorPrototype; + var create = __webpack_require__( + /*! ../internals/object-create */ + "./node_modules/core-js/internals/object-create.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + var setToStringTag = __webpack_require__( + /*! ../internals/set-to-string-tag */ + "./node_modules/core-js/internals/set-to-string-tag.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var returnThis = function() { + return this; + }; + module3.exports = function(IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + " Iterator"; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; + }; + } + ), + /***/ + "./node_modules/core-js/internals/create-property-descriptor.js": ( + /*!**********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! + \**********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/create-property.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/create-property.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + module3.exports = function(object, key2, value) { + var propertyKey = toPrimitive(key2); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; + }; + } + ), + /***/ + "./node_modules/core-js/internals/define-iterator.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/define-iterator.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var $ = __webpack_require__( + /*! ../internals/export */ + "./node_modules/core-js/internals/export.js" + ); + var createIteratorConstructor = __webpack_require__( + /*! ../internals/create-iterator-constructor */ + "./node_modules/core-js/internals/create-iterator-constructor.js" + ); + var getPrototypeOf = __webpack_require__( + /*! ../internals/object-get-prototype-of */ + "./node_modules/core-js/internals/object-get-prototype-of.js" + ); + var setPrototypeOf = __webpack_require__( + /*! ../internals/object-set-prototype-of */ + "./node_modules/core-js/internals/object-set-prototype-of.js" + ); + var setToStringTag = __webpack_require__( + /*! ../internals/set-to-string-tag */ + "./node_modules/core-js/internals/set-to-string-tag.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var redefine = __webpack_require__( + /*! ../internals/redefine */ + "./node_modules/core-js/internals/redefine.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var IteratorsCore = __webpack_require__( + /*! ../internals/iterators-core */ + "./node_modules/core-js/internals/iterators-core.js" + ); + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR = wellKnownSymbol("iterator"); + var KEYS = "keys"; + var VALUES = "values"; + var ENTRIES = "entries"; + var returnThis = function() { + return this; + }; + module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + var getIterationMethod = function(KIND) { + if (KIND === DEFAULT && defaultIterator) + return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) + return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + return function() { + return new IteratorConstructor(this); + }; + }; + var TO_STRING_TAG = NAME + " Iterator"; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") { + hide(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) + Iterators[TO_STRING_TAG] = returnThis; + } + } + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { + return nativeIterator.call(this); + }; + } + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + hide(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) + for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } + else + $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + return methods; + }; + } + ), + /***/ + "./node_modules/core-js/internals/descriptors.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/descriptors.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !fails(function() { + return Object.defineProperty({}, "a", { get: function() { + return 7; + } }).a != 7; + }); + } + ), + /***/ + "./node_modules/core-js/internals/document-create-element.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/document-create-element.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var isObject = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var document2 = global2.document; + var exist = isObject(document2) && isObject(document2.createElement); + module3.exports = function(it) { + return exist ? document2.createElement(it) : {}; + }; + } + ), + /***/ + "./node_modules/core-js/internals/enum-bug-keys.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + } + ), + /***/ + "./node_modules/core-js/internals/export.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/export.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var getOwnPropertyDescriptor = __webpack_require__( + /*! ../internals/object-get-own-property-descriptor */ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js" + ).f; + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var redefine = __webpack_require__( + /*! ../internals/redefine */ + "./node_modules/core-js/internals/redefine.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var copyConstructorProperties = __webpack_require__( + /*! ../internals/copy-constructor-properties */ + "./node_modules/core-js/internals/copy-constructor-properties.js" + ); + var isForced = __webpack_require__( + /*! ../internals/is-forced */ + "./node_modules/core-js/internals/is-forced.js" + ); + module3.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key2, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) + for (key2 in source) { + sourceProperty = source[key2]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key2); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key2]; + FORCED = isForced(GLOBAL ? key2 : TARGET + (STATIC ? "." : "#") + key2, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty === typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + hide(sourceProperty, "sham", true); + } + redefine(target, key2, sourceProperty, options); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/fails.js": ( + /*!*************************************************!*\ + !*** ./node_modules/core-js/internals/fails.js ***! + \*************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/function-to-string.js": ( + /*!**************************************************************!*\ + !*** ./node_modules/core-js/internals/function-to-string.js ***! + \**************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + module3.exports = shared("native-function-to-string", Function.toString); + } + ), + /***/ + "./node_modules/core-js/internals/get-iterator-method.js": ( + /*!***************************************************************!*\ + !*** ./node_modules/core-js/internals/get-iterator-method.js ***! + \***************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var classof = __webpack_require__( + /*! ../internals/classof */ + "./node_modules/core-js/internals/classof.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + module3.exports = function(it) { + if (it != void 0) + return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; + }; + } + ), + /***/ + "./node_modules/core-js/internals/global.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/global.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + (function(global2) { + var O = "object"; + var check = function(it) { + return it && it.Math == Math && it; + }; + module3.exports = // eslint-disable-next-line no-undef + check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global2 == O && global2) || // eslint-disable-next-line no-new-func + Function("return this")(); + }).call(this, __webpack_require__( + /*! ./../../webpack/buildin/global.js */ + "./node_modules/webpack/buildin/global.js" + )); + } + ), + /***/ + "./node_modules/core-js/internals/has.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/internals/has.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var hasOwnProperty = {}.hasOwnProperty; + module3.exports = function(it, key2) { + return hasOwnProperty.call(it, key2); + }; + } + ), + /***/ + "./node_modules/core-js/internals/hidden-keys.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/hidden-keys.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = {}; + } + ), + /***/ + "./node_modules/core-js/internals/hide.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/hide.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + module3.exports = DESCRIPTORS ? function(object, key2, value) { + return definePropertyModule.f(object, key2, createPropertyDescriptor(1, value)); + } : function(object, key2, value) { + object[key2] = value; + return object; + }; + } + ), + /***/ + "./node_modules/core-js/internals/html.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/html.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var document2 = global2.document; + module3.exports = document2 && document2.documentElement; + } + ), + /***/ + "./node_modules/core-js/internals/ie8-dom-define.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var createElement = __webpack_require__( + /*! ../internals/document-create-element */ + "./node_modules/core-js/internals/document-create-element.js" + ); + module3.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + } + ), + /***/ + "./node_modules/core-js/internals/indexed-object.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/indexed-object.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var classof = __webpack_require__( + /*! ../internals/classof-raw */ + "./node_modules/core-js/internals/classof-raw.js" + ); + var split = "".split; + module3.exports = fails(function() { + return !Object("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split.call(it, "") : Object(it); + } : Object; + } + ), + /***/ + "./node_modules/core-js/internals/internal-state.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/internal-state.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var NATIVE_WEAK_MAP = __webpack_require__( + /*! ../internals/native-weak-map */ + "./node_modules/core-js/internals/native-weak-map.js" + ); + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var isObject = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var objectHas = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var WeakMap2 = global2.WeakMap; + var set, get, has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP) { + var store = new WeakMap2(); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function(it, metadata) { + wmset.call(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget.call(store, it) || {}; + }; + has = function(it) { + return wmhas.call(store, it); + }; + } else { + var STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + hide(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return objectHas(it, STATE); + }; + } + module3.exports = { + set, + get, + has, + enforce, + getterFor + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-array-iterator-method.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module3.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-forced.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-forced.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize2(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; + }; + var normalize2 = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module3.exports = isForced; + } + ), + /***/ + "./node_modules/core-js/internals/is-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + return typeof it === "object" ? it !== null : typeof it === "function"; + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-pure.js": ( + /*!***************************************************!*\ + !*** ./node_modules/core-js/internals/is-pure.js ***! + \***************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = false; + } + ), + /***/ + "./node_modules/core-js/internals/iterators-core.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/iterators-core.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var getPrototypeOf = __webpack_require__( + /*! ../internals/object-get-prototype-of */ + "./node_modules/core-js/internals/object-get-prototype-of.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var BUGGY_SAFARI_ITERATORS = false; + var returnThis = function() { + return this; + }; + var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + if ([].keys) { + arrayIterator = [].keys(); + if (!("next" in arrayIterator)) + BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) + IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } + } + if (IteratorPrototype == void 0) + IteratorPrototype = {}; + if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) + hide(IteratorPrototype, ITERATOR, returnThis); + module3.exports = { + IteratorPrototype, + BUGGY_SAFARI_ITERATORS + }; + } + ), + /***/ + "./node_modules/core-js/internals/iterators.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/iterators.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = {}; + } + ), + /***/ + "./node_modules/core-js/internals/native-symbol.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/native-symbol.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { + return !String(Symbol()); + }); + } + ), + /***/ + "./node_modules/core-js/internals/native-weak-map.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/native-weak-map.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var nativeFunctionToString = __webpack_require__( + /*! ../internals/function-to-string */ + "./node_modules/core-js/internals/function-to-string.js" + ); + var WeakMap2 = global2.WeakMap; + module3.exports = typeof WeakMap2 === "function" && /native code/.test(nativeFunctionToString.call(WeakMap2)); + } + ), + /***/ + "./node_modules/core-js/internals/object-create.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/object-create.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var defineProperties = __webpack_require__( + /*! ../internals/object-define-properties */ + "./node_modules/core-js/internals/object-define-properties.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var html2 = __webpack_require__( + /*! ../internals/html */ + "./node_modules/core-js/internals/html.js" + ); + var documentCreateElement = __webpack_require__( + /*! ../internals/document-create-element */ + "./node_modules/core-js/internals/document-create-element.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var IE_PROTO = sharedKey("IE_PROTO"); + var PROTOTYPE = "prototype"; + var Empty = function() { + }; + var createDict = function() { + var iframe = documentCreateElement("iframe"); + var length = enumBugKeys.length; + var lt = "<"; + var script = "script"; + var gt = ">"; + var js = "java" + script + ":"; + var iframeDocument; + iframe.style.display = "none"; + html2.appendChild(iframe); + iframe.src = String(js); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (length--) + delete createDict[PROTOTYPE][enumBugKeys[length]]; + return createDict(); + }; + module3.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else + result = createDict(); + return Properties === void 0 ? result : defineProperties(result, Properties); + }; + hiddenKeys[IE_PROTO] = true; + } + ), + /***/ + "./node_modules/core-js/internals/object-define-properties.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-properties.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var objectKeys = __webpack_require__( + /*! ../internals/object-keys */ + "./node_modules/core-js/internals/object-keys.js" + ); + module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var i = 0; + var key2; + while (length > i) + definePropertyModule.f(O, key2 = keys[i++], Properties[key2]); + return O; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-define-property.js": ( + /*!******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-property.js ***! + \******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var IE8_DOM_DEFINE = __webpack_require__( + /*! ../internals/ie8-dom-define */ + "./node_modules/core-js/internals/ie8-dom-define.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var nativeDefineProperty = Object.defineProperty; + exports3.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) + throw TypeError("Accessors not supported"); + if ("value" in Attributes) + O[P] = Attributes.value; + return O; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js": ( + /*!******************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! + \******************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var propertyIsEnumerableModule = __webpack_require__( + /*! ../internals/object-property-is-enumerable */ + "./node_modules/core-js/internals/object-property-is-enumerable.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var IE8_DOM_DEFINE = __webpack_require__( + /*! ../internals/ie8-dom-define */ + "./node_modules/core-js/internals/ie8-dom-define.js" + ); + var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports3.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) + try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (has(O, P)) + return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-names.js": ( + /*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! + \*************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var internalObjectKeys = __webpack_require__( + /*! ../internals/object-keys-internal */ + "./node_modules/core-js/internals/object-keys-internal.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports3.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-symbols.js": ( + /*!***************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! + \***************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + exports3.f = Object.getOwnPropertySymbols; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-prototype-of.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var toObject = __webpack_require__( + /*! ../internals/to-object */ + "./node_modules/core-js/internals/to-object.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var CORRECT_PROTOTYPE_GETTER = __webpack_require__( + /*! ../internals/correct-prototype-getter */ + "./node_modules/core-js/internals/correct-prototype-getter.js" + ); + var IE_PROTO = sharedKey("IE_PROTO"); + var ObjectPrototype = Object.prototype; + module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) { + O = toObject(O); + if (has(O, IE_PROTO)) + return O[IE_PROTO]; + if (typeof O.constructor == "function" && O instanceof O.constructor) { + return O.constructor.prototype; + } + return O instanceof Object ? ObjectPrototype : null; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-keys-internal.js": ( + /*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys-internal.js ***! + \****************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var arrayIncludes = __webpack_require__( + /*! ../internals/array-includes */ + "./node_modules/core-js/internals/array-includes.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var arrayIndexOf = arrayIncludes(false); + module3.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key2; + for (key2 in O) + !has(hiddenKeys, key2) && has(O, key2) && result.push(key2); + while (names.length > i) + if (has(O, key2 = names[i++])) { + ~arrayIndexOf(result, key2) || result.push(key2); + } + return result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-keys.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var internalObjectKeys = __webpack_require__( + /*! ../internals/object-keys-internal */ + "./node_modules/core-js/internals/object-keys-internal.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + module3.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-property-is-enumerable.js": ( + /*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! + \*************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var nativePropertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + exports3.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : nativePropertyIsEnumerable; + } + ), + /***/ + "./node_modules/core-js/internals/object-set-prototype-of.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var validateSetPrototypeOfArguments = __webpack_require__( + /*! ../internals/validate-set-prototype-of-arguments */ + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js" + ); + module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { + var correctSetter = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set; + setter.call(test, []); + correctSetter = test instanceof Array; + } catch (error) { + } + return function setPrototypeOf(O, proto) { + validateSetPrototypeOfArguments(O, proto); + if (correctSetter) + setter.call(O, proto); + else + O.__proto__ = proto; + return O; + }; + }() : void 0); + } + ), + /***/ + "./node_modules/core-js/internals/own-keys.js": ( + /*!****************************************************!*\ + !*** ./node_modules/core-js/internals/own-keys.js ***! + \****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var getOwnPropertyNamesModule = __webpack_require__( + /*! ../internals/object-get-own-property-names */ + "./node_modules/core-js/internals/object-get-own-property-names.js" + ); + var getOwnPropertySymbolsModule = __webpack_require__( + /*! ../internals/object-get-own-property-symbols */ + "./node_modules/core-js/internals/object-get-own-property-symbols.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var Reflect2 = global2.Reflect; + module3.exports = Reflect2 && Reflect2.ownKeys || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; + } + ), + /***/ + "./node_modules/core-js/internals/path.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/path.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + module3.exports = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + } + ), + /***/ + "./node_modules/core-js/internals/redefine.js": ( + /*!****************************************************!*\ + !*** ./node_modules/core-js/internals/redefine.js ***! + \****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var nativeFunctionToString = __webpack_require__( + /*! ../internals/function-to-string */ + "./node_modules/core-js/internals/function-to-string.js" + ); + var InternalStateModule = __webpack_require__( + /*! ../internals/internal-state */ + "./node_modules/core-js/internals/internal-state.js" + ); + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(nativeFunctionToString).split("toString"); + shared("inspectSource", function(it) { + return nativeFunctionToString.call(it); + }); + (module3.exports = function(O, key2, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple2 = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + if (typeof value == "function") { + if (typeof key2 == "string" && !has(value, "name")) + hide(value, "name", key2); + enforceInternalState(value).source = TEMPLATE.join(typeof key2 == "string" ? key2 : ""); + } + if (O === global2) { + if (simple2) + O[key2] = value; + else + setGlobal(key2, value); + return; + } else if (!unsafe) { + delete O[key2]; + } else if (!noTargetGet && O[key2]) { + simple2 = true; + } + if (simple2) + O[key2] = value; + else + hide(O, key2, value); + })(Function.prototype, "toString", function toString() { + return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this); + }); + } + ), + /***/ + "./node_modules/core-js/internals/require-object-coercible.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/require-object-coercible.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + if (it == void 0) + throw TypeError("Can't call method on " + it); + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/set-global.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/set-global.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + module3.exports = function(key2, value) { + try { + hide(global2, key2, value); + } catch (error) { + global2[key2] = value; + } + return value; + }; + } + ), + /***/ + "./node_modules/core-js/internals/set-to-string-tag.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var defineProperty = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ).f; + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + module3.exports = function(it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/shared-key.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/shared-key.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var uid = __webpack_require__( + /*! ../internals/uid */ + "./node_modules/core-js/internals/uid.js" + ); + var keys = shared("keys"); + module3.exports = function(key2) { + return keys[key2] || (keys[key2] = uid(key2)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/shared.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/shared.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + (module3.exports = function(key2, value) { + return store[key2] || (store[key2] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.1.3", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)" + }); + } + ), + /***/ + "./node_modules/core-js/internals/string-at.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/string-at.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(that, pos, CONVERT_TO_STRING) { + var S = String(requireObjectCoercible(that)); + var position = toInteger(pos); + var size = S.length; + var first2, second; + if (position < 0 || position >= size) + return CONVERT_TO_STRING ? "" : void 0; + first2 = S.charCodeAt(position); + return first2 < 55296 || first2 > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first2 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first2 - 55296 << 10) + (second - 56320) + 65536; + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-absolute-index.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-absolute-index.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var max = Math.max; + var min = Math.min; + module3.exports = function(index2, length) { + var integer = toInteger(index2); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-indexed-object.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-indexed-object.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var IndexedObject = __webpack_require__( + /*! ../internals/indexed-object */ + "./node_modules/core-js/internals/indexed-object.js" + ); + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-integer.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/to-integer.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var ceil = Math.ceil; + var floor = Math.floor; + module3.exports = function(argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-length.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-length.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var min = Math.min; + module3.exports = function(argument) { + return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0; + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(argument) { + return Object(requireObjectCoercible(argument)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-primitive.js": ( + /*!********************************************************!*\ + !*** ./node_modules/core-js/internals/to-primitive.js ***! + \********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + module3.exports = function(it, S) { + if (!isObject(it)) + return it; + var fn, val; + if (S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + if (typeof (fn = it.valueOf) == "function" && !isObject(val = fn.call(it))) + return val; + if (!S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + throw TypeError("Can't convert object to primitive value"); + }; + } + ), + /***/ + "./node_modules/core-js/internals/uid.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/internals/uid.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var id = 0; + var postfix = Math.random(); + module3.exports = function(key2) { + return "Symbol(".concat(key2 === void 0 ? "" : key2, ")_", (++id + postfix).toString(36)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": ( + /*!*******************************************************************************!*\ + !*** ./node_modules/core-js/internals/validate-set-prototype-of-arguments.js ***! + \*******************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + module3.exports = function(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) { + throw TypeError("Can't set " + String(proto) + " as a prototype"); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/well-known-symbol.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/well-known-symbol.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var uid = __webpack_require__( + /*! ../internals/uid */ + "./node_modules/core-js/internals/uid.js" + ); + var NATIVE_SYMBOL = __webpack_require__( + /*! ../internals/native-symbol */ + "./node_modules/core-js/internals/native-symbol.js" + ); + var Symbol2 = global2.Symbol; + var store = shared("wks"); + module3.exports = function(name) { + return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name)); + }; + } + ), + /***/ + "./node_modules/core-js/modules/es.array.from.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es.array.from.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var $ = __webpack_require__( + /*! ../internals/export */ + "./node_modules/core-js/internals/export.js" + ); + var from = __webpack_require__( + /*! ../internals/array-from */ + "./node_modules/core-js/internals/array-from.js" + ); + var checkCorrectnessOfIteration = __webpack_require__( + /*! ../internals/check-correctness-of-iteration */ + "./node_modules/core-js/internals/check-correctness-of-iteration.js" + ); + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) { + Array.from(iterable); + }); + $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, { + from + }); + } + ), + /***/ + "./node_modules/core-js/modules/es.string.iterator.js": ( + /*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es.string.iterator.js ***! + \************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var codePointAt = __webpack_require__( + /*! ../internals/string-at */ + "./node_modules/core-js/internals/string-at.js" + ); + var InternalStateModule = __webpack_require__( + /*! ../internals/internal-state */ + "./node_modules/core-js/internals/internal-state.js" + ); + var defineIterator = __webpack_require__( + /*! ../internals/define-iterator */ + "./node_modules/core-js/internals/define-iterator.js" + ); + var STRING_ITERATOR = "String Iterator"; + var setInternalState = InternalStateModule.set; + var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + defineIterator(String, "String", function(iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index2 = state.index; + var point; + if (index2 >= string.length) + return { value: void 0, done: true }; + point = codePointAt(string, index2, true); + state.index += point.length; + return { value: point, done: false }; + }); + } + ), + /***/ + "./node_modules/webpack/buildin/global.js": ( + /*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var g; + g = function() { + return this; + }(); + try { + g = g || Function("return this")() || (1, eval)("this"); + } catch (e) { + if (typeof window === "object") + g = window; + } + module3.exports = g; + } + ), + /***/ + "./src/default-attrs.json": ( + /*!********************************!*\ + !*** ./src/default-attrs.json ***! + \********************************/ + /*! exports provided: xmlns, width, height, viewBox, fill, stroke, stroke-width, stroke-linecap, stroke-linejoin, default */ + /***/ + function(module3) { + module3.exports = { "xmlns": "http://www.w3.org/2000/svg", "width": 24, "height": 24, "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }; + } + ), + /***/ + "./src/icon.js": ( + /*!*********************!*\ + !*** ./src/icon.js ***! + \*********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _dedupe = __webpack_require__( + /*! classnames/dedupe */ + "./node_modules/classnames/dedupe.js" + ); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _defaultAttrs = __webpack_require__( + /*! ./default-attrs.json */ + "./src/default-attrs.json" + ); + var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function _classCallCheck(instance10, Constructor) { + if (!(instance10 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Icon = function() { + function Icon2(name, contents) { + var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + _classCallCheck(this, Icon2); + this.name = name; + this.contents = contents; + this.tags = tags; + this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name }); + } + _createClass(Icon2, [{ + key: "toSvg", + value: function toSvg() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) }); + return "" + this.contents + ""; + } + /** + * Return string representation of an `Icon`. + * + * Added for backward compatibility. If old code expects `feather.icons.` + * to be a string, `toString()` will get implicitly called. + * + * @returns {string} + */ + }, { + key: "toString", + value: function toString() { + return this.contents; + } + }]); + return Icon2; + }(); + function attrsToString(attrs) { + return Object.keys(attrs).map(function(key2) { + return key2 + '="' + attrs[key2] + '"'; + }).join(" "); + } + exports3.default = Icon; + } + ), + /***/ + "./src/icons.js": ( + /*!**********************!*\ + !*** ./src/icons.js ***! + \**********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _icon = __webpack_require__( + /*! ./icon */ + "./src/icon.js" + ); + var _icon2 = _interopRequireDefault(_icon); + var _icons = __webpack_require__( + /*! ../dist/icons.json */ + "./dist/icons.json" + ); + var _icons2 = _interopRequireDefault(_icons); + var _tags = __webpack_require__( + /*! ./tags.json */ + "./src/tags.json" + ); + var _tags2 = _interopRequireDefault(_tags); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + exports3.default = Object.keys(_icons2.default).map(function(key2) { + return new _icon2.default(key2, _icons2.default[key2], _tags2.default[key2]); + }).reduce(function(object, icon) { + object[icon.name] = icon; + return object; + }, {}); + } + ), + /***/ + "./src/index.js": ( + /*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + var _toSvg = __webpack_require__( + /*! ./to-svg */ + "./src/to-svg.js" + ); + var _toSvg2 = _interopRequireDefault(_toSvg); + var _replace = __webpack_require__( + /*! ./replace */ + "./src/replace.js" + ); + var _replace2 = _interopRequireDefault(_replace); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default }; + } + ), + /***/ + "./src/replace.js": ( + /*!************************!*\ + !*** ./src/replace.js ***! + \************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _dedupe = __webpack_require__( + /*! classnames/dedupe */ + "./node_modules/classnames/dedupe.js" + ); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function replace() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (typeof document === "undefined") { + throw new Error("`feather.replace()` only works in a browser environment."); + } + var elementsToReplace = document.querySelectorAll("[data-feather]"); + Array.from(elementsToReplace).forEach(function(element2) { + return replaceElement(element2, attrs); + }); + } + function replaceElement(element2) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var elementAttrs = getAttrs(element2); + var name = elementAttrs["data-feather"]; + delete elementAttrs["data-feather"]; + var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) })); + var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml"); + var svgElement = svgDocument.querySelector("svg"); + element2.parentNode.replaceChild(svgElement, element2); + } + function getAttrs(element2) { + return Array.from(element2.attributes).reduce(function(attrs, attr2) { + attrs[attr2.name] = attr2.value; + return attrs; + }, {}); + } + exports3.default = replace; + } + ), + /***/ + "./src/tags.json": ( + /*!***********************!*\ + !*** ./src/tags.json ***! + \***********************/ + /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, archive, at-sign, award, aperture, bar-chart, bar-chart-2, battery, battery-charging, bell, bell-off, bluetooth, book-open, book, bookmark, box, briefcase, calendar, camera, cast, chevron-down, chevron-up, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-rain, cloud-snow, cloud, codepen, codesandbox, code, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, dollar-sign, droplet, edit, edit-2, edit-3, eye, eye-off, external-link, facebook, fast-forward, figma, file-minus, file-plus, file-text, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, instagram, key, layers, layout, life-bouy, link, link-2, linkedin, list, lock, log-in, log-out, mail, map-pin, map, maximize, maximize-2, meh, menu, message-circle, message-square, mic-off, mic, minimize, minimize-2, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation, navigation-2, octagon, package, paperclip, pause, pause-circle, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, play, pie-chart, play-circle, plus, plus-circle, plus-square, pocket, power, printer, radio, refresh-cw, refresh-ccw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, settings, share-2, shield, shield-off, shopping-bag, shopping-cart, shuffle, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, star, stop-circle, sun, sunrise, sunset, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash, trash-2, triangle, truck, tv, twitch, twitter, type, umbrella, unlock, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume, volume-1, volume-2, volume-x, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ + /***/ + function(module3) { + module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; + } + ), + /***/ + "./src/to-svg.js": ( + /*!***********************!*\ + !*** ./src/to-svg.js ***! + \***********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function toSvg(name) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."); + if (!name) { + throw new Error("The required `key` (icon name) parameter is missing."); + } + if (!_icons2.default[name]) { + throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com"); + } + return _icons2.default[name].toSvg(attrs); + } + exports3.default = toSvg; + } + ), + /***/ + 0: ( + /*!**************************************************!*\ + !*** multi core-js/es/array/from ./src/index.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + __webpack_require__( + /*! core-js/es/array/from */ + "./node_modules/core-js/es/array/from.js" + ); + module3.exports = __webpack_require__( + /*! /home/runner/work/feather/feather/src/index.js */ + "./src/index.js" + ); + } + ) + /******/ + }) + ); + }); + } +}); + +// src/main.ts +var main_exports = {}; +__export(main_exports, { + default: () => ObsidianGit +}); +module.exports = __toCommonJS(main_exports); +init_polyfill_buffer(); + +// node_modules/.pnpm/isomorphic-git@1.24.2/node_modules/isomorphic-git/index.js +init_polyfill_buffer(); +var import_async_lock = __toESM(require_async_lock(), 1); +var import_sha1 = __toESM(require_sha1(), 1); +var import_crc_32 = __toESM(require_crc32(), 1); +var import_pako = __toESM(require_pako(), 1); +var import_pify = __toESM(require_pify(), 1); +var import_ignore = __toESM(require_ignore(), 1); +var import_clean_git_ref = __toESM(require_lib2(), 1); +var import_diff3 = __toESM(require_diff3(), 1); +var BaseError = class _BaseError extends Error { + constructor(message) { + super(message); + this.caller = ""; + } + toJSON() { + return { + code: this.code, + data: this.data, + caller: this.caller, + message: this.message, + stack: this.stack + }; + } + fromJSON(json) { + const e = new _BaseError(json.message); + e.code = json.code; + e.data = json.data; + e.caller = json.caller; + e.stack = json.stack; + return e; + } + get isIsomorphicGitError() { + return true; + } +}; +var UnmergedPathsError = class _UnmergedPathsError extends BaseError { + /** + * @param {Array} filepaths + */ + constructor(filepaths) { + super( + `Modifying the index is not possible because you have unmerged files: ${filepaths.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.` + ); + this.code = this.name = _UnmergedPathsError.code; + this.data = { filepaths }; + } +}; +UnmergedPathsError.code = "UnmergedPathsError"; +var InternalError = class _InternalError extends BaseError { + /** + * @param {string} message + */ + constructor(message) { + super( + `An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${message}` + ); + this.code = this.name = _InternalError.code; + this.data = { message }; + } +}; +InternalError.code = "InternalError"; +var UnsafeFilepathError = class _UnsafeFilepathError extends BaseError { + /** + * @param {string} filepath + */ + constructor(filepath) { + super(`The filepath "${filepath}" contains unsafe character sequences`); + this.code = this.name = _UnsafeFilepathError.code; + this.data = { filepath }; + } +}; +UnsafeFilepathError.code = "UnsafeFilepathError"; +var BufferCursor = class { + constructor(buffer2) { + this.buffer = buffer2; + this._start = 0; + } + eof() { + return this._start >= this.buffer.length; + } + tell() { + return this._start; + } + seek(n) { + this._start = n; + } + slice(n) { + const r = this.buffer.slice(this._start, this._start + n); + this._start += n; + return r; + } + toString(enc, length) { + const r = this.buffer.toString(enc, this._start, this._start + length); + this._start += length; + return r; + } + write(value, length, enc) { + const r = this.buffer.write(value, this._start, length, enc); + this._start += length; + return r; + } + copy(source, start, end) { + const r = source.copy(this.buffer, this._start, start, end); + this._start += r; + return r; + } + readUInt8() { + const r = this.buffer.readUInt8(this._start); + this._start += 1; + return r; + } + writeUInt8(value) { + const r = this.buffer.writeUInt8(value, this._start); + this._start += 1; + return r; + } + readUInt16BE() { + const r = this.buffer.readUInt16BE(this._start); + this._start += 2; + return r; + } + writeUInt16BE(value) { + const r = this.buffer.writeUInt16BE(value, this._start); + this._start += 2; + return r; + } + readUInt32BE() { + const r = this.buffer.readUInt32BE(this._start); + this._start += 4; + return r; + } + writeUInt32BE(value) { + const r = this.buffer.writeUInt32BE(value, this._start); + this._start += 4; + return r; + } +}; +function compareStrings(a, b) { + return -(a < b) || +(a > b); +} +function comparePath(a, b) { + return compareStrings(a.path, b.path); +} +function normalizeMode(mode) { + let type = mode > 0 ? mode >> 12 : 0; + if (type !== 4 && type !== 8 && type !== 10 && type !== 14) { + type = 8; + } + let permissions = mode & 511; + if (permissions & 73) { + permissions = 493; + } else { + permissions = 420; + } + if (type !== 8) + permissions = 0; + return (type << 12) + permissions; +} +var MAX_UINT32 = 2 ** 32; +function SecondsNanoseconds(givenSeconds, givenNanoseconds, milliseconds, date) { + if (givenSeconds !== void 0 && givenNanoseconds !== void 0) { + return [givenSeconds, givenNanoseconds]; + } + if (milliseconds === void 0) { + milliseconds = date.valueOf(); + } + const seconds = Math.floor(milliseconds / 1e3); + const nanoseconds = (milliseconds - seconds * 1e3) * 1e6; + return [seconds, nanoseconds]; +} +function normalizeStats(e) { + const [ctimeSeconds, ctimeNanoseconds] = SecondsNanoseconds( + e.ctimeSeconds, + e.ctimeNanoseconds, + e.ctimeMs, + e.ctime + ); + const [mtimeSeconds, mtimeNanoseconds] = SecondsNanoseconds( + e.mtimeSeconds, + e.mtimeNanoseconds, + e.mtimeMs, + e.mtime + ); + return { + ctimeSeconds: ctimeSeconds % MAX_UINT32, + ctimeNanoseconds: ctimeNanoseconds % MAX_UINT32, + mtimeSeconds: mtimeSeconds % MAX_UINT32, + mtimeNanoseconds: mtimeNanoseconds % MAX_UINT32, + dev: e.dev % MAX_UINT32, + ino: e.ino % MAX_UINT32, + mode: normalizeMode(e.mode % MAX_UINT32), + uid: e.uid % MAX_UINT32, + gid: e.gid % MAX_UINT32, + // size of -1 happens over a BrowserFS HTTP Backend that doesn't serve Content-Length headers + // (like the Karma webserver) because BrowserFS HTTP Backend uses HTTP HEAD requests to do fs.stat + size: e.size > -1 ? e.size % MAX_UINT32 : 0 + }; +} +function toHex(buffer2) { + let hex = ""; + for (const byte of new Uint8Array(buffer2)) { + if (byte < 16) + hex += "0"; + hex += byte.toString(16); + } + return hex; +} +var supportsSubtleSHA1 = null; +async function shasum(buffer2) { + if (supportsSubtleSHA1 === null) { + supportsSubtleSHA1 = await testSubtleSHA1(); + } + return supportsSubtleSHA1 ? subtleSHA1(buffer2) : shasumSync(buffer2); +} +function shasumSync(buffer2) { + return new import_sha1.default().update(buffer2).digest("hex"); +} +async function subtleSHA1(buffer2) { + const hash2 = await crypto.subtle.digest("SHA-1", buffer2); + return toHex(hash2); +} +async function testSubtleSHA1() { + try { + const hash2 = await subtleSHA1(new Uint8Array([])); + if (hash2 === "da39a3ee5e6b4b0d3255bfef95601890afd80709") + return true; + } catch (_) { + } + return false; +} +function parseCacheEntryFlags(bits) { + return { + assumeValid: Boolean(bits & 32768), + extended: Boolean(bits & 16384), + stage: (bits & 12288) >> 12, + nameLength: bits & 4095 + }; +} +function renderCacheEntryFlags(entry) { + const flags = entry.flags; + flags.extended = false; + flags.nameLength = Math.min(Buffer.from(entry.path).length, 4095); + return (flags.assumeValid ? 32768 : 0) + (flags.extended ? 16384 : 0) + ((flags.stage & 3) << 12) + (flags.nameLength & 4095); +} +var GitIndex = class _GitIndex { + /*:: + _entries: Map + _dirty: boolean // Used to determine if index needs to be saved to filesystem + */ + constructor(entries, unmergedPaths) { + this._dirty = false; + this._unmergedPaths = unmergedPaths || /* @__PURE__ */ new Set(); + this._entries = entries || /* @__PURE__ */ new Map(); + } + _addEntry(entry) { + if (entry.flags.stage === 0) { + entry.stages = [entry]; + this._entries.set(entry.path, entry); + this._unmergedPaths.delete(entry.path); + } else { + let existingEntry = this._entries.get(entry.path); + if (!existingEntry) { + this._entries.set(entry.path, entry); + existingEntry = entry; + } + existingEntry.stages[entry.flags.stage] = entry; + this._unmergedPaths.add(entry.path); + } + } + static async from(buffer2) { + if (Buffer.isBuffer(buffer2)) { + return _GitIndex.fromBuffer(buffer2); + } else if (buffer2 === null) { + return new _GitIndex(null); + } else { + throw new InternalError("invalid type passed to GitIndex.from"); + } + } + static async fromBuffer(buffer2) { + if (buffer2.length === 0) { + throw new InternalError("Index file is empty (.git/index)"); + } + const index2 = new _GitIndex(); + const reader = new BufferCursor(buffer2); + const magic = reader.toString("utf8", 4); + if (magic !== "DIRC") { + throw new InternalError(`Invalid dircache magic file number: ${magic}`); + } + const shaComputed = await shasum(buffer2.slice(0, -20)); + const shaClaimed = buffer2.slice(-20).toString("hex"); + if (shaClaimed !== shaComputed) { + throw new InternalError( + `Invalid checksum in GitIndex buffer: expected ${shaClaimed} but saw ${shaComputed}` + ); + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unsupported dircache version: ${version2}`); + } + const numEntries = reader.readUInt32BE(); + let i = 0; + while (!reader.eof() && i < numEntries) { + const entry = {}; + entry.ctimeSeconds = reader.readUInt32BE(); + entry.ctimeNanoseconds = reader.readUInt32BE(); + entry.mtimeSeconds = reader.readUInt32BE(); + entry.mtimeNanoseconds = reader.readUInt32BE(); + entry.dev = reader.readUInt32BE(); + entry.ino = reader.readUInt32BE(); + entry.mode = reader.readUInt32BE(); + entry.uid = reader.readUInt32BE(); + entry.gid = reader.readUInt32BE(); + entry.size = reader.readUInt32BE(); + entry.oid = reader.slice(20).toString("hex"); + const flags = reader.readUInt16BE(); + entry.flags = parseCacheEntryFlags(flags); + const pathlength = buffer2.indexOf(0, reader.tell() + 1) - reader.tell(); + if (pathlength < 1) { + throw new InternalError(`Got a path length of: ${pathlength}`); + } + entry.path = reader.toString("utf8", pathlength); + if (entry.path.includes("..\\") || entry.path.includes("../")) { + throw new UnsafeFilepathError(entry.path); + } + let padding = 8 - (reader.tell() - 12) % 8; + if (padding === 0) + padding = 8; + while (padding--) { + const tmp = reader.readUInt8(); + if (tmp !== 0) { + throw new InternalError( + `Expected 1-8 null characters but got '${tmp}' after ${entry.path}` + ); + } else if (reader.eof()) { + throw new InternalError("Unexpected end of file"); + } + } + entry.stages = []; + index2._addEntry(entry); + i++; + } + return index2; + } + get unmergedPaths() { + return [...this._unmergedPaths]; + } + get entries() { + return [...this._entries.values()].sort(comparePath); + } + get entriesMap() { + return this._entries; + } + get entriesFlat() { + return [...this.entries].flatMap((entry) => { + return entry.stages.length > 1 ? entry.stages.filter((x) => x) : entry; + }); + } + *[Symbol.iterator]() { + for (const entry of this.entries) { + yield entry; + } + } + insert({ filepath, stats, oid, stage = 0 }) { + if (!stats) { + stats = { + ctimeSeconds: 0, + ctimeNanoseconds: 0, + mtimeSeconds: 0, + mtimeNanoseconds: 0, + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + } + stats = normalizeStats(stats); + const bfilepath = Buffer.from(filepath); + const entry = { + ctimeSeconds: stats.ctimeSeconds, + ctimeNanoseconds: stats.ctimeNanoseconds, + mtimeSeconds: stats.mtimeSeconds, + mtimeNanoseconds: stats.mtimeNanoseconds, + dev: stats.dev, + ino: stats.ino, + // We provide a fallback value for `mode` here because not all fs + // implementations assign it, but we use it in GitTree. + // '100644' is for a "regular non-executable file" + mode: stats.mode || 33188, + uid: stats.uid, + gid: stats.gid, + size: stats.size, + path: filepath, + oid, + flags: { + assumeValid: false, + extended: false, + stage, + nameLength: bfilepath.length < 4095 ? bfilepath.length : 4095 + }, + stages: [] + }; + this._addEntry(entry); + this._dirty = true; + } + delete({ filepath }) { + if (this._entries.has(filepath)) { + this._entries.delete(filepath); + } else { + for (const key2 of this._entries.keys()) { + if (key2.startsWith(filepath + "/")) { + this._entries.delete(key2); + } + } + } + if (this._unmergedPaths.has(filepath)) { + this._unmergedPaths.delete(filepath); + } + this._dirty = true; + } + clear() { + this._entries.clear(); + this._dirty = true; + } + has({ filepath }) { + return this._entries.has(filepath); + } + render() { + return this.entries.map((entry) => `${entry.mode.toString(8)} ${entry.oid} ${entry.path}`).join("\n"); + } + static async _entryToBuffer(entry) { + const bpath = Buffer.from(entry.path); + const length = Math.ceil((62 + bpath.length + 1) / 8) * 8; + const written = Buffer.alloc(length); + const writer = new BufferCursor(written); + const stat = normalizeStats(entry); + writer.writeUInt32BE(stat.ctimeSeconds); + writer.writeUInt32BE(stat.ctimeNanoseconds); + writer.writeUInt32BE(stat.mtimeSeconds); + writer.writeUInt32BE(stat.mtimeNanoseconds); + writer.writeUInt32BE(stat.dev); + writer.writeUInt32BE(stat.ino); + writer.writeUInt32BE(stat.mode); + writer.writeUInt32BE(stat.uid); + writer.writeUInt32BE(stat.gid); + writer.writeUInt32BE(stat.size); + writer.write(entry.oid, 20, "hex"); + writer.writeUInt16BE(renderCacheEntryFlags(entry)); + writer.write(entry.path, bpath.length, "utf8"); + return written; + } + async toObject() { + const header = Buffer.alloc(12); + const writer = new BufferCursor(header); + writer.write("DIRC", 4, "utf8"); + writer.writeUInt32BE(2); + writer.writeUInt32BE(this.entriesFlat.length); + let entryBuffers = []; + for (const entry of this.entries) { + entryBuffers.push(_GitIndex._entryToBuffer(entry)); + if (entry.stages.length > 1) { + for (const stage of entry.stages) { + if (stage && stage !== entry) { + entryBuffers.push(_GitIndex._entryToBuffer(stage)); + } + } + } + } + entryBuffers = await Promise.all(entryBuffers); + const body = Buffer.concat(entryBuffers); + const main = Buffer.concat([header, body]); + const sum = await shasum(main); + return Buffer.concat([main, Buffer.from(sum, "hex")]); + } +}; +function compareStats(entry, stats) { + const e = normalizeStats(entry); + const s = normalizeStats(stats); + const staleness = e.mode !== s.mode || e.mtimeSeconds !== s.mtimeSeconds || e.ctimeSeconds !== s.ctimeSeconds || e.uid !== s.uid || e.gid !== s.gid || e.ino !== s.ino || e.size !== s.size; + return staleness; +} +var lock = null; +var IndexCache = Symbol("IndexCache"); +function createCache() { + return { + map: /* @__PURE__ */ new Map(), + stats: /* @__PURE__ */ new Map() + }; +} +async function updateCachedIndexFile(fs, filepath, cache) { + const stat = await fs.lstat(filepath); + const rawIndexFile = await fs.read(filepath); + const index2 = await GitIndex.from(rawIndexFile); + cache.map.set(filepath, index2); + cache.stats.set(filepath, stat); +} +async function isIndexStale(fs, filepath, cache) { + const savedStats = cache.stats.get(filepath); + if (savedStats === void 0) + return true; + const currStats = await fs.lstat(filepath); + if (savedStats === null) + return false; + if (currStats === null) + return false; + return compareStats(savedStats, currStats); +} +var GitIndexManager = class { + /** + * + * @param {object} opts + * @param {import('../models/FileSystem.js').FileSystem} opts.fs + * @param {string} opts.gitdir + * @param {object} opts.cache + * @param {bool} opts.allowUnmerged + * @param {function(GitIndex): any} closure + */ + static async acquire({ fs, gitdir, cache, allowUnmerged = true }, closure) { + if (!cache[IndexCache]) + cache[IndexCache] = createCache(); + const filepath = `${gitdir}/index`; + if (lock === null) + lock = new import_async_lock.default({ maxPending: Infinity }); + let result; + let unmergedPaths = []; + await lock.acquire(filepath, async () => { + if (await isIndexStale(fs, filepath, cache[IndexCache])) { + await updateCachedIndexFile(fs, filepath, cache[IndexCache]); + } + const index2 = cache[IndexCache].map.get(filepath); + unmergedPaths = index2.unmergedPaths; + if (unmergedPaths.length && !allowUnmerged) + throw new UnmergedPathsError(unmergedPaths); + result = await closure(index2); + if (index2._dirty) { + const buffer2 = await index2.toObject(); + await fs.write(filepath, buffer2); + cache[IndexCache].stats.set(filepath, await fs.lstat(filepath)); + index2._dirty = false; + } + }); + return result; + } +}; +function basename(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 > -1) { + path2 = path2.slice(last2 + 1); + } + return path2; +} +function dirname(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 === -1) + return "."; + if (last2 === 0) + return "/"; + return path2.slice(0, last2); +} +function flatFileListToDirectoryStructure(files) { + const inodes = /* @__PURE__ */ new Map(); + const mkdir = function(name) { + if (!inodes.has(name)) { + const dir = { + type: "tree", + fullpath: name, + basename: basename(name), + metadata: {}, + children: [] + }; + inodes.set(name, dir); + dir.parent = mkdir(dirname(name)); + if (dir.parent && dir.parent !== dir) + dir.parent.children.push(dir); + } + return inodes.get(name); + }; + const mkfile = function(name, metadata) { + if (!inodes.has(name)) { + const file = { + type: "blob", + fullpath: name, + basename: basename(name), + metadata, + // This recursively generates any missing parent folders. + parent: mkdir(dirname(name)), + children: [] + }; + if (file.parent) + file.parent.children.push(file); + inodes.set(name, file); + } + return inodes.get(name); + }; + mkdir("."); + for (const file of files) { + mkfile(file.path, file); + } + return inodes; +} +function mode2type(mode) { + switch (mode) { + case 16384: + return "tree"; + case 33188: + return "blob"; + case 33261: + return "blob"; + case 40960: + return "blob"; + case 57344: + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode.toString(8)}`); +} +var GitWalkerIndex = class { + constructor({ fs, gitdir, cache }) { + this.treePromise = GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + return flatFileListToDirectoryStructure(index2.entries); + } + ); + const walker = this; + this.ConstructEntry = class StageEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const tree = await this.treePromise; + const inode = tree.get(filepath); + if (!inode) + return null; + if (inode.type === "blob") + return null; + if (inode.type !== "tree") { + throw new Error(`ENOTDIR: not a directory, scandir '${filepath}'`); + } + const names = inode.children.map((inode2) => inode2.fullpath); + names.sort(compareStrings); + return names; + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + if (!inode) { + throw new Error( + `ENOENT: no such file or directory, lstat '${entry._fullpath}'` + ); + } + const stats = inode.type === "tree" ? {} : normalizeStats(inode.metadata); + entry._type = inode.type === "tree" ? "tree" : mode2type(stats.mode); + entry._mode = stats.mode; + if (inode.type === "tree") { + entry._stat = void 0; + } else { + entry._stat = stats; + } + } + return entry._stat; + } + async content(_entry) { + } + async oid(entry) { + if (entry._oid === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + entry._oid = inode.metadata.oid; + } + return entry._oid; + } +}; +var GitWalkSymbol = Symbol("GitWalkSymbol"); +function STAGE() { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerIndex({ fs, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var NotFoundError = class _NotFoundError extends BaseError { + /** + * @param {string} what + */ + constructor(what) { + super(`Could not find ${what}.`); + this.code = this.name = _NotFoundError.code; + this.data = { what }; + } +}; +NotFoundError.code = "NotFoundError"; +var ObjectTypeError = class _ObjectTypeError extends BaseError { + /** + * @param {string} oid + * @param {'blob'|'commit'|'tag'|'tree'} actual + * @param {'blob'|'commit'|'tag'|'tree'} expected + * @param {string} [filepath] + */ + constructor(oid, actual, expected, filepath) { + super( + `Object ${oid} ${filepath ? `at ${filepath}` : ""}was anticipated to be a ${expected} but it is a ${actual}.` + ); + this.code = this.name = _ObjectTypeError.code; + this.data = { oid, actual, expected, filepath }; + } +}; +ObjectTypeError.code = "ObjectTypeError"; +var InvalidOidError = class _InvalidOidError extends BaseError { + /** + * @param {string} value + */ + constructor(value) { + super(`Expected a 40-char hex object id but saw "${value}".`); + this.code = this.name = _InvalidOidError.code; + this.data = { value }; + } +}; +InvalidOidError.code = "InvalidOidError"; +var NoRefspecError = class _NoRefspecError extends BaseError { + /** + * @param {string} remote + */ + constructor(remote) { + super(`Could not find a fetch refspec for remote "${remote}". Make sure the config file has an entry like the following: +[remote "${remote}"] + fetch = +refs/heads/*:refs/remotes/origin/* +`); + this.code = this.name = _NoRefspecError.code; + this.data = { remote }; + } +}; +NoRefspecError.code = "NoRefspecError"; +var GitPackedRefs = class _GitPackedRefs { + constructor(text2) { + this.refs = /* @__PURE__ */ new Map(); + this.parsedConfig = []; + if (text2) { + let key2 = null; + this.parsedConfig = text2.trim().split("\n").map((line) => { + if (/^\s*#/.test(line)) { + return { line, comment: true }; + } + const i = line.indexOf(" "); + if (line.startsWith("^")) { + const value = line.slice(1); + this.refs.set(key2 + "^{}", value); + return { line, ref: key2, peeled: value }; + } else { + const value = line.slice(0, i); + key2 = line.slice(i + 1); + this.refs.set(key2, value); + return { line, ref: key2, oid: value }; + } + }); + } + return this; + } + static from(text2) { + return new _GitPackedRefs(text2); + } + delete(ref) { + this.parsedConfig = this.parsedConfig.filter((entry) => entry.ref !== ref); + this.refs.delete(ref); + } + toString() { + return this.parsedConfig.map(({ line }) => line).join("\n") + "\n"; + } +}; +var GitRefSpec = class _GitRefSpec { + constructor({ remotePath, localPath, force, matchPrefix }) { + Object.assign(this, { + remotePath, + localPath, + force, + matchPrefix + }); + } + static from(refspec) { + const [ + forceMatch, + remotePath, + remoteGlobMatch, + localPath, + localGlobMatch + ] = refspec.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1); + const force = forceMatch === "+"; + const remoteIsGlob = remoteGlobMatch === "*"; + const localIsGlob = localGlobMatch === "*"; + if (remoteIsGlob !== localIsGlob) { + throw new InternalError("Invalid refspec"); + } + return new _GitRefSpec({ + remotePath, + localPath, + force, + matchPrefix: remoteIsGlob + }); + } + translate(remoteBranch) { + if (this.matchPrefix) { + if (remoteBranch.startsWith(this.remotePath)) { + return this.localPath + remoteBranch.replace(this.remotePath, ""); + } + } else { + if (remoteBranch === this.remotePath) + return this.localPath; + } + return null; + } + reverseTranslate(localBranch) { + if (this.matchPrefix) { + if (localBranch.startsWith(this.localPath)) { + return this.remotePath + localBranch.replace(this.localPath, ""); + } + } else { + if (localBranch === this.localPath) + return this.remotePath; + } + return null; + } +}; +var GitRefSpecSet = class _GitRefSpecSet { + constructor(rules = []) { + this.rules = rules; + } + static from(refspecs) { + const rules = []; + for (const refspec of refspecs) { + rules.push(GitRefSpec.from(refspec)); + } + return new _GitRefSpecSet(rules); + } + add(refspec) { + const rule = GitRefSpec.from(refspec); + this.rules.push(rule); + } + translate(remoteRefs) { + const result = []; + for (const rule of this.rules) { + for (const remoteRef of remoteRefs) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result.push([remoteRef, localRef]); + } + } + } + return result; + } + translateOne(remoteRef) { + let result = null; + for (const rule of this.rules) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result = localRef; + } + } + return result; + } + localNamespaces() { + return this.rules.filter((rule) => rule.matchPrefix).map((rule) => rule.localPath.replace(/\/$/, "")); + } +}; +function compareRefNames(a, b) { + const _a2 = a.replace(/\^\{\}$/, ""); + const _b = b.replace(/\^\{\}$/, ""); + const tmp = -(_a2 < _b) || +(_a2 > _b); + if (tmp === 0) { + return a.endsWith("^{}") ? 1 : -1; + } + return tmp; +} +function normalizePath(path2) { + return path2.replace(/\/\.\//g, "/").replace(/\/{2,}/g, "/").replace(/^\/\.$/, "/").replace(/^\.\/$/, ".").replace(/^\.\//, "").replace(/\/\.$/, "").replace(/(.+)\/$/, "$1").replace(/^$/, "."); +} +function join(...parts) { + return normalizePath(parts.map(normalizePath).join("/")); +} +var num = (val) => { + val = val.toLowerCase(); + let n = parseInt(val); + if (val.endsWith("k")) + n *= 1024; + if (val.endsWith("m")) + n *= 1024 * 1024; + if (val.endsWith("g")) + n *= 1024 * 1024 * 1024; + return n; +}; +var bool = (val) => { + val = val.trim().toLowerCase(); + if (val === "true" || val === "yes" || val === "on") + return true; + if (val === "false" || val === "no" || val === "off") + return false; + throw Error( + `Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${val}` + ); +}; +var schema = { + core: { + filemode: bool, + bare: bool, + logallrefupdates: bool, + symlinks: bool, + ignorecase: bool, + bigFileThreshold: num + } +}; +var SECTION_LINE_REGEX = /^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/; +var SECTION_REGEX = /^[A-Za-z0-9-.]+$/; +var VARIABLE_LINE_REGEX = /^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/; +var VARIABLE_NAME_REGEX = /^[A-Za-z][A-Za-z-]*$/; +var VARIABLE_VALUE_COMMENT_REGEX = /^(.*?)( *[#;].*)$/; +var extractSectionLine = (line) => { + const matches = SECTION_LINE_REGEX.exec(line); + if (matches != null) { + const [section, subsection] = matches.slice(1); + return [section, subsection]; + } + return null; +}; +var extractVariableLine = (line) => { + const matches = VARIABLE_LINE_REGEX.exec(line); + if (matches != null) { + const [name, rawValue = "true"] = matches.slice(1); + const valueWithoutComments = removeComments(rawValue); + const valueWithoutQuotes = removeQuotes(valueWithoutComments); + return [name, valueWithoutQuotes]; + } + return null; +}; +var removeComments = (rawValue) => { + const commentMatches = VARIABLE_VALUE_COMMENT_REGEX.exec(rawValue); + if (commentMatches == null) { + return rawValue; + } + const [valueWithoutComment, comment] = commentMatches.slice(1); + if (hasOddNumberOfQuotes(valueWithoutComment) && hasOddNumberOfQuotes(comment)) { + return `${valueWithoutComment}${comment}`; + } + return valueWithoutComment; +}; +var hasOddNumberOfQuotes = (text2) => { + const numberOfQuotes = (text2.match(/(?:^|[^\\])"/g) || []).length; + return numberOfQuotes % 2 !== 0; +}; +var removeQuotes = (text2) => { + return text2.split("").reduce((newText, c, idx, text3) => { + const isQuote = c === '"' && text3[idx - 1] !== "\\"; + const isEscapeForQuote = c === "\\" && text3[idx + 1] === '"'; + if (isQuote || isEscapeForQuote) { + return newText; + } + return newText + c; + }, ""); +}; +var lower = (text2) => { + return text2 != null ? text2.toLowerCase() : null; +}; +var getPath = (section, subsection, name) => { + return [lower(section), subsection, lower(name)].filter((a) => a != null).join("."); +}; +var normalizePath$1 = (path2) => { + const pathSegments = path2.split("."); + const section = pathSegments.shift(); + const name = pathSegments.pop(); + const subsection = pathSegments.length ? pathSegments.join(".") : void 0; + return { + section, + subsection, + name, + path: getPath(section, subsection, name), + sectionPath: getPath(section, subsection, null) + }; +}; +var findLastIndex = (array, callback) => { + return array.reduce((lastIndex, item, index2) => { + return callback(item) ? index2 : lastIndex; + }, -1); +}; +var GitConfig = class _GitConfig { + constructor(text2) { + let section = null; + let subsection = null; + this.parsedConfig = text2.split("\n").map((line) => { + let name = null; + let value = null; + const trimmedLine = line.trim(); + const extractedSection = extractSectionLine(trimmedLine); + const isSection = extractedSection != null; + if (isSection) { + ; + [section, subsection] = extractedSection; + } else { + const extractedVariable = extractVariableLine(trimmedLine); + const isVariable = extractedVariable != null; + if (isVariable) { + ; + [name, value] = extractedVariable; + } + } + const path2 = getPath(section, subsection, name); + return { line, isSection, section, subsection, name, value, path: path2 }; + }); + } + static from(text2) { + return new _GitConfig(text2); + } + async get(path2, getall = false) { + const normalizedPath = normalizePath$1(path2).path; + const allValues = this.parsedConfig.filter((config) => config.path === normalizedPath).map(({ section, name, value }) => { + const fn = schema[section] && schema[section][name]; + return fn ? fn(value) : value; + }); + return getall ? allValues : allValues.pop(); + } + async getall(path2) { + return this.get(path2, true); + } + async getSubsections(section) { + return this.parsedConfig.filter((config) => config.section === section && config.isSection).map((config) => config.subsection); + } + async deleteSection(section, subsection) { + this.parsedConfig = this.parsedConfig.filter( + (config) => !(config.section === section && config.subsection === subsection) + ); + } + async append(path2, value) { + return this.set(path2, value, true); + } + async set(path2, value, append3 = false) { + const { + section, + subsection, + name, + path: normalizedPath, + sectionPath + } = normalizePath$1(path2); + const configIndex = findLastIndex( + this.parsedConfig, + (config) => config.path === normalizedPath + ); + if (value == null) { + if (configIndex !== -1) { + this.parsedConfig.splice(configIndex, 1); + } + } else { + if (configIndex !== -1) { + const config = this.parsedConfig[configIndex]; + const modifiedConfig = Object.assign({}, config, { + name, + value, + modified: true + }); + if (append3) { + this.parsedConfig.splice(configIndex + 1, 0, modifiedConfig); + } else { + this.parsedConfig[configIndex] = modifiedConfig; + } + } else { + const sectionIndex = this.parsedConfig.findIndex( + (config) => config.path === sectionPath + ); + const newConfig = { + section, + subsection, + name, + value, + modified: true, + path: normalizedPath + }; + if (SECTION_REGEX.test(section) && VARIABLE_NAME_REGEX.test(name)) { + if (sectionIndex >= 0) { + this.parsedConfig.splice(sectionIndex + 1, 0, newConfig); + } else { + const newSection = { + section, + subsection, + modified: true, + path: sectionPath + }; + this.parsedConfig.push(newSection, newConfig); + } + } + } + } + } + toString() { + return this.parsedConfig.map(({ line, section, subsection, name, value, modified: modified2 = false }) => { + if (!modified2) { + return line; + } + if (name != null && value != null) { + if (typeof value === "string" && /[#;]/.test(value)) { + return ` ${name} = "${value}"`; + } + return ` ${name} = ${value}`; + } + if (subsection != null) { + return `[${section} "${subsection}"]`; + } + return `[${section}]`; + }).join("\n"); + } +}; +var GitConfigManager = class { + static async get({ fs, gitdir }) { + const text2 = await fs.read(`${gitdir}/config`, { encoding: "utf8" }); + return GitConfig.from(text2); + } + static async save({ fs, gitdir, config }) { + await fs.write(`${gitdir}/config`, config.toString(), { + encoding: "utf8" + }); + } +}; +var refpaths = (ref) => [ + `${ref}`, + `refs/${ref}`, + `refs/tags/${ref}`, + `refs/heads/${ref}`, + `refs/remotes/${ref}`, + `refs/remotes/${ref}/HEAD` +]; +var GIT_FILES = ["config", "description", "index", "shallow", "commondir"]; +var GitRefManager = class _GitRefManager { + static async updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + refspecs = void 0, + prune = false, + pruneTags = false + }) { + for (const value of refs.values()) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!refspecs) { + refspecs = await config.getall(`remote.${remote}.fetch`); + if (refspecs.length === 0) { + throw new NoRefspecError(remote); + } + refspecs.unshift(`+HEAD:refs/remotes/${remote}/HEAD`); + } + const refspec = GitRefSpecSet.from(refspecs); + const actualRefsToWrite = /* @__PURE__ */ new Map(); + if (pruneTags) { + const tags2 = await _GitRefManager.listRefs({ + fs, + gitdir, + filepath: "refs/tags" + }); + await _GitRefManager.deleteRefs({ + fs, + gitdir, + refs: tags2.map((tag2) => `refs/tags/${tag2}`) + }); + } + if (tags) { + for (const serverRef of refs.keys()) { + if (serverRef.startsWith("refs/tags") && !serverRef.endsWith("^{}")) { + if (!await _GitRefManager.exists({ fs, gitdir, ref: serverRef })) { + const oid = refs.get(serverRef); + actualRefsToWrite.set(serverRef, oid); + } + } + } + } + const refTranslations = refspec.translate([...refs.keys()]); + for (const [serverRef, translatedRef] of refTranslations) { + const value = refs.get(serverRef); + actualRefsToWrite.set(translatedRef, value); + } + const symrefTranslations = refspec.translate([...symrefs.keys()]); + for (const [serverRef, translatedRef] of symrefTranslations) { + const value = symrefs.get(serverRef); + const symtarget = refspec.translateOne(value); + if (symtarget) { + actualRefsToWrite.set(translatedRef, `ref: ${symtarget}`); + } + } + const pruned = []; + if (prune) { + for (const filepath of refspec.localNamespaces()) { + const refs2 = (await _GitRefManager.listRefs({ + fs, + gitdir, + filepath + })).map((file) => `${filepath}/${file}`); + for (const ref of refs2) { + if (!actualRefsToWrite.has(ref)) { + pruned.push(ref); + } + } + } + if (pruned.length > 0) { + await _GitRefManager.deleteRefs({ fs, gitdir, refs: pruned }); + } + } + for (const [key2, value] of actualRefsToWrite) { + await fs.write(join(gitdir, key2), `${value.trim()} +`, "utf8"); + } + return { pruned }; + } + // TODO: make this less crude? + static async writeRef({ fs, gitdir, ref, value }) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + await fs.write(join(gitdir, ref), `${value.trim()} +`, "utf8"); + } + static async writeSymbolicRef({ fs, gitdir, ref, value }) { + await fs.write(join(gitdir, ref), `ref: ${value.trim()} +`, "utf8"); + } + static async deleteRef({ fs, gitdir, ref }) { + return _GitRefManager.deleteRefs({ fs, gitdir, refs: [ref] }); + } + static async deleteRefs({ fs, gitdir, refs }) { + await Promise.all(refs.map((ref) => fs.rm(join(gitdir, ref)))); + let text2 = await fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + const beforeSize = packed.refs.size; + for (const ref of refs) { + if (packed.refs.has(ref)) { + packed.delete(ref); + } + } + if (packed.refs.size < beforeSize) { + text2 = packed.toString(); + await fs.write(`${gitdir}/packed-refs`, text2, { encoding: "utf8" }); + } + } + /** + * @param {object} args + * @param {import('../models/FileSystem.js').FileSystem} args.fs + * @param {string} args.gitdir + * @param {string} args.ref + * @param {number} [args.depth] + * @returns {Promise} + */ + static async resolve({ fs, gitdir, ref, depth = void 0 }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return ref; + } + } + let sha; + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return _GitRefManager.resolve({ fs, gitdir, ref, depth }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await _GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); + for (const ref2 of allpaths) { + sha = await fs.read(`${gitdir}/${ref2}`, { encoding: "utf8" }) || packedMap.get(ref2); + if (sha) { + return _GitRefManager.resolve({ fs, gitdir, ref: sha.trim(), depth }); + } + } + throw new NotFoundError(ref); + } + static async exists({ fs, gitdir, ref }) { + try { + await _GitRefManager.expand({ fs, gitdir, ref }); + return true; + } catch (err) { + return false; + } + } + static async expand({ fs, gitdir, ref }) { + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await _GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (await fs.exists(`${gitdir}/${ref2}`)) + return ref2; + if (packedMap.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + } + static async expandAgainstMap({ ref, map }) { + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (await map.has(ref2)) + return ref2; + } + throw new NotFoundError(ref); + } + static resolveAgainstMap({ ref, fullref = ref, depth = void 0, map }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return { fullref, oid: ref }; + } + } + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return _GitRefManager.resolveAgainstMap({ ref, fullref, depth, map }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return { fullref, oid: ref }; + } + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + const sha = map.get(ref2); + if (sha) { + return _GitRefManager.resolveAgainstMap({ + ref: sha.trim(), + fullref: ref2, + depth, + map + }); + } + } + throw new NotFoundError(ref); + } + static async packedRefs({ fs, gitdir }) { + const text2 = await fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }); + const packed = GitPackedRefs.from(text2); + return packed.refs; + } + // List all the refs that match the `filepath` prefix + static async listRefs({ fs, gitdir, filepath }) { + const packedMap = _GitRefManager.packedRefs({ fs, gitdir }); + let files = null; + try { + files = await fs.readdirDeep(`${gitdir}/${filepath}`); + files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, "")); + } catch (err) { + files = []; + } + for (let key2 of (await packedMap).keys()) { + if (key2.startsWith(filepath)) { + key2 = key2.replace(filepath + "/", ""); + if (!files.includes(key2)) { + files.push(key2); + } + } + } + files.sort(compareRefNames); + return files; + } + static async listBranches({ fs, gitdir, remote }) { + if (remote) { + return _GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/remotes/${remote}` + }); + } else { + return _GitRefManager.listRefs({ fs, gitdir, filepath: `refs/heads` }); + } + } + static async listTags({ fs, gitdir }) { + const tags = await _GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/tags` + }); + return tags.filter((x) => !x.endsWith("^{}")); + } +}; +function compareTreeEntryPath(a, b) { + return compareStrings(appendSlashIfDir(a), appendSlashIfDir(b)); +} +function appendSlashIfDir(entry) { + return entry.mode === "040000" ? entry.path + "/" : entry.path; +} +function mode2type$1(mode) { + switch (mode) { + case "040000": + return "tree"; + case "100644": + return "blob"; + case "100755": + return "blob"; + case "120000": + return "blob"; + case "160000": + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode}`); +} +function parseBuffer(buffer2) { + const _entries = []; + let cursor = 0; + while (cursor < buffer2.length) { + const space2 = buffer2.indexOf(32, cursor); + if (space2 === -1) { + throw new InternalError( + `GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.` + ); + } + const nullchar = buffer2.indexOf(0, cursor); + if (nullchar === -1) { + throw new InternalError( + `GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.` + ); + } + let mode = buffer2.slice(cursor, space2).toString("utf8"); + if (mode === "40000") + mode = "040000"; + const type = mode2type$1(mode); + const path2 = buffer2.slice(space2 + 1, nullchar).toString("utf8"); + if (path2.includes("\\") || path2.includes("/")) { + throw new UnsafeFilepathError(path2); + } + const oid = buffer2.slice(nullchar + 1, nullchar + 21).toString("hex"); + cursor = nullchar + 21; + _entries.push({ mode, path: path2, oid, type }); + } + return _entries; +} +function limitModeToAllowed(mode) { + if (typeof mode === "number") { + mode = mode.toString(8); + } + if (mode.match(/^0?4.*/)) + return "040000"; + if (mode.match(/^1006.*/)) + return "100644"; + if (mode.match(/^1007.*/)) + return "100755"; + if (mode.match(/^120.*/)) + return "120000"; + if (mode.match(/^160.*/)) + return "160000"; + throw new InternalError(`Could not understand file mode: ${mode}`); +} +function nudgeIntoShape(entry) { + if (!entry.oid && entry.sha) { + entry.oid = entry.sha; + } + entry.mode = limitModeToAllowed(entry.mode); + if (!entry.type) { + entry.type = mode2type$1(entry.mode); + } + return entry; +} +var GitTree = class _GitTree { + constructor(entries) { + if (Buffer.isBuffer(entries)) { + this._entries = parseBuffer(entries); + } else if (Array.isArray(entries)) { + this._entries = entries.map(nudgeIntoShape); + } else { + throw new InternalError("invalid type passed to GitTree constructor"); + } + this._entries.sort(comparePath); + } + static from(tree) { + return new _GitTree(tree); + } + render() { + return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join("\n"); + } + toObject() { + const entries = [...this._entries]; + entries.sort(compareTreeEntryPath); + return Buffer.concat( + entries.map((entry) => { + const mode = Buffer.from(entry.mode.replace(/^0/, "")); + const space2 = Buffer.from(" "); + const path2 = Buffer.from(entry.path, "utf8"); + const nullchar = Buffer.from([0]); + const oid = Buffer.from(entry.oid, "hex"); + return Buffer.concat([mode, space2, path2, nullchar, oid]); + }) + ); + } + /** + * @returns {TreeEntry[]} + */ + entries() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this._entries) { + yield entry; + } + } +}; +var GitObject = class { + static wrap({ type, object }) { + return Buffer.concat([ + Buffer.from(`${type} ${object.byteLength.toString()}\0`), + Buffer.from(object) + ]); + } + static unwrap(buffer2) { + const s = buffer2.indexOf(32); + const i = buffer2.indexOf(0); + const type = buffer2.slice(0, s).toString("utf8"); + const length = buffer2.slice(s + 1, i).toString("utf8"); + const actualLength = buffer2.length - (i + 1); + if (parseInt(length) !== actualLength) { + throw new InternalError( + `Length mismatch: expected ${length} bytes but got ${actualLength} instead.` + ); + } + return { + type, + object: Buffer.from(buffer2.slice(i + 1)) + }; + } +}; +async function readObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const file = await fs.read(`${gitdir}/${source}`); + if (!file) { + return null; + } + return { object: file, format: "deflated", source }; +} +function applyDelta(delta, source) { + const reader = new BufferCursor(delta); + const sourceSize = readVarIntLE(reader); + if (sourceSize !== source.byteLength) { + throw new InternalError( + `applyDelta expected source buffer to be ${sourceSize} bytes but the provided buffer was ${source.length} bytes` + ); + } + const targetSize = readVarIntLE(reader); + let target; + const firstOp = readOp(reader, source); + if (firstOp.byteLength === targetSize) { + target = firstOp; + } else { + target = Buffer.alloc(targetSize); + const writer = new BufferCursor(target); + writer.copy(firstOp); + while (!reader.eof()) { + writer.copy(readOp(reader, source)); + } + const tell = writer.tell(); + if (targetSize !== tell) { + throw new InternalError( + `applyDelta expected target buffer to be ${targetSize} bytes but the resulting buffer was ${tell} bytes` + ); + } + } + return target; +} +function readVarIntLE(reader) { + let result = 0; + let shift = 0; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +function readCompactLE(reader, flags, size) { + let result = 0; + let shift = 0; + while (size--) { + if (flags & 1) { + result |= reader.readUInt8() << shift; + } + flags >>= 1; + shift += 8; + } + return result; +} +function readOp(reader, source) { + const byte = reader.readUInt8(); + const COPY = 128; + const OFFS = 15; + const SIZE = 112; + if (byte & COPY) { + const offset = readCompactLE(reader, byte & OFFS, 4); + let size = readCompactLE(reader, (byte & SIZE) >> 4, 3); + if (size === 0) + size = 65536; + return source.slice(offset, offset + size); + } else { + return reader.slice(byte); + } +} +function fromValue(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue(iterable); +} +var StreamReader = class { + constructor(stream) { + this.stream = getIterator(stream); + this.buffer = null; + this.cursor = 0; + this.undoCursor = 0; + this.started = false; + this._ended = false; + this._discardedBytes = 0; + } + eof() { + return this._ended && this.cursor === this.buffer.length; + } + tell() { + return this._discardedBytes + this.cursor; + } + async byte() { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(1); + return this.buffer[this.undoCursor]; + } + async chunk() { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) + return; + } + this._moveCursor(this.buffer.length); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async read(n) { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async skip(n) { + if (this.eof()) + return; + if (!this.started) + await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + } + async undo() { + this.cursor = this.undoCursor; + } + async _next() { + this.started = true; + let { done, value } = await this.stream.next(); + if (done) { + this._ended = true; + } + if (value) { + value = Buffer.from(value); + } + return value; + } + _trim() { + this.buffer = this.buffer.slice(this.undoCursor); + this.cursor -= this.undoCursor; + this._discardedBytes += this.undoCursor; + this.undoCursor = 0; + } + _moveCursor(n) { + this.undoCursor = this.cursor; + this.cursor += n; + if (this.cursor > this.buffer.length) { + this.cursor = this.buffer.length; + } + } + async _accumulate(n) { + if (this._ended) + return; + const buffers = [this.buffer]; + while (this.cursor + n > lengthBuffers(buffers)) { + const nextbuffer = await this._next(); + if (this._ended) + break; + buffers.push(nextbuffer); + } + this.buffer = Buffer.concat(buffers); + } + async _loadnext() { + this._discardedBytes += this.buffer.length; + this.undoCursor = 0; + this.cursor = 0; + this.buffer = await this._next(); + } + async _init() { + this.buffer = await this._next(); + } +}; +function lengthBuffers(buffers) { + return buffers.reduce((acc, buffer2) => acc + buffer2.length, 0); +} +async function listpack(stream, onData) { + const reader = new StreamReader(stream); + let PACK = await reader.read(4); + PACK = PACK.toString("utf8"); + if (PACK !== "PACK") { + throw new InternalError(`Invalid PACK header '${PACK}'`); + } + let version2 = await reader.read(4); + version2 = version2.readUInt32BE(0); + if (version2 !== 2) { + throw new InternalError(`Invalid packfile version: ${version2}`); + } + let numObjects = await reader.read(4); + numObjects = numObjects.readUInt32BE(0); + if (numObjects < 1) + return; + while (!reader.eof() && numObjects--) { + const offset = reader.tell(); + const { type, length, ofs, reference } = await parseHeader(reader); + const inflator = new import_pako.default.Inflate(); + while (!inflator.result) { + const chunk = await reader.chunk(); + if (!chunk) + break; + inflator.push(chunk, false); + if (inflator.err) { + throw new InternalError(`Pako error: ${inflator.msg}`); + } + if (inflator.result) { + if (inflator.result.length !== length) { + throw new InternalError( + `Inflated object size is different from that stated in packfile.` + ); + } + await reader.undo(); + await reader.read(chunk.length - inflator.strm.avail_in); + const end = reader.tell(); + await onData({ + data: inflator.result, + type, + num: numObjects, + offset, + end, + reference, + ofs + }); + } + } + } +} +async function parseHeader(reader) { + let byte = await reader.byte(); + const type = byte >> 4 & 7; + let length = byte & 15; + if (byte & 128) { + let shift = 4; + do { + byte = await reader.byte(); + length |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + } + let ofs; + let reference; + if (type === 6) { + let shift = 0; + ofs = 0; + const bytes = []; + do { + byte = await reader.byte(); + ofs |= (byte & 127) << shift; + shift += 7; + bytes.push(byte); + } while (byte & 128); + reference = Buffer.from(bytes); + } + if (type === 7) { + const buf = await reader.read(20); + reference = buf; + } + return { type, length, ofs, reference }; +} +var supportsDecompressionStream = false; +async function inflate(buffer2) { + if (supportsDecompressionStream === null) { + supportsDecompressionStream = testDecompressionStream(); + } + return supportsDecompressionStream ? browserInflate(buffer2) : import_pako.default.inflate(buffer2); +} +async function browserInflate(buffer2) { + const ds = new DecompressionStream("deflate"); + const d = new Blob([buffer2]).stream().pipeThrough(ds); + return new Uint8Array(await new Response(d).arrayBuffer()); +} +function testDecompressionStream() { + try { + const ds = new DecompressionStream("deflate"); + if (ds) + return true; + } catch (_) { + } + return false; +} +function decodeVarInt(reader) { + const bytes = []; + let byte = 0; + let multibyte = 0; + do { + byte = reader.readUInt8(); + const lastSeven = byte & 127; + bytes.push(lastSeven); + multibyte = byte & 128; + } while (multibyte); + return bytes.reduce((a, b) => a + 1 << 7 | b, -1); +} +function otherVarIntDecode(reader, startWith) { + let result = startWith; + let shift = 4; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +var GitPackIndex = class _GitPackIndex { + constructor(stuff) { + Object.assign(this, stuff); + this.offsetCache = {}; + } + static async fromIdx({ idx, getExternalRefDelta }) { + const reader = new BufferCursor(idx); + const magic = reader.slice(4).toString("hex"); + if (magic !== "ff744f63") { + return; + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError( + `Unable to read version ${version2} packfile IDX. (Only version 2 supported)` + ); + } + if (idx.byteLength > 2048 * 1024 * 1024) { + throw new InternalError( + `To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.` + ); + } + reader.seek(reader.tell() + 4 * 255); + const size = reader.readUInt32BE(); + const hashes = []; + for (let i = 0; i < size; i++) { + const hash2 = reader.slice(20).toString("hex"); + hashes[i] = hash2; + } + reader.seek(reader.tell() + 4 * size); + const offsets = /* @__PURE__ */ new Map(); + for (let i = 0; i < size; i++) { + offsets.set(hashes[i], reader.readUInt32BE()); + } + const packfileSha = reader.slice(20).toString("hex"); + return new _GitPackIndex({ + hashes, + crcs: {}, + offsets, + packfileSha, + getExternalRefDelta + }); + } + static async fromPack({ pack, getExternalRefDelta, onProgress }) { + const listpackTypes = { + 1: "commit", + 2: "tree", + 3: "blob", + 4: "tag", + 6: "ofs-delta", + 7: "ref-delta" + }; + const offsetToObject = {}; + const packfileSha = pack.slice(-20).toString("hex"); + const hashes = []; + const crcs = {}; + const offsets = /* @__PURE__ */ new Map(); + let totalObjectCount = null; + let lastPercent = null; + await listpack([pack], async ({ data, type, reference, offset, num: num2 }) => { + if (totalObjectCount === null) + totalObjectCount = num2; + const percent = Math.floor( + (totalObjectCount - num2) * 100 / totalObjectCount + ); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Receiving objects", + loaded: totalObjectCount - num2, + total: totalObjectCount + }); + } + } + lastPercent = percent; + type = listpackTypes[type]; + if (["commit", "tree", "blob", "tag"].includes(type)) { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ofs-delta") { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ref-delta") { + offsetToObject[offset] = { + type, + offset + }; + } + }); + const offsetArray = Object.keys(offsetToObject).map(Number); + for (const [i, start] of offsetArray.entries()) { + const end = i + 1 === offsetArray.length ? pack.byteLength - 20 : offsetArray[i + 1]; + const o = offsetToObject[start]; + const crc = import_crc_32.default.buf(pack.slice(start, end)) >>> 0; + o.end = end; + o.crc = crc; + } + const p = new _GitPackIndex({ + pack: Promise.resolve(pack), + packfileSha, + crcs, + hashes, + offsets, + getExternalRefDelta + }); + lastPercent = null; + let count = 0; + const objectsByDepth = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (let offset in offsetToObject) { + offset = Number(offset); + const percent = Math.floor(count * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Resolving deltas", + loaded: count, + total: totalObjectCount + }); + } + } + count++; + lastPercent = percent; + const o = offsetToObject[offset]; + if (o.oid) + continue; + try { + p.readDepth = 0; + p.externalReadDepth = 0; + const { type, object } = await p.readSlice({ start: offset }); + objectsByDepth[p.readDepth] += 1; + const oid = await shasum(GitObject.wrap({ type, object })); + o.oid = oid; + hashes.push(oid); + offsets.set(oid, offset); + crcs[oid] = o.crc; + } catch (err) { + continue; + } + } + hashes.sort(); + return p; + } + async toBuffer() { + const buffers = []; + const write = (str, encoding) => { + buffers.push(Buffer.from(str, encoding)); + }; + write("ff744f63", "hex"); + write("00000002", "hex"); + const fanoutBuffer = new BufferCursor(Buffer.alloc(256 * 4)); + for (let i = 0; i < 256; i++) { + let count = 0; + for (const hash2 of this.hashes) { + if (parseInt(hash2.slice(0, 2), 16) <= i) + count++; + } + fanoutBuffer.writeUInt32BE(count); + } + buffers.push(fanoutBuffer.buffer); + for (const hash2 of this.hashes) { + write(hash2, "hex"); + } + const crcsBuffer = new BufferCursor(Buffer.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + crcsBuffer.writeUInt32BE(this.crcs[hash2]); + } + buffers.push(crcsBuffer.buffer); + const offsetsBuffer = new BufferCursor(Buffer.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + offsetsBuffer.writeUInt32BE(this.offsets.get(hash2)); + } + buffers.push(offsetsBuffer.buffer); + write(this.packfileSha, "hex"); + const totalBuffer = Buffer.concat(buffers); + const sha = await shasum(totalBuffer); + const shaBuffer = Buffer.alloc(20); + shaBuffer.write(sha, "hex"); + return Buffer.concat([totalBuffer, shaBuffer]); + } + async load({ pack }) { + this.pack = pack; + } + async unload() { + this.pack = null; + } + async read({ oid }) { + if (!this.offsets.get(oid)) { + if (this.getExternalRefDelta) { + this.externalReadDepth++; + return this.getExternalRefDelta(oid); + } else { + throw new InternalError(`Could not read object ${oid} from packfile`); + } + } + const start = this.offsets.get(oid); + return this.readSlice({ start }); + } + async readSlice({ start }) { + if (this.offsetCache[start]) { + return Object.assign({}, this.offsetCache[start]); + } + this.readDepth++; + const types2 = { + 16: "commit", + 32: "tree", + 48: "blob", + 64: "tag", + 96: "ofs_delta", + 112: "ref_delta" + }; + if (!this.pack) { + throw new InternalError( + "Tried to read from a GitPackIndex with no packfile loaded into memory" + ); + } + const raw = (await this.pack).slice(start); + const reader = new BufferCursor(raw); + const byte = reader.readUInt8(); + const btype = byte & 112; + let type = types2[btype]; + if (type === void 0) { + throw new InternalError("Unrecognized type: 0b" + btype.toString(2)); + } + const lastFour = byte & 15; + let length = lastFour; + const multibyte = byte & 128; + if (multibyte) { + length = otherVarIntDecode(reader, lastFour); + } + let base = null; + let object = null; + if (type === "ofs_delta") { + const offset = decodeVarInt(reader); + const baseOffset = start - offset; + ({ object: base, type } = await this.readSlice({ start: baseOffset })); + } + if (type === "ref_delta") { + const oid = reader.slice(20).toString("hex"); + ({ object: base, type } = await this.read({ oid })); + } + const buffer2 = raw.slice(reader.tell()); + object = Buffer.from(await inflate(buffer2)); + if (object.byteLength !== length) { + throw new InternalError( + `Packfile told us object would have length ${length} but it had length ${object.byteLength}` + ); + } + if (base) { + object = Buffer.from(applyDelta(object, base)); + } + if (this.readDepth > 3) { + this.offsetCache[start] = { type, object }; + } + return { type, format: "content", object }; + } +}; +var PackfileCache = Symbol("PackfileCache"); +async function loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + const idx = await fs.read(filename); + return GitPackIndex.fromIdx({ idx, getExternalRefDelta }); +} +function readPackIndex({ + fs, + cache, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + if (!cache[PackfileCache]) + cache[PackfileCache] = /* @__PURE__ */ new Map(); + let p = cache[PackfileCache].get(filename); + if (!p) { + p = loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix + }); + cache[PackfileCache].set(filename, p); + } + return p; +} +async function readObjectPacked({ + fs, + cache, + gitdir, + oid, + format = "content", + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + if (!p.pack) { + const packFile = indexFile.replace(/idx$/, "pack"); + p.pack = fs.read(packFile); + } + const result = await p.read({ oid, getExternalRefDelta }); + result.format = "content"; + result.source = `objects/pack/${filename.replace(/idx$/, "pack")}`; + return result; + } + } + return null; +} +async function _readObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result; + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + result = { format: "wrapped", object: Buffer.from(`tree 0\0`) }; + } + if (!result) { + result = await readObjectLoose({ fs, gitdir, oid }); + } + if (!result) { + result = await readObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + if (!result) { + throw new NotFoundError(oid); + } + if (format === "deflated") { + return result; + } + if (result.format === "deflated") { + result.object = Buffer.from(await inflate(result.object)); + result.format = "wrapped"; + } + if (result.format === "wrapped") { + if (format === "wrapped" && result.format === "wrapped") { + return result; + } + const sha = await shasum(result.object); + if (sha !== oid) { + throw new InternalError( + `SHA check failed! Expected ${oid}, computed ${sha}` + ); + } + const { object, type } = GitObject.unwrap(result.object); + result.type = type; + result.object = object; + result.format = "content"; + } + if (result.format === "content") { + if (format === "content") + return result; + return; + } + throw new InternalError(`invalid format "${result.format}"`); +} +var AlreadyExistsError = class _AlreadyExistsError extends BaseError { + /** + * @param {'note'|'remote'|'tag'|'branch'} noun + * @param {string} where + * @param {boolean} canForce + */ + constructor(noun, where, canForce = true) { + super( + `Failed to create ${noun} at ${where} because it already exists.${canForce ? ` (Hint: use 'force: true' parameter to overwrite existing ${noun}.)` : ""}` + ); + this.code = this.name = _AlreadyExistsError.code; + this.data = { noun, where, canForce }; + } +}; +AlreadyExistsError.code = "AlreadyExistsError"; +var AmbiguousError = class _AmbiguousError extends BaseError { + /** + * @param {'oids'|'refs'} nouns + * @param {string} short + * @param {string[]} matches + */ + constructor(nouns, short, matches) { + super( + `Found multiple ${nouns} matching "${short}" (${matches.join( + ", " + )}). Use a longer abbreviation length to disambiguate them.` + ); + this.code = this.name = _AmbiguousError.code; + this.data = { nouns, short, matches }; + } +}; +AmbiguousError.code = "AmbiguousError"; +var CheckoutConflictError = class _CheckoutConflictError extends BaseError { + /** + * @param {string[]} filepaths + */ + constructor(filepaths) { + super( + `Your local changes to the following files would be overwritten by checkout: ${filepaths.join( + ", " + )}` + ); + this.code = this.name = _CheckoutConflictError.code; + this.data = { filepaths }; + } +}; +CheckoutConflictError.code = "CheckoutConflictError"; +var CommitNotFetchedError = class _CommitNotFetchedError extends BaseError { + /** + * @param {string} ref + * @param {string} oid + */ + constructor(ref, oid) { + super( + `Failed to checkout "${ref}" because commit ${oid} is not available locally. Do a git fetch to make the branch available locally.` + ); + this.code = this.name = _CommitNotFetchedError.code; + this.data = { ref, oid }; + } +}; +CommitNotFetchedError.code = "CommitNotFetchedError"; +var EmptyServerResponseError = class _EmptyServerResponseError extends BaseError { + constructor() { + super(`Empty response from git server.`); + this.code = this.name = _EmptyServerResponseError.code; + this.data = {}; + } +}; +EmptyServerResponseError.code = "EmptyServerResponseError"; +var FastForwardError = class _FastForwardError extends BaseError { + constructor() { + super(`A simple fast-forward merge was not possible.`); + this.code = this.name = _FastForwardError.code; + this.data = {}; + } +}; +FastForwardError.code = "FastForwardError"; +var GitPushError = class _GitPushError extends BaseError { + /** + * @param {string} prettyDetails + * @param {PushResult} result + */ + constructor(prettyDetails, result) { + super(`One or more branches were not updated: ${prettyDetails}`); + this.code = this.name = _GitPushError.code; + this.data = { prettyDetails, result }; + } +}; +GitPushError.code = "GitPushError"; +var HttpError = class _HttpError extends BaseError { + /** + * @param {number} statusCode + * @param {string} statusMessage + * @param {string} response + */ + constructor(statusCode, statusMessage, response) { + super(`HTTP Error: ${statusCode} ${statusMessage}`); + this.code = this.name = _HttpError.code; + this.data = { statusCode, statusMessage, response }; + } +}; +HttpError.code = "HttpError"; +var InvalidFilepathError = class _InvalidFilepathError extends BaseError { + /** + * @param {'leading-slash'|'trailing-slash'|'directory'} [reason] + */ + constructor(reason) { + let message = "invalid filepath"; + if (reason === "leading-slash" || reason === "trailing-slash") { + message = `"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.`; + } else if (reason === "directory") { + message = `"filepath" should not be a directory.`; + } + super(message); + this.code = this.name = _InvalidFilepathError.code; + this.data = { reason }; + } +}; +InvalidFilepathError.code = "InvalidFilepathError"; +var InvalidRefNameError = class _InvalidRefNameError extends BaseError { + /** + * @param {string} ref + * @param {string} suggestion + * @param {boolean} canForce + */ + constructor(ref, suggestion) { + super( + `"${ref}" would be an invalid git reference. (Hint: a valid alternative would be "${suggestion}".)` + ); + this.code = this.name = _InvalidRefNameError.code; + this.data = { ref, suggestion }; + } +}; +InvalidRefNameError.code = "InvalidRefNameError"; +var MaxDepthError = class _MaxDepthError extends BaseError { + /** + * @param {number} depth + */ + constructor(depth) { + super(`Maximum search depth of ${depth} exceeded.`); + this.code = this.name = _MaxDepthError.code; + this.data = { depth }; + } +}; +MaxDepthError.code = "MaxDepthError"; +var MergeNotSupportedError = class _MergeNotSupportedError extends BaseError { + constructor() { + super(`Merges with conflicts are not supported yet.`); + this.code = this.name = _MergeNotSupportedError.code; + this.data = {}; + } +}; +MergeNotSupportedError.code = "MergeNotSupportedError"; +var MergeConflictError = class _MergeConflictError extends BaseError { + /** + * @param {Array} filepaths + */ + constructor(filepaths) { + super( + `Automatic merge failed with one or more merge conflicts in the following files: ${filepaths.toString()}. Fix conflicts then commit the result.` + ); + this.code = this.name = _MergeConflictError.code; + this.data = { filepaths }; + } +}; +MergeConflictError.code = "MergeConflictError"; +var MissingNameError = class _MissingNameError extends BaseError { + /** + * @param {'author'|'committer'|'tagger'} role + */ + constructor(role) { + super( + `No name was provided for ${role} in the argument or in the .git/config file.` + ); + this.code = this.name = _MissingNameError.code; + this.data = { role }; + } +}; +MissingNameError.code = "MissingNameError"; +var MissingParameterError = class _MissingParameterError extends BaseError { + /** + * @param {string} parameter + */ + constructor(parameter) { + super( + `The function requires a "${parameter}" parameter but none was provided.` + ); + this.code = this.name = _MissingParameterError.code; + this.data = { parameter }; + } +}; +MissingParameterError.code = "MissingParameterError"; +var MultipleGitError = class _MultipleGitError extends BaseError { + /** + * @param {Error[]} errors + * @param {string} message + */ + constructor(errors) { + super( + `There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more` + ); + this.code = this.name = _MultipleGitError.code; + this.data = { errors }; + this.errors = errors; + } +}; +MultipleGitError.code = "MultipleGitError"; +var ParseError = class _ParseError extends BaseError { + /** + * @param {string} expected + * @param {string} actual + */ + constructor(expected, actual) { + super(`Expected "${expected}" but received "${actual}".`); + this.code = this.name = _ParseError.code; + this.data = { expected, actual }; + } +}; +ParseError.code = "ParseError"; +var PushRejectedError = class _PushRejectedError extends BaseError { + /** + * @param {'not-fast-forward'|'tag-exists'} reason + */ + constructor(reason) { + let message = ""; + if (reason === "not-fast-forward") { + message = " because it was not a simple fast-forward"; + } else if (reason === "tag-exists") { + message = " because tag already exists"; + } + super(`Push rejected${message}. Use "force: true" to override.`); + this.code = this.name = _PushRejectedError.code; + this.data = { reason }; + } +}; +PushRejectedError.code = "PushRejectedError"; +var RemoteCapabilityError = class _RemoteCapabilityError extends BaseError { + /** + * @param {'shallow'|'deepen-since'|'deepen-not'|'deepen-relative'} capability + * @param {'depth'|'since'|'exclude'|'relative'} parameter + */ + constructor(capability, parameter) { + super( + `Remote does not support the "${capability}" so the "${parameter}" parameter cannot be used.` + ); + this.code = this.name = _RemoteCapabilityError.code; + this.data = { capability, parameter }; + } +}; +RemoteCapabilityError.code = "RemoteCapabilityError"; +var SmartHttpError = class _SmartHttpError extends BaseError { + /** + * @param {string} preview + * @param {string} response + */ + constructor(preview, response) { + super( + `Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${preview}` + ); + this.code = this.name = _SmartHttpError.code; + this.data = { preview, response }; + } +}; +SmartHttpError.code = "SmartHttpError"; +var UnknownTransportError = class _UnknownTransportError extends BaseError { + /** + * @param {string} url + * @param {string} transport + * @param {string} [suggestion] + */ + constructor(url, transport, suggestion) { + super( + `Git remote "${url}" uses an unrecognized transport protocol: "${transport}"` + ); + this.code = this.name = _UnknownTransportError.code; + this.data = { url, transport, suggestion }; + } +}; +UnknownTransportError.code = "UnknownTransportError"; +var UrlParseError = class _UrlParseError extends BaseError { + /** + * @param {string} url + */ + constructor(url) { + super(`Cannot parse remote URL: "${url}"`); + this.code = this.name = _UrlParseError.code; + this.data = { url }; + } +}; +UrlParseError.code = "UrlParseError"; +var UserCanceledError = class _UserCanceledError extends BaseError { + constructor() { + super(`The operation was canceled.`); + this.code = this.name = _UserCanceledError.code; + this.data = {}; + } +}; +UserCanceledError.code = "UserCanceledError"; +var IndexResetError = class _IndexResetError extends BaseError { + /** + * @param {Array} filepaths + */ + constructor(filepath) { + super( + `Could not merge index: Entry for '${filepath}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged chages.` + ); + this.code = this.name = _IndexResetError.code; + this.data = { filepath }; + } +}; +IndexResetError.code = "IndexResetError"; +var Errors = /* @__PURE__ */ Object.freeze({ + __proto__: null, + AlreadyExistsError, + AmbiguousError, + CheckoutConflictError, + CommitNotFetchedError, + EmptyServerResponseError, + FastForwardError, + GitPushError, + HttpError, + InternalError, + InvalidFilepathError, + InvalidOidError, + InvalidRefNameError, + MaxDepthError, + MergeNotSupportedError, + MergeConflictError, + MissingNameError, + MissingParameterError, + MultipleGitError, + NoRefspecError, + NotFoundError, + ObjectTypeError, + ParseError, + PushRejectedError, + RemoteCapabilityError, + SmartHttpError, + UnknownTransportError, + UnsafeFilepathError, + UrlParseError, + UserCanceledError, + UnmergedPathsError, + IndexResetError +}); +function formatAuthor({ name, email, timestamp, timezoneOffset }) { + timezoneOffset = formatTimezoneOffset(timezoneOffset); + return `${name} <${email}> ${timestamp} ${timezoneOffset}`; +} +function formatTimezoneOffset(minutes) { + const sign = simpleSign(negateExceptForZero(minutes)); + minutes = Math.abs(minutes); + const hours = Math.floor(minutes / 60); + minutes -= hours * 60; + let strHours = String(hours); + let strMinutes = String(minutes); + if (strHours.length < 2) + strHours = "0" + strHours; + if (strMinutes.length < 2) + strMinutes = "0" + strMinutes; + return (sign === -1 ? "-" : "+") + strHours + strMinutes; +} +function simpleSign(n) { + return Math.sign(n) || (Object.is(n, -0) ? -1 : 1); +} +function negateExceptForZero(n) { + return n === 0 ? n : -n; +} +function normalizeNewlines(str) { + str = str.replace(/\r/g, ""); + str = str.replace(/^\n+/, ""); + str = str.replace(/\n+$/, "") + "\n"; + return str; +} +function parseAuthor(author) { + const [, name, email, timestamp, offset] = author.match( + /^(.*) <(.*)> (.*) (.*)$/ + ); + return { + name, + email, + timestamp: Number(timestamp), + timezoneOffset: parseTimezoneOffset(offset) + }; +} +function parseTimezoneOffset(offset) { + let [, sign, hours, minutes] = offset.match(/(\+|-)(\d\d)(\d\d)/); + minutes = (sign === "+" ? 1 : -1) * (Number(hours) * 60 + Number(minutes)); + return negateExceptForZero$1(minutes); +} +function negateExceptForZero$1(n) { + return n === 0 ? n : -n; +} +var GitAnnotatedTag = class _GitAnnotatedTag { + constructor(tag2) { + if (typeof tag2 === "string") { + this._tag = tag2; + } else if (Buffer.isBuffer(tag2)) { + this._tag = tag2.toString("utf8"); + } else if (typeof tag2 === "object") { + this._tag = _GitAnnotatedTag.render(tag2); + } else { + throw new InternalError( + "invalid type passed to GitAnnotatedTag constructor" + ); + } + } + static from(tag2) { + return new _GitAnnotatedTag(tag2); + } + static render(obj) { + return `object ${obj.object} +type ${obj.type} +tag ${obj.tag} +tagger ${formatAuthor(obj.tagger)} + +${obj.message} +${obj.gpgsig ? obj.gpgsig : ""}`; + } + justHeaders() { + return this._tag.slice(0, this._tag.indexOf("\n\n")); + } + message() { + const tag2 = this.withoutSignature(); + return tag2.slice(tag2.indexOf("\n\n") + 2); + } + parse() { + return Object.assign(this.headers(), { + message: this.message(), + gpgsig: this.gpgsig() + }); + } + render() { + return this._tag; + } + headers() { + const headers = this.justHeaders().split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = {}; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.tagger) { + obj.tagger = parseAuthor(obj.tagger); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + withoutSignature() { + const tag2 = normalizeNewlines(this._tag); + if (tag2.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return tag2; + return tag2.slice(0, tag2.lastIndexOf("\n-----BEGIN PGP SIGNATURE-----")); + } + gpgsig() { + if (this._tag.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) + return; + const signature = this._tag.slice( + this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"), + this._tag.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length + ); + return normalizeNewlines(signature); + } + payload() { + return this.withoutSignature() + "\n"; + } + toObject() { + return Buffer.from(this._tag, "utf8"); + } + static async sign(tag2, sign, secretKey) { + const payload = tag2.payload(); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const signedTag = payload + signature; + return _GitAnnotatedTag.from(signedTag); + } +}; +function indent(str) { + return str.trim().split("\n").map((x) => " " + x).join("\n") + "\n"; +} +function outdent(str) { + return str.split("\n").map((x) => x.replace(/^ /, "")).join("\n"); +} +var GitCommit = class _GitCommit { + constructor(commit2) { + if (typeof commit2 === "string") { + this._commit = commit2; + } else if (Buffer.isBuffer(commit2)) { + this._commit = commit2.toString("utf8"); + } else if (typeof commit2 === "object") { + this._commit = _GitCommit.render(commit2); + } else { + throw new InternalError("invalid type passed to GitCommit constructor"); + } + } + static fromPayloadSignature({ payload, signature }) { + const headers = _GitCommit.justHeaders(payload); + const message = _GitCommit.justMessage(payload); + const commit2 = normalizeNewlines( + headers + "\ngpgsig" + indent(signature) + "\n" + message + ); + return new _GitCommit(commit2); + } + static from(commit2) { + return new _GitCommit(commit2); + } + toObject() { + return Buffer.from(this._commit, "utf8"); + } + // Todo: allow setting the headers and message + headers() { + return this.parseHeaders(); + } + // Todo: allow setting the headers and message + message() { + return _GitCommit.justMessage(this._commit); + } + parse() { + return Object.assign({ message: this.message() }, this.headers()); + } + static justMessage(commit2) { + return normalizeNewlines(commit2.slice(commit2.indexOf("\n\n") + 2)); + } + static justHeaders(commit2) { + return commit2.slice(0, commit2.indexOf("\n\n")); + } + parseHeaders() { + const headers = _GitCommit.justHeaders(this._commit).split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = { + parent: [] + }; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.author) { + obj.author = parseAuthor(obj.author); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + static renderHeaders(obj) { + let headers = ""; + if (obj.tree) { + headers += `tree ${obj.tree} +`; + } else { + headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +`; + } + if (obj.parent) { + if (obj.parent.length === void 0) { + throw new InternalError(`commit 'parent' property should be an array`); + } + for (const p of obj.parent) { + headers += `parent ${p} +`; + } + } + const author = obj.author; + headers += `author ${formatAuthor(author)} +`; + const committer = obj.committer || obj.author; + headers += `committer ${formatAuthor(committer)} +`; + if (obj.gpgsig) { + headers += "gpgsig" + indent(obj.gpgsig); + } + return headers; + } + static render(obj) { + return _GitCommit.renderHeaders(obj) + "\n" + normalizeNewlines(obj.message); + } + render() { + return this._commit; + } + withoutSignature() { + const commit2 = normalizeNewlines(this._commit); + if (commit2.indexOf("\ngpgsig") === -1) + return commit2; + const headers = commit2.slice(0, commit2.indexOf("\ngpgsig")); + const message = commit2.slice( + commit2.indexOf("-----END PGP SIGNATURE-----\n") + "-----END PGP SIGNATURE-----\n".length + ); + return normalizeNewlines(headers + "\n" + message); + } + isolateSignature() { + const signature = this._commit.slice( + this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"), + this._commit.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length + ); + return outdent(signature); + } + static async sign(commit2, sign, secretKey) { + const payload = commit2.withoutSignature(); + const message = _GitCommit.justMessage(commit2._commit); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const headers = _GitCommit.justHeaders(commit2._commit); + const signedCommit = headers + "\ngpgsig" + indent(signature) + "\n" + message; + return _GitCommit.from(signedCommit); + } +}; +async function resolveTree({ fs, cache, gitdir, oid }) { + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + return { tree: GitTree.from([]), oid }; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type === "commit") { + oid = GitCommit.from(object).parse().tree; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree"); + } + return { tree: GitTree.from(object), oid }; +} +var GitWalkerRepo = class { + constructor({ fs, gitdir, ref, cache }) { + this.fs = fs; + this.cache = cache; + this.gitdir = gitdir; + this.mapPromise = (async () => { + const map = /* @__PURE__ */ new Map(); + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (e) { + if (e instanceof NotFoundError) { + oid = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"; + } + } + const tree = await resolveTree({ fs, cache: this.cache, gitdir, oid }); + tree.type = "tree"; + tree.mode = "40000"; + map.set(".", tree); + return map; + })(); + const walker = this; + this.ConstructEntry = class TreeEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, cache, gitdir } = this; + const map = await this.mapPromise; + const obj = map.get(filepath); + if (!obj) + throw new Error(`No obj for ${filepath}`); + const oid = obj.oid; + if (!oid) + throw new Error(`No oid for obj ${JSON.stringify(obj)}`); + if (obj.type !== "tree") { + return null; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== obj.type) { + throw new ObjectTypeError(oid, type, obj.type); + } + const tree = GitTree.from(object); + for (const entry2 of tree) { + map.set(join(filepath, entry2.path), entry2); + } + return tree.entries().map((entry2) => join(filepath, entry2.path)); + } + async type(entry) { + if (entry._type === false) { + const map = await this.mapPromise; + const { type } = map.get(entry._fullpath); + entry._type = type; + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + const map = await this.mapPromise; + const { mode } = map.get(entry._fullpath); + entry._mode = normalizeMode(parseInt(mode, 8)); + } + return entry._mode; + } + async stat(_entry) { + } + async content(entry) { + if (entry._content === false) { + const map = await this.mapPromise; + const { fs, cache, gitdir } = this; + const obj = map.get(entry._fullpath); + const oid = obj.oid; + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== "blob") { + entry._content = void 0; + } else { + entry._content = new Uint8Array(object); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const map = await this.mapPromise; + const obj = map.get(entry._fullpath); + entry._oid = obj.oid; + } + return entry._oid; + } +}; +function TREE({ ref = "HEAD" } = {}) { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerRepo({ fs, gitdir, ref, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitWalkerFs = class { + constructor({ fs, dir, gitdir, cache }) { + this.fs = fs; + this.cache = cache; + this.dir = dir; + this.gitdir = gitdir; + const walker = this; + this.ConstructEntry = class WorkdirEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, dir } = this; + const names = await fs.readdir(join(dir, filepath)); + if (names === null) + return null; + return names.map((name) => join(filepath, name)); + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const { fs, dir } = this; + let stat = await fs.lstat(`${dir}/${entry._fullpath}`); + if (!stat) { + throw new Error( + `ENOENT: no such file or directory, lstat '${entry._fullpath}'` + ); + } + let type = stat.isDirectory() ? "tree" : "blob"; + if (type === "blob" && !stat.isFile() && !stat.isSymbolicLink()) { + type = "special"; + } + entry._type = type; + stat = normalizeStats(stat); + entry._mode = stat.mode; + if (stat.size === -1 && entry._actualSize) { + stat.size = entry._actualSize; + } + entry._stat = stat; + } + return entry._stat; + } + async content(entry) { + if (entry._content === false) { + const { fs, dir } = this; + if (await entry.type() === "tree") { + entry._content = void 0; + } else { + const content = await fs.read(`${dir}/${entry._fullpath}`); + entry._actualSize = content.length; + if (entry._stat && entry._stat.size === -1) { + entry._stat.size = entry._actualSize; + } + entry._content = new Uint8Array(content); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const { fs, gitdir, cache } = this; + let oid; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + const stage = index2.entriesMap.get(entry._fullpath); + const stats = await entry.stat(); + if (!stage || compareStats(stats, stage)) { + const content = await entry.content(); + if (content === void 0) { + oid = void 0; + } else { + oid = await shasum( + GitObject.wrap({ type: "blob", object: await entry.content() }) + ); + if (stage && oid === stage.oid && stats.mode === stage.mode && compareStats(stats, stage)) { + index2.insert({ + filepath: entry._fullpath, + stats, + oid + }); + } + } + } else { + oid = stage.oid; + } + }); + entry._oid = oid; + } + return entry._oid; + } +}; +function WORKDIR() { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, dir, gitdir, cache }) { + return new GitWalkerFs({ fs, dir, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +function arrayRange(start, end) { + const length = end - start; + return Array.from({ length }, (_, i) => start + i); +} +var flat = typeof Array.prototype.flat === "undefined" ? (entries) => entries.reduce((acc, x) => acc.concat(x), []) : (entries) => entries.flat(); +var RunningMinimum = class { + constructor() { + this.value = null; + } + consider(value) { + if (value === null || value === void 0) + return; + if (this.value === null) { + this.value = value; + } else if (value < this.value) { + this.value = value; + } + } + reset() { + this.value = null; + } +}; +function* unionOfIterators(sets) { + const min = new RunningMinimum(); + let minimum; + const heads = []; + const numsets = sets.length; + for (let i = 0; i < numsets; i++) { + heads[i] = sets[i].next().value; + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + if (min.value === null) + return; + while (true) { + const result = []; + minimum = min.value; + min.reset(); + for (let i = 0; i < numsets; i++) { + if (heads[i] !== void 0 && heads[i] === minimum) { + result[i] = heads[i]; + heads[i] = sets[i].next().value; + } else { + result[i] = null; + } + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + yield result; + if (min.value === null) + return; + } +} +async function _walk({ + fs, + cache, + dir, + gitdir, + trees, + // @ts-ignore + map = async (_, entry) => entry, + // The default reducer is a flatmap that filters out undefineds. + reduce = async (parent, children2) => { + const flatten = flat(children2); + if (parent !== void 0) + flatten.unshift(parent); + return flatten; + }, + // The default iterate function walks all children concurrently + iterate = (walk2, children2) => Promise.all([...children2].map(walk2)) +}) { + const walkers = trees.map( + (proxy) => proxy[GitWalkSymbol]({ fs, dir, gitdir, cache }) + ); + const root2 = new Array(walkers.length).fill("."); + const range = arrayRange(0, walkers.length); + const unionWalkerFromReaddir = async (entries) => { + range.map((i) => { + entries[i] = entries[i] && new walkers[i].ConstructEntry(entries[i]); + }); + const subdirs = await Promise.all( + range.map((i) => entries[i] ? walkers[i].readdir(entries[i]) : []) + ); + const iterators = subdirs.map((array) => array === null ? [] : array).map((array) => array[Symbol.iterator]()); + return { + entries, + children: unionOfIterators(iterators) + }; + }; + const walk2 = async (root3) => { + const { entries, children: children2 } = await unionWalkerFromReaddir(root3); + const fullpath = entries.find((entry) => entry && entry._fullpath)._fullpath; + const parent = await map(fullpath, entries); + if (parent !== null) { + let walkedChildren = await iterate(walk2, children2); + walkedChildren = walkedChildren.filter((x) => x !== void 0); + return reduce(parent, walkedChildren); + } + }; + return walk2(root2); +} +async function rmRecursive(fs, filepath) { + const entries = await fs.readdir(filepath); + if (entries == null) { + await fs.rm(filepath); + } else if (entries.length) { + await Promise.all( + entries.map((entry) => { + const subpath = join(filepath, entry); + return fs.lstat(subpath).then((stat) => { + if (!stat) + return; + return stat.isDirectory() ? rmRecursive(fs, subpath) : fs.rm(subpath); + }); + }) + ).then(() => fs.rmdir(filepath)); + } else { + await fs.rmdir(filepath); + } +} +function isPromiseFs(fs) { + const test = (targetFs) => { + try { + return targetFs.readFile().catch((e) => e); + } catch (e) { + return e; + } + }; + return test(fs).constructor.name === "Promise"; +} +var commands = [ + "readFile", + "writeFile", + "mkdir", + "rmdir", + "unlink", + "stat", + "lstat", + "readdir", + "readlink", + "symlink" +]; +function bindFs(target, fs) { + if (isPromiseFs(fs)) { + for (const command of commands) { + target[`_${command}`] = fs[command].bind(fs); + } + } else { + for (const command of commands) { + target[`_${command}`] = (0, import_pify.default)(fs[command].bind(fs)); + } + } + if (isPromiseFs(fs)) { + if (fs.rm) + target._rm = fs.rm.bind(fs); + else if (fs.rmdir.length > 1) + target._rm = fs.rmdir.bind(fs); + else + target._rm = rmRecursive.bind(null, target); + } else { + if (fs.rm) + target._rm = (0, import_pify.default)(fs.rm.bind(fs)); + else if (fs.rmdir.length > 2) + target._rm = (0, import_pify.default)(fs.rmdir.bind(fs)); + else + target._rm = rmRecursive.bind(null, target); + } +} +var FileSystem = class { + constructor(fs) { + if (typeof fs._original_unwrapped_fs !== "undefined") + return fs; + const promises = Object.getOwnPropertyDescriptor(fs, "promises"); + if (promises && promises.enumerable) { + bindFs(this, fs.promises); + } else { + bindFs(this, fs); + } + this._original_unwrapped_fs = fs; + } + /** + * Return true if a file exists, false if it doesn't exist. + * Rethrows errors that aren't related to file existance. + */ + async exists(filepath, options = {}) { + try { + await this._stat(filepath); + return true; + } catch (err) { + if (err.code === "ENOENT" || err.code === "ENOTDIR") { + return false; + } else { + console.log('Unhandled error in "FileSystem.exists()" function', err); + throw err; + } + } + } + /** + * Return the contents of a file if it exists, otherwise returns null. + * + * @param {string} filepath + * @param {object} [options] + * + * @returns {Promise} + */ + async read(filepath, options = {}) { + try { + let buffer2 = await this._readFile(filepath, options); + if (typeof buffer2 !== "string") { + buffer2 = Buffer.from(buffer2); + } + return buffer2; + } catch (err) { + return null; + } + } + /** + * Write a file (creating missing directories if need be) without throwing errors. + * + * @param {string} filepath + * @param {Buffer|Uint8Array|string} contents + * @param {object|string} [options] + */ + async write(filepath, contents, options = {}) { + try { + await this._writeFile(filepath, contents, options); + return; + } catch (err) { + await this.mkdir(dirname(filepath)); + await this._writeFile(filepath, contents, options); + } + } + /** + * Make a directory (or series of nested directories) without throwing an error if it already exists. + */ + async mkdir(filepath, _selfCall = false) { + try { + await this._mkdir(filepath); + return; + } catch (err) { + if (err === null) + return; + if (err.code === "EEXIST") + return; + if (_selfCall) + throw err; + if (err.code === "ENOENT") { + const parent = dirname(filepath); + if (parent === "." || parent === "/" || parent === filepath) + throw err; + await this.mkdir(parent); + await this.mkdir(filepath, true); + } + } + } + /** + * Delete a file without throwing an error if it is already deleted. + */ + async rm(filepath) { + try { + await this._unlink(filepath); + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + } + /** + * Delete a directory without throwing an error if it is already deleted. + */ + async rmdir(filepath, opts) { + try { + if (opts && opts.recursive) { + await this._rm(filepath, opts); + } else { + await this._rmdir(filepath); + } + } catch (err) { + if (err.code !== "ENOENT") + throw err; + } + } + /** + * Read a directory without throwing an error is the directory doesn't exist + */ + async readdir(filepath) { + try { + const names = await this._readdir(filepath); + names.sort(compareStrings); + return names; + } catch (err) { + if (err.code === "ENOTDIR") + return null; + return []; + } + } + /** + * Return a flast list of all the files nested inside a directory + * + * Based on an elegant concurrent recursive solution from SO + * https://stackoverflow.com/a/45130990/2168416 + */ + async readdirDeep(dir) { + const subdirs = await this._readdir(dir); + const files = await Promise.all( + subdirs.map(async (subdir) => { + const res = dir + "/" + subdir; + return (await this._stat(res)).isDirectory() ? this.readdirDeep(res) : res; + }) + ); + return files.reduce((a, f) => a.concat(f), []); + } + /** + * Return the Stats of a file/symlink if it exists, otherwise returns null. + * Rethrows errors that aren't related to file existance. + */ + async lstat(filename) { + try { + const stats = await this._lstat(filename); + return stats; + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + /** + * Reads the contents of a symlink if it exists, otherwise returns null. + * Rethrows errors that aren't related to file existance. + */ + async readlink(filename, opts = { encoding: "buffer" }) { + try { + const link = await this._readlink(filename, opts); + return Buffer.isBuffer(link) ? link : Buffer.from(link); + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + /** + * Write the contents of buffer to a symlink. + */ + async writelink(filename, buffer2) { + return this._symlink(buffer2.toString("utf8"), filename); + } +}; +function assertParameter(name, value) { + if (value === void 0) { + throw new MissingParameterError(name); + } +} +async function modified(entry, base) { + if (!entry && !base) + return false; + if (entry && !base) + return true; + if (!entry && base) + return true; + if (await entry.type() === "tree" && await base.type() === "tree") { + return false; + } + if (await entry.type() === await base.type() && await entry.mode() === await base.mode() && await entry.oid() === await base.oid()) { + return false; + } + return true; +} +async function abortMerge({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 = "HEAD", + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const trees = [TREE({ ref: commit2 }), WORKDIR(), STAGE()]; + let unmergedPaths = []; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + unmergedPaths = index2.unmergedPaths; + }); + const results = await _walk({ + fs, + cache, + dir, + gitdir, + trees, + map: async function(path2, [head, workdir, index2]) { + const staged = !await modified(workdir, index2); + const unmerged = unmergedPaths.includes(path2); + const unmodified = !await modified(index2, head); + if (staged || unmerged) { + return head ? { + path: path2, + mode: await head.mode(), + oid: await head.oid(), + type: await head.type(), + content: await head.content() + } : void 0; + } + if (unmodified) + return false; + else + throw new IndexResetError(path2); + } + }); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const entry of results) { + if (entry === false) + continue; + if (!entry) { + await fs.rmdir(`${dir}/${entry.path}`, { recursive: true }); + index2.delete({ filepath: entry.path }); + continue; + } + if (entry.type === "blob") { + const content = new TextDecoder().decode(entry.content); + await fs.write(`${dir}/${entry.path}`, content, { mode: entry.mode }); + index2.insert({ + filepath: entry.path, + oid: entry.oid, + stage: 0 + }); + } + } + }); + } catch (err) { + err.caller = "git.abortMerge"; + throw err; + } +} +var GitIgnoreManager = class { + static async isIgnored({ fs, dir, gitdir = join(dir, ".git"), filepath }) { + if (basename(filepath) === ".git") + return true; + if (filepath === ".") + return false; + let excludes = ""; + const excludesFile = join(gitdir, "info", "exclude"); + if (await fs.exists(excludesFile)) { + excludes = await fs.read(excludesFile, "utf8"); + } + const pairs = [ + { + gitignore: join(dir, ".gitignore"), + filepath + } + ]; + const pieces = filepath.split("/").filter(Boolean); + for (let i = 1; i < pieces.length; i++) { + const folder = pieces.slice(0, i).join("/"); + const file = pieces.slice(i).join("/"); + pairs.push({ + gitignore: join(dir, folder, ".gitignore"), + filepath: file + }); + } + let ignoredStatus = false; + for (const p of pairs) { + let file; + try { + file = await fs.read(p.gitignore, "utf8"); + } catch (err) { + if (err.code === "NOENT") + continue; + } + const ign = (0, import_ignore.default)().add(excludes); + ign.add(file); + const parentdir = dirname(p.filepath); + if (parentdir !== "." && ign.ignores(parentdir)) + return true; + if (ignoredStatus) { + ignoredStatus = !ign.test(p.filepath).unignored; + } else { + ignoredStatus = ign.test(p.filepath).ignored; + } + } + return ignoredStatus; + } +}; +async function writeObjectLoose({ fs, gitdir, object, format, oid }) { + if (format !== "deflated") { + throw new InternalError( + "GitObjectStoreLoose expects objects to write to be in deflated format" + ); + } + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const filepath = `${gitdir}/${source}`; + if (!await fs.exists(filepath)) + await fs.write(filepath, object); +} +var supportsCompressionStream = null; +async function deflate(buffer2) { + if (supportsCompressionStream === null) { + supportsCompressionStream = testCompressionStream(); + } + return supportsCompressionStream ? browserDeflate(buffer2) : import_pako.default.deflate(buffer2); +} +async function browserDeflate(buffer2) { + const cs = new CompressionStream("deflate"); + const c = new Blob([buffer2]).stream().pipeThrough(cs); + return new Uint8Array(await new Response(c).arrayBuffer()); +} +function testCompressionStream() { + try { + const cs = new CompressionStream("deflate"); + new Blob([]).stream(); + if (cs) + return true; + } catch (_) { + } + return false; +} +async function _writeObject({ + fs, + gitdir, + type, + object, + format = "content", + oid = void 0, + dryRun = false +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + object = Buffer.from(await deflate(object)); + } + if (!dryRun) { + await writeObjectLoose({ fs, gitdir, object, format: "deflated", oid }); + } + return oid; +} +function posixifyPathBuffer(buffer2) { + let idx; + while (~(idx = buffer2.indexOf(92))) + buffer2[idx] = 47; + return buffer2; +} +async function add({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {}, + force = false, + parallel = true +}) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + await GitIndexManager.acquire({ fs, gitdir, cache }, async (index2) => { + return addToIndex({ + dir, + gitdir, + fs, + filepath, + index: index2, + force, + parallel + }); + }); + } catch (err) { + err.caller = "git.add"; + throw err; + } +} +async function addToIndex({ + dir, + gitdir, + fs, + filepath, + index: index2, + force, + parallel +}) { + filepath = Array.isArray(filepath) ? filepath : [filepath]; + const promises = filepath.map(async (currentFilepath) => { + if (!force) { + const ignored = await GitIgnoreManager.isIgnored({ + fs, + dir, + gitdir, + filepath: currentFilepath + }); + if (ignored) + return; + } + const stats = await fs.lstat(join(dir, currentFilepath)); + if (!stats) + throw new NotFoundError(currentFilepath); + if (stats.isDirectory()) { + const children2 = await fs.readdir(join(dir, currentFilepath)); + if (parallel) { + const promises2 = children2.map( + (child) => addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force, + parallel + }) + ); + await Promise.all(promises2); + } else { + for (const child of children2) { + await addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force, + parallel + }); + } + } + } else { + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, currentFilepath)).then(posixifyPathBuffer) : await fs.read(join(dir, currentFilepath)); + if (object === null) + throw new NotFoundError(currentFilepath); + const oid = await _writeObject({ fs, gitdir, type: "blob", object }); + index2.insert({ filepath: currentFilepath, stats, oid }); + } + }); + const settledPromises = await Promise.allSettled(promises); + const rejectedPromises = settledPromises.filter((settle) => settle.status === "rejected").map((settle) => settle.reason); + if (rejectedPromises.length > 1) { + throw new MultipleGitError(rejectedPromises); + } + if (rejectedPromises.length === 1) { + throw rejectedPromises[0]; + } + const fulfilledPromises = settledPromises.filter((settle) => settle.status === "fulfilled" && settle.value).map((settle) => settle.value); + return fulfilledPromises; +} +async function _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree +}) { + if (!ref) { + ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + } + return GitIndexManager.acquire( + { fs, gitdir, cache, allowUnmerged: false }, + async function(index2) { + const inodes = flatFileListToDirectoryStructure(index2.entries); + const inode = inodes.get("."); + if (!tree) { + tree = await constructTree({ fs, gitdir, inode, dryRun }); + } + if (!parent) { + try { + parent = [ + await GitRefManager.resolve({ + fs, + gitdir, + ref + }) + ]; + } catch (err) { + parent = []; + } + } else { + parent = await Promise.all( + parent.map((p) => { + return GitRefManager.resolve({ fs, gitdir, ref: p }); + }) + ); + } + let comm = GitCommit.from({ + tree, + parent, + author, + committer, + message + }); + if (signingKey) { + comm = await GitCommit.sign(comm, onSign, signingKey); + } + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object: comm.toObject(), + dryRun + }); + if (!noUpdateBranch && !dryRun) { + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value: oid + }); + } + return oid; + } + ); +} +async function constructTree({ fs, gitdir, inode, dryRun }) { + const children2 = inode.children; + for (const inode2 of children2) { + if (inode2.type === "tree") { + inode2.metadata.mode = "040000"; + inode2.metadata.oid = await constructTree({ fs, gitdir, inode: inode2, dryRun }); + } + } + const entries = children2.map((inode2) => ({ + mode: inode2.metadata.mode, + path: inode2.basename, + oid: inode2.metadata.oid, + type: inode2.type + })); + const tree = GitTree.from(entries); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object: tree.toObject(), + dryRun + }); + return oid; +} +async function resolveFilepath({ fs, cache, gitdir, oid, filepath }) { + if (filepath.startsWith("/")) { + throw new InvalidFilepathError("leading-slash"); + } else if (filepath.endsWith("/")) { + throw new InvalidFilepathError("trailing-slash"); + } + const _oid = oid; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (filepath === "") { + oid = result.oid; + } else { + const pathArray = filepath.split("/"); + oid = await _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid: _oid, + filepath + }); + } + return oid; +} +async function _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath +}) { + const name = pathArray.shift(); + for (const entry of tree) { + if (entry.path === name) { + if (pathArray.length === 0) { + return entry.oid; + } else { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree", filepath); + } + tree = GitTree.from(object); + return _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath + }); + } + } + } + throw new NotFoundError(`file or directory found at "${oid}:${filepath}"`); +} +async function _readTree({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const { tree, oid: treeOid } = await resolveTree({ fs, cache, gitdir, oid }); + const result = { + oid: treeOid, + tree: tree.entries() + }; + return result; +} +async function _writeTree({ fs, gitdir, tree }) { + const object = GitTree.from(tree).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + format: "content" + }); + return oid; +} +async function _addNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + if (force) { + tree = tree.filter((entry) => entry.path !== oid); + } else { + for (const entry of tree) { + if (entry.path === oid) { + throw new AlreadyExistsError("note", oid); + } + } + } + if (typeof note === "string") { + note = Buffer.from(note, "utf8"); + } + const noteOid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: note, + format: "content" + }); + tree.push({ mode: "100644", path: oid, oid: noteOid, type: "blob" }); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note added by 'isomorphic-git addNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function _getConfig({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.get(path2); +} +async function normalizeAuthorObject({ fs, gitdir, author = {} }) { + let { name, email, timestamp, timezoneOffset } = author; + name = name || await _getConfig({ fs, gitdir, path: "user.name" }); + email = email || await _getConfig({ fs, gitdir, path: "user.email" }) || ""; + if (name === void 0) { + return void 0; + } + timestamp = timestamp != null ? timestamp : Math.floor(Date.now() / 1e3); + timezoneOffset = timezoneOffset != null ? timezoneOffset : new Date(timestamp * 1e3).getTimezoneOffset(); + return { name, email, timestamp, timezoneOffset }; +} +async function normalizeCommitterObject({ + fs, + gitdir, + author, + committer +}) { + committer = Object.assign({}, committer || author); + if (author) { + committer.timestamp = committer.timestamp || author.timestamp; + committer.timezoneOffset = committer.timezoneOffset || author.timezoneOffset; + } + committer = await normalizeAuthorObject({ fs, gitdir, author: committer }); + return committer; +} +async function addNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + note, + force, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("note", note); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _addNote({ + fs: new FileSystem(fs), + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.addNote"; + throw err; + } +} +async function _addRemote({ fs, gitdir, remote, url, force }) { + if (remote !== import_clean_git_ref.default.clean(remote)) { + throw new InvalidRefNameError(remote, import_clean_git_ref.default.clean(remote)); + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!force) { + const remoteNames = await config.getSubsections("remote"); + if (remoteNames.includes(remote)) { + if (url !== await config.get(`remote.${remote}.url`)) { + throw new AlreadyExistsError("remote", remote); + } + } + } + await config.set(`remote.${remote}.url`, url); + await config.set( + `remote.${remote}.fetch`, + `+refs/heads/*:refs/remotes/${remote}/*` + ); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function addRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote, + url, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("remote", remote); + assertParameter("url", url); + return await _addRemote({ + fs: new FileSystem(fs), + gitdir, + remote, + url, + force + }); + } catch (err) { + err.caller = "git.addRemote"; + throw err; + } +} +async function _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false +}) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + const oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + const { type } = await _readObject({ fs, cache, gitdir, oid }); + let tagObject = GitAnnotatedTag.from({ + object: oid, + type, + tag: ref.replace("refs/tags/", ""), + tagger, + message, + gpgsig + }); + if (signingKey) { + tagObject = await GitAnnotatedTag.sign(tagObject, onSign, signingKey); + } + const value = await _writeObject({ + fs, + gitdir, + type: "tag", + object: tagObject.toObject() + }); + await GitRefManager.writeRef({ fs, gitdir, ref, value }); +} +async function annotatedTag({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref, + tagger: _tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const tagger = await normalizeAuthorObject({ fs, gitdir, author: _tagger }); + if (!tagger) + throw new MissingNameError("tagger"); + return await _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message, + gpgsig, + object, + signingKey, + force + }); + } catch (err) { + err.caller = "git.annotatedTag"; + throw err; + } +} +async function _branch({ + fs, + gitdir, + ref, + object, + checkout: checkout2 = false, + force = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + const fullref = `refs/heads/${ref}`; + if (!force) { + const exist = await GitRefManager.exists({ fs, gitdir, ref: fullref }); + if (exist) { + throw new AlreadyExistsError("branch", ref, false); + } + } + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: object || "HEAD" }); + } catch (e) { + } + if (oid) { + await GitRefManager.writeRef({ fs, gitdir, ref: fullref, value: oid }); + } + if (checkout2) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullref + }); + } +} +async function branch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + checkout: checkout2 = false, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _branch({ + fs: new FileSystem(fs), + gitdir, + ref, + object, + checkout: checkout2, + force + }); + } catch (err) { + err.caller = "git.branch"; + throw err; + } +} +var worthWalking = (filepath, root2) => { + if (filepath === "." || root2 == null || root2.length === 0 || root2 === ".") { + return true; + } + if (root2.length >= filepath.length) { + return root2.startsWith(filepath); + } else { + return filepath.startsWith(root2); + } +}; +async function _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track = true +}) { + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (err) { + if (ref === "HEAD") + throw err; + const remoteRef = `${remote}/${ref}`; + oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: remoteRef + }); + if (track) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`branch.${ref}.remote`, remote); + await config.set(`branch.${ref}.merge`, `refs/heads/${ref}`); + await GitConfigManager.save({ fs, gitdir, config }); + } + await GitRefManager.writeRef({ + fs, + gitdir, + ref: `refs/heads/${ref}`, + value: oid + }); + } + if (!noCheckout) { + let ops; + try { + ops = await analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths + }); + } catch (err) { + if (err instanceof NotFoundError && err.data.what === oid) { + throw new CommitNotFetchedError(ref, oid); + } else { + throw err; + } + } + const conflicts2 = ops.filter(([method2]) => method2 === "conflict").map(([method2, fullpath]) => fullpath); + if (conflicts2.length > 0) { + throw new CheckoutConflictError(conflicts2); + } + const errors = ops.filter(([method2]) => method2 === "error").map(([method2, fullpath]) => fullpath); + if (errors.length > 0) { + throw new InternalError(errors.join(", ")); + } + if (dryRun) { + return; + } + let count = 0; + const total = ops.length; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all( + ops.filter( + ([method2]) => method2 === "delete" || method2 === "delete-index" + ).map(async function([method2, fullpath]) { + const filepath = `${dir}/${fullpath}`; + if (method2 === "delete") { + await fs.rm(filepath); + } + index2.delete({ filepath: fullpath }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }) + ); + }); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const [method2, fullpath] of ops) { + if (method2 === "rmdir" || method2 === "rmdir-index") { + const filepath = `${dir}/${fullpath}`; + try { + if (method2 === "rmdir-index") { + index2.delete({ filepath: fullpath }); + } + await fs.rmdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + if (e.code === "ENOTEMPTY") { + console.log( + `Did not delete ${fullpath} because directory is not empty` + ); + } else { + throw e; + } + } + } + } + }); + await Promise.all( + ops.filter(([method2]) => method2 === "mkdir" || method2 === "mkdir-index").map(async function([_, fullpath]) { + const filepath = `${dir}/${fullpath}`; + await fs.mkdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }) + ); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all( + ops.filter( + ([method2]) => method2 === "create" || method2 === "create-index" || method2 === "update" || method2 === "mkdir-index" + ).map(async function([method2, fullpath, oid2, mode, chmod]) { + const filepath = `${dir}/${fullpath}`; + try { + if (method2 !== "create-index" && method2 !== "mkdir-index") { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + if (chmod) { + await fs.rm(filepath); + } + if (mode === 33188) { + await fs.write(filepath, object); + } else if (mode === 33261) { + await fs.write(filepath, object, { mode: 511 }); + } else if (mode === 40960) { + await fs.writelink(filepath, object); + } else { + throw new InternalError( + `Invalid mode 0o${mode.toString(8)} detected in blob ${oid2}` + ); + } + } + const stats = await fs.lstat(filepath); + if (mode === 33261) { + stats.mode = 493; + } + if (method2 === "mkdir-index") { + stats.mode = 57344; + } + index2.insert({ + filepath: fullpath, + stats, + oid: oid2 + }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + console.log(e); + } + }) + ); + }); + } + if (!noUpdateHead) { + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + if (fullRef.startsWith("refs/heads")) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullRef + }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value: oid }); + } + } +} +async function analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths +}) { + let count = 0; + return _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(fullpath, [commit2, workdir, stage]) { + if (fullpath === ".") + return; + if (filepaths && !filepaths.some((base) => worthWalking(fullpath, base))) { + return null; + } + if (onProgress) { + await onProgress({ phase: "Analyzing workdir", loaded: ++count }); + } + const key2 = [!!stage, !!commit2, !!workdir].map(Number).join(""); + switch (key2) { + case "000": + return; + case "001": + if (force && filepaths && filepaths.includes(fullpath)) { + return ["delete", fullpath]; + } + return; + case "010": { + switch (await commit2.type()) { + case "tree": { + return ["mkdir", fullpath]; + } + case "blob": { + return [ + "create", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + case "commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `new entry Unhandled type ${await commit2.type()}` + ]; + } + } + } + case "011": { + switch (`${await commit2.type()}-${await workdir.type()}`) { + case "tree-tree": { + return; + } + case "tree-blob": + case "blob-tree": { + return ["conflict", fullpath]; + } + case "blob-blob": { + if (await commit2.oid() !== await workdir.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } else { + if (await commit2.mode() !== await workdir.mode()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } else { + return ["conflict", fullpath]; + } + } else { + return [ + "create-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + } + } + case "commit-tree": { + return; + } + case "commit-blob": { + return ["conflict", fullpath]; + } + default: { + return ["error", `new entry Unhandled type ${commit2.type}`]; + } + } + } + case "100": { + return ["delete-index", fullpath]; + } + case "101": { + switch (await stage.type()) { + case "tree": { + return ["rmdir", fullpath]; + } + case "blob": { + if (await stage.oid() !== await workdir.oid()) { + if (force) { + return ["delete", fullpath]; + } else { + return ["conflict", fullpath]; + } + } else { + return ["delete", fullpath]; + } + } + case "commit": { + return ["rmdir-index", fullpath]; + } + default: { + return [ + "error", + `delete entry Unhandled type ${await stage.type()}` + ]; + } + } + } + case "110": + case "111": { + switch (`${await stage.type()}-${await commit2.type()}`) { + case "tree-tree": { + return; + } + case "blob-blob": { + if (await stage.oid() === await commit2.oid() && await stage.mode() === await commit2.mode() && !force) { + return; + } + if (workdir) { + if (await workdir.oid() !== await stage.oid() && await workdir.oid() !== await commit2.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } + } else if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await stage.mode() + ]; + } + if (await commit2.mode() !== await stage.mode()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } + if (await commit2.oid() !== await stage.oid()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + false + ]; + } else { + return; + } + } + case "tree-blob": { + return ["update-dir-to-blob", fullpath, await commit2.oid()]; + } + case "blob-tree": { + return ["update-blob-to-tree", fullpath]; + } + case "commit-commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `update entry Unhandled type ${await stage.type()}-${await commit2.type()}` + ]; + } + } + } + } + }, + // Modify the default flat mapping + reduce: async function(parent, children2) { + children2 = flat(children2); + if (!parent) { + return children2; + } else if (parent && parent[0] === "rmdir") { + children2.push(parent); + return children2; + } else { + children2.unshift(parent); + return children2; + } + } + }); +} +async function checkout({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + remote = "origin", + ref: _ref, + filepaths, + noCheckout = false, + noUpdateHead = _ref === void 0, + dryRun = false, + force = false, + track = true, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const ref = _ref || "HEAD"; + return await _checkout({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track + }); + } catch (err) { + err.caller = "git.checkout"; + throw err; + } +} +var abbreviateRx = new RegExp("^refs/(heads/|tags/|remotes/)?(.*)"); +function abbreviateRef(ref) { + const match = abbreviateRx.exec(ref); + if (match) { + if (match[1] === "remotes/" && ref.endsWith("/HEAD")) { + return match[2].slice(0, -5); + } else { + return match[2]; + } + } + return ref; +} +async function _currentBranch({ + fs, + gitdir, + fullname = false, + test = false +}) { + const ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + if (test) { + try { + await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (_) { + return; + } + } + if (!ref.startsWith("refs/")) + return; + return fullname ? ref : abbreviateRef(ref); +} +function translateSSHtoHTTP(url) { + url = url.replace(/^git@([^:]+):/, "https://$1/"); + url = url.replace(/^ssh:\/\//, "https://"); + return url; +} +function calculateBasicAuthHeader({ username = "", password = "" }) { + return `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`; +} +async function forAwait(iterable, cb) { + const iter = getIterator(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) + await cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); +} +async function collect(iterable) { + let size = 0; + const buffers = []; + await forAwait(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} +function extractAuthFromUrl(url) { + let userpass = url.match(/^https?:\/\/([^/]+)@/); + if (userpass == null) + return { url, auth: {} }; + userpass = userpass[1]; + const [username, password] = userpass.split(":"); + url = url.replace(`${userpass}@`, ""); + return { url, auth: { username, password } }; +} +function padHex(b, n) { + const s = n.toString(16); + return "0".repeat(b - s.length) + s; +} +var GitPktLine = class { + static flush() { + return Buffer.from("0000", "utf8"); + } + static delim() { + return Buffer.from("0001", "utf8"); + } + static encode(line) { + if (typeof line === "string") { + line = Buffer.from(line); + } + const length = line.length + 4; + const hexlength = padHex(4, length); + return Buffer.concat([Buffer.from(hexlength, "utf8"), line]); + } + static streamReader(stream) { + const reader = new StreamReader(stream); + return async function read() { + try { + let length = await reader.read(4); + if (length == null) + return true; + length = parseInt(length.toString("utf8"), 16); + if (length === 0) + return null; + if (length === 1) + return null; + const buffer2 = await reader.read(length - 4); + if (buffer2 == null) + return true; + return buffer2; + } catch (err) { + console.log("error", err); + return true; + } + }; + } +}; +async function parseCapabilitiesV2(read) { + const capabilities2 = {}; + let line; + while (true) { + line = await read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const i = line.indexOf("="); + if (i > -1) { + const key2 = line.slice(0, i); + const value = line.slice(i + 1); + capabilities2[key2] = value; + } else { + capabilities2[line] = true; + } + } + return { protocolVersion: 2, capabilities2 }; +} +async function parseRefsAdResponse(stream, { service }) { + const capabilities = /* @__PURE__ */ new Set(); + const refs = /* @__PURE__ */ new Map(); + const symrefs = /* @__PURE__ */ new Map(); + const read = GitPktLine.streamReader(stream); + let lineOne = await read(); + while (lineOne === null) + lineOne = await read(); + if (lineOne === true) + throw new EmptyServerResponseError(); + if (lineOne.includes("version 2")) { + return parseCapabilitiesV2(read); + } + if (lineOne.toString("utf8").replace(/\n$/, "") !== `# service=${service}`) { + throw new ParseError(`# service=${service}\\n`, lineOne.toString("utf8")); + } + let lineTwo = await read(); + while (lineTwo === null) + lineTwo = await read(); + if (lineTwo === true) + return { capabilities, refs, symrefs }; + lineTwo = lineTwo.toString("utf8"); + if (lineTwo.includes("version 2")) { + return parseCapabilitiesV2(read); + } + const [firstRef, capabilitiesLine] = splitAndAssert(lineTwo, "\0", "\\x00"); + capabilitiesLine.split(" ").map((x) => capabilities.add(x)); + const [ref, name] = splitAndAssert(firstRef, " ", " "); + refs.set(name, ref); + while (true) { + const line = await read(); + if (line === true) + break; + if (line !== null) { + const [ref2, name2] = splitAndAssert(line.toString("utf8"), " ", " "); + refs.set(name2, ref2); + } + } + for (const cap of capabilities) { + if (cap.startsWith("symref=")) { + const m = cap.match(/symref=([^:]+):(.*)/); + if (m.length === 3) { + symrefs.set(m[1], m[2]); + } + } + } + return { protocolVersion: 1, capabilities, refs, symrefs }; +} +function splitAndAssert(line, sep2, expected) { + const split = line.trim().split(sep2); + if (split.length !== 2) { + throw new ParseError( + `Two strings separated by '${expected}'`, + line.toString("utf8") + ); + } + return split; +} +var corsProxify = (corsProxy, url) => corsProxy.endsWith("?") ? `${corsProxy}${url}` : `${corsProxy}/${url.replace(/^https?:\/\//, "")}`; +var updateHeaders = (headers, auth) => { + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (auth.headers) { + Object.assign(headers, auth.headers); + } +}; +var stringifyBody = async (res) => { + try { + const data = Buffer.from(await collect(res.body)); + const response = data.toString("utf8"); + const preview = response.length < 256 ? response : response.slice(0, 256) + "..."; + return { preview, response, data }; + } catch (e) { + return {}; + } +}; +var GitRemoteHTTP = class { + static async capabilities() { + return ["discover", "connect"]; + } + /** + * @param {Object} args + * @param {HttpClient} args.http + * @param {ProgressCallback} [args.onProgress] + * @param {AuthCallback} [args.onAuth] + * @param {AuthFailureCallback} [args.onAuthFailure] + * @param {AuthSuccessCallback} [args.onAuthSuccess] + * @param {string} [args.corsProxy] + * @param {string} args.service + * @param {string} args.url + * @param {Object} args.headers + * @param {1 | 2} args.protocolVersion - Git Protocol Version + */ + static async discover({ + http, + onProgress, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service, + url: _origUrl, + headers, + protocolVersion + }) { + let { url, auth } = extractAuthFromUrl(_origUrl); + const proxifiedURL = corsProxy ? corsProxify(corsProxy, url) : url; + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (protocolVersion === 2) { + headers["Git-Protocol"] = "version=2"; + } + let res; + let tryAgain; + let providedAuthBefore = false; + do { + res = await http.request({ + onProgress, + method: "GET", + url: `${proxifiedURL}/info/refs?service=${service}`, + headers + }); + tryAgain = false; + if (res.statusCode === 401 || res.statusCode === 203) { + const getAuth = providedAuthBefore ? onAuthFailure : onAuth; + if (getAuth) { + auth = await getAuth(url, { + ...auth, + headers: { ...headers } + }); + if (auth && auth.cancel) { + throw new UserCanceledError(); + } else if (auth) { + updateHeaders(headers, auth); + providedAuthBefore = true; + tryAgain = true; + } + } + } else if (res.statusCode === 200 && providedAuthBefore && onAuthSuccess) { + await onAuthSuccess(url, auth); + } + } while (tryAgain); + if (res.statusCode !== 200) { + const { response } = await stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + if (res.headers["content-type"] === `application/x-${service}-advertisement`) { + const remoteHTTP = await parseRefsAdResponse(res.body, { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } else { + const { preview, response, data } = await stringifyBody(res); + try { + const remoteHTTP = await parseRefsAdResponse([data], { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } catch (e) { + throw new SmartHttpError(preview, response); + } + } + } + /** + * @param {Object} args + * @param {HttpClient} args.http + * @param {ProgressCallback} [args.onProgress] + * @param {string} [args.corsProxy] + * @param {string} args.service + * @param {string} args.url + * @param {Object} [args.headers] + * @param {any} args.body + * @param {any} args.auth + */ + static async connect({ + http, + onProgress, + corsProxy, + service, + url, + auth, + body, + headers + }) { + const urlAuth = extractAuthFromUrl(url); + if (urlAuth) + url = urlAuth.url; + if (corsProxy) + url = corsProxify(corsProxy, url); + headers["content-type"] = `application/x-${service}-request`; + headers.accept = `application/x-${service}-result`; + updateHeaders(headers, auth); + const res = await http.request({ + onProgress, + method: "POST", + url: `${url}/${service}`, + body, + headers + }); + if (res.statusCode !== 200) { + const { response } = stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + return res; + } +}; +function parseRemoteUrl({ url }) { + if (url.startsWith("git@")) { + return { + transport: "ssh", + address: url + }; + } + const matches = url.match(/(\w+)(:\/\/|::)(.*)/); + if (matches === null) + return; + if (matches[2] === "://") { + return { + transport: matches[1], + address: matches[0] + }; + } + if (matches[2] === "::") { + return { + transport: matches[1], + address: matches[3] + }; + } +} +var GitRemoteManager = class { + static getRemoteHelperFor({ url }) { + const remoteHelpers = /* @__PURE__ */ new Map(); + remoteHelpers.set("http", GitRemoteHTTP); + remoteHelpers.set("https", GitRemoteHTTP); + const parts = parseRemoteUrl({ url }); + if (!parts) { + throw new UrlParseError(url); + } + if (remoteHelpers.has(parts.transport)) { + return remoteHelpers.get(parts.transport); + } + throw new UnknownTransportError( + url, + parts.transport, + parts.transport === "ssh" ? translateSSHtoHTTP(url) : void 0 + ); + } +}; +var lock$1 = null; +var GitShallowManager = class { + static async read({ fs, gitdir }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + const oids = /* @__PURE__ */ new Set(); + await lock$1.acquire(filepath, async function() { + const text2 = await fs.read(filepath, { encoding: "utf8" }); + if (text2 === null) + return oids; + if (text2.trim() === "") + return oids; + text2.trim().split("\n").map((oid) => oids.add(oid)); + }); + return oids; + } + static async write({ fs, gitdir, oids }) { + if (lock$1 === null) + lock$1 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + if (oids.size > 0) { + const text2 = [...oids].join("\n") + "\n"; + await lock$1.acquire(filepath, async function() { + await fs.write(filepath, text2, { + encoding: "utf8" + }); + }); + } else { + await lock$1.acquire(filepath, async function() { + await fs.rm(filepath); + }); + } + } +}; +async function hasObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + return fs.exists(`${gitdir}/${source}`); +} +async function hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + if (p.offsets.has(oid)) { + return true; + } + } + return false; +} +async function hasObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result = await hasObjectLoose({ fs, gitdir, oid }); + if (!result) { + result = await hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + return result; +} +function emptyPackfile(pack) { + const pheader = "5041434b"; + const version2 = "00000002"; + const obCount = "00000000"; + const header = pheader + version2 + obCount; + return pack.slice(0, 12).toString("hex") === header; +} +function filterCapabilities(server, client) { + const serverNames = server.map((cap) => cap.split("=", 1)[0]); + return client.filter((cap) => { + const name = cap.split("=", 1)[0]; + return serverNames.includes(name); + }); +} +var pkg = { + name: "isomorphic-git", + version: "1.24.2", + agent: "git/isomorphic-git@1.24.2" +}; +var FIFO = class { + constructor() { + this._queue = []; + } + write(chunk) { + if (this._ended) { + throw Error("You cannot write to a FIFO that has already been ended!"); + } + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ value: chunk }); + } else { + this._queue.push(chunk); + } + } + end() { + this._ended = true; + if (this._waiting) { + const resolve = this._waiting; + this._waiting = null; + resolve({ done: true }); + } + } + destroy(err) { + this._ended = true; + this.error = err; + } + async next() { + if (this._queue.length > 0) { + return { value: this._queue.shift() }; + } + if (this._ended) { + return { done: true }; + } + if (this._waiting) { + throw Error( + "You cannot call read until the previous call to read has returned!" + ); + } + return new Promise((resolve) => { + this._waiting = resolve; + }); + } +}; +function findSplit(str) { + const r = str.indexOf("\r"); + const n = str.indexOf("\n"); + if (r === -1 && n === -1) + return -1; + if (r === -1) + return n + 1; + if (n === -1) + return r + 1; + if (n === r + 1) + return n + 1; + return Math.min(r, n) + 1; +} +function splitLines(input) { + const output = new FIFO(); + let tmp = ""; + (async () => { + await forAwait(input, (chunk) => { + chunk = chunk.toString("utf8"); + tmp += chunk; + while (true) { + const i = findSplit(tmp); + if (i === -1) + break; + output.write(tmp.slice(0, i)); + tmp = tmp.slice(i); + } + }); + if (tmp.length > 0) { + output.write(tmp); + } + output.end(); + })(); + return output; +} +var GitSideBand = class { + static demux(input) { + const read = GitPktLine.streamReader(input); + const packetlines = new FIFO(); + const packfile = new FIFO(); + const progress = new FIFO(); + const nextBit = async function() { + const line = await read(); + if (line === null) + return nextBit(); + if (line === true) { + packetlines.end(); + progress.end(); + packfile.end(); + return; + } + switch (line[0]) { + case 1: { + packfile.write(line.slice(1)); + break; + } + case 2: { + progress.write(line.slice(1)); + break; + } + case 3: { + const error = line.slice(1); + progress.write(error); + packfile.destroy(new Error(error.toString("utf8"))); + return; + } + default: { + packetlines.write(line.slice(0)); + } + } + nextBit(); + }; + nextBit(); + return { + packetlines, + packfile, + progress + }; + } + // static mux ({ + // protocol, // 'side-band' or 'side-band-64k' + // packetlines, + // packfile, + // progress, + // error + // }) { + // const MAX_PACKET_LENGTH = protocol === 'side-band-64k' ? 999 : 65519 + // let output = new PassThrough() + // packetlines.on('data', data => { + // if (data === null) { + // output.write(GitPktLine.flush()) + // } else { + // output.write(GitPktLine.encode(data)) + // } + // }) + // let packfileWasEmpty = true + // let packfileEnded = false + // let progressEnded = false + // let errorEnded = false + // let goodbye = Buffer.concat([ + // GitPktLine.encode(Buffer.from('010A', 'hex')), + // GitPktLine.flush() + // ]) + // packfile + // .on('data', data => { + // packfileWasEmpty = false + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('01', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // packfileEnded = true + // if (!packfileWasEmpty) output.write(goodbye) + // if (progressEnded && errorEnded) output.end() + // }) + // progress + // .on('data', data => { + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('02', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // progressEnded = true + // if (packfileEnded && errorEnded) output.end() + // }) + // error + // .on('data', data => { + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('03', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // errorEnded = true + // if (progressEnded && packfileEnded) output.end() + // }) + // return output + // } +}; +async function parseUploadPackResponse(stream) { + const { packetlines, packfile, progress } = GitSideBand.demux(stream); + const shallows = []; + const unshallows = []; + const acks = []; + let nak = false; + let done = false; + return new Promise((resolve, reject) => { + forAwait(packetlines, (data) => { + const line = data.toString("utf8").trim(); + if (line.startsWith("shallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + shallows.push(oid); + } else if (line.startsWith("unshallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + unshallows.push(oid); + } else if (line.startsWith("ACK")) { + const [, oid, status2] = line.split(" "); + acks.push({ oid, status: status2 }); + if (!status2) + done = true; + } else if (line.startsWith("NAK")) { + nak = true; + done = true; + } + if (done) { + resolve({ shallows, unshallows, acks, nak, packfile, progress }); + } + }); + }); +} +function writeUploadPackRequest({ + capabilities = [], + wants = [], + haves = [], + shallows = [], + depth = null, + since = null, + exclude = [] +}) { + const packstream = []; + wants = [...new Set(wants)]; + let firstLineCapabilities = ` ${capabilities.join(" ")}`; + for (const oid of wants) { + packstream.push(GitPktLine.encode(`want ${oid}${firstLineCapabilities} +`)); + firstLineCapabilities = ""; + } + for (const oid of shallows) { + packstream.push(GitPktLine.encode(`shallow ${oid} +`)); + } + if (depth !== null) { + packstream.push(GitPktLine.encode(`deepen ${depth} +`)); + } + if (since !== null) { + packstream.push( + GitPktLine.encode(`deepen-since ${Math.floor(since.valueOf() / 1e3)} +`) + ); + } + for (const oid of exclude) { + packstream.push(GitPktLine.encode(`deepen-not ${oid} +`)); + } + packstream.push(GitPktLine.flush()); + for (const oid of haves) { + packstream.push(GitPktLine.encode(`have ${oid} +`)); + } + packstream.push(GitPktLine.encode(`done +`)); + return packstream; +} +async function _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote: _remote, + url: _url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative: relative2 = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false +}) { + const ref = _ref || await _currentBranch({ fs, gitdir, test: true }); + const config = await GitConfigManager.get({ fs, gitdir }); + const remote = _remote || ref && await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || ref && await config.get(`branch.${ref}.merge`) || _ref || "HEAD"; + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remoteHTTP = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = remoteHTTP.auth; + const remoteRefs = remoteHTTP.refs; + if (remoteRefs.size === 0) { + return { + defaultBranch: null, + fetchHead: null, + fetchHeadDescription: null + }; + } + if (depth !== null && !remoteHTTP.capabilities.has("shallow")) { + throw new RemoteCapabilityError("shallow", "depth"); + } + if (since !== null && !remoteHTTP.capabilities.has("deepen-since")) { + throw new RemoteCapabilityError("deepen-since", "since"); + } + if (exclude.length > 0 && !remoteHTTP.capabilities.has("deepen-not")) { + throw new RemoteCapabilityError("deepen-not", "exclude"); + } + if (relative2 === true && !remoteHTTP.capabilities.has("deepen-relative")) { + throw new RemoteCapabilityError("deepen-relative", "relative"); + } + const { oid, fullref } = GitRefManager.resolveAgainstMap({ + ref: remoteRef, + map: remoteRefs + }); + for (const remoteRef2 of remoteRefs.keys()) { + if (remoteRef2 === fullref || remoteRef2 === "HEAD" || remoteRef2.startsWith("refs/heads/") || tags && remoteRef2.startsWith("refs/tags/")) { + continue; + } + remoteRefs.delete(remoteRef2); + } + const capabilities = filterCapabilities( + [...remoteHTTP.capabilities], + [ + "multi_ack_detailed", + "no-done", + "side-band-64k", + // Note: I removed 'thin-pack' option since our code doesn't "fatten" packfiles, + // which is necessary for compatibility with git. It was the cause of mysterious + // 'fatal: pack has [x] unresolved deltas' errors that plagued us for some time. + // isomorphic-git is perfectly happy with thin packfiles in .git/objects/pack but + // canonical git it turns out is NOT. + "ofs-delta", + `agent=${pkg.agent}` + ] + ); + if (relative2) + capabilities.push("deepen-relative"); + const wants = singleBranch ? [oid] : remoteRefs.values(); + const haveRefs = singleBranch ? [ref] : await GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs` + }); + let haves = []; + for (let ref2 of haveRefs) { + try { + ref2 = await GitRefManager.expand({ fs, gitdir, ref: ref2 }); + const oid2 = await GitRefManager.resolve({ fs, gitdir, ref: ref2 }); + if (await hasObject({ fs, cache, gitdir, oid: oid2 })) { + haves.push(oid2); + } + } catch (err) { + } + } + haves = [...new Set(haves)]; + const oids = await GitShallowManager.read({ fs, gitdir }); + const shallows = remoteHTTP.capabilities.has("shallow") ? [...oids] : []; + const packstream = writeUploadPackRequest({ + capabilities, + wants, + haves, + shallows, + depth, + since, + exclude + }); + const packbuffer = Buffer.from(await collect(packstream)); + const raw = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-upload-pack", + url, + auth, + body: [packbuffer], + headers + }); + const response = await parseUploadPackResponse(raw.body); + if (raw.headers) { + response.headers = raw.headers; + } + for (const oid2 of response.shallows) { + if (!oids.has(oid2)) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + const commit2 = new GitCommit(object); + const hasParents = await Promise.all( + commit2.headers().parent.map((oid3) => hasObject({ fs, cache, gitdir, oid: oid3 })) + ); + const haveAllParents = hasParents.length === 0 || hasParents.every((has) => has); + if (!haveAllParents) { + oids.add(oid2); + } + } catch (err) { + oids.add(oid2); + } + } + } + for (const oid2 of response.unshallows) { + oids.delete(oid2); + } + await GitShallowManager.write({ fs, gitdir, oids }); + if (singleBranch) { + const refs = /* @__PURE__ */ new Map([[fullref, oid]]); + const symrefs = /* @__PURE__ */ new Map(); + let bail = 10; + let key2 = fullref; + while (bail--) { + const value = remoteHTTP.symrefs.get(key2); + if (value === void 0) + break; + symrefs.set(key2, value); + key2 = value; + } + const realRef = remoteRefs.get(key2); + if (realRef) { + refs.set(key2, realRef); + } + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + prune + }); + if (prune) { + response.pruned = pruned; + } + } else { + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs: remoteRefs, + symrefs: remoteHTTP.symrefs, + tags, + prune, + pruneTags + }); + if (prune) { + response.pruned = pruned; + } + } + response.HEAD = remoteHTTP.symrefs.get("HEAD"); + if (response.HEAD === void 0) { + const { oid: oid2 } = GitRefManager.resolveAgainstMap({ + ref: "HEAD", + map: remoteRefs + }); + for (const [key2, value] of remoteRefs.entries()) { + if (key2 !== "HEAD" && value === oid2) { + response.HEAD = key2; + break; + } + } + } + const noun = fullref.startsWith("refs/tags") ? "tag" : "branch"; + response.FETCH_HEAD = { + oid, + description: `${noun} '${abbreviateRef(fullref)}' of ${url}` + }; + if (onProgress || onMessage) { + const lines = splitLines(response.progress); + forAwait(lines, async (line) => { + if (onMessage) + await onMessage(line); + if (onProgress) { + const matches = line.match(/([^:]*).*\((\d+?)\/(\d+?)\)/); + if (matches) { + await onProgress({ + phase: matches[1].trim(), + loaded: parseInt(matches[2], 10), + total: parseInt(matches[3], 10) + }); + } + } + }); + } + const packfile = Buffer.from(await collect(response.packfile)); + const packfileSha = packfile.slice(-20).toString("hex"); + const res = { + defaultBranch: response.HEAD, + fetchHead: response.FETCH_HEAD.oid, + fetchHeadDescription: response.FETCH_HEAD.description + }; + if (response.headers) { + res.headers = response.headers; + } + if (prune) { + res.pruned = response.pruned; + } + if (packfileSha !== "" && !emptyPackfile(packfile)) { + res.packfile = `objects/pack/pack-${packfileSha}.pack`; + const fullpath = join(gitdir, res.packfile); + await fs.write(fullpath, packfile); + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + const idx = await GitPackIndex.fromPack({ + pack: packfile, + getExternalRefDelta, + onProgress + }); + await fs.write(fullpath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + } + return res; +} +async function _init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + if (await fs.exists(gitdir + "/config")) + return; + let folders = [ + "hooks", + "info", + "objects/info", + "objects/pack", + "refs/heads", + "refs/tags" + ]; + folders = folders.map((dir2) => gitdir + "/" + dir2); + for (const folder of folders) { + await fs.mkdir(folder); + } + await fs.write( + gitdir + "/config", + `[core] + repositoryformatversion = 0 + filemode = false + bare = ${bare} +` + (bare ? "" : " logallrefupdates = true\n") + " symlinks = false\n ignorecase = true\n" + ); + await fs.write(gitdir + "/HEAD", `ref: refs/heads/${defaultBranch} +`); +} +async function _clone({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative: relative2, + singleBranch, + noCheckout, + noTags, + headers +}) { + try { + await _init({ fs, gitdir }); + await _addRemote({ fs, gitdir, remote, url, force: false }); + if (corsProxy) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`http.corsProxy`, corsProxy); + await GitConfigManager.save({ fs, gitdir, config }); + } + const { defaultBranch, fetchHead } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + corsProxy, + depth, + since, + exclude, + relative: relative2, + singleBranch, + headers, + tags: !noTags + }); + if (fetchHead === null) + return; + ref = ref || defaultBranch; + ref = ref.replace("refs/heads/", ""); + await _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout + }); + } catch (err) { + await fs.rmdir(gitdir, { recursive: true, maxRetries: 10 }).catch(() => void 0); + throw err; + } +} +async function clone({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + url, + corsProxy = void 0, + ref = void 0, + remote = "origin", + depth = void 0, + since = void 0, + exclude = [], + relative: relative2 = false, + singleBranch = false, + noCheckout = false, + noTags = false, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + if (!noCheckout) { + assertParameter("dir", dir); + } + assertParameter("url", url); + return await _clone({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative: relative2, + singleBranch, + noCheckout, + noTags, + headers + }); + } catch (err) { + err.caller = "git.clone"; + throw err; + } +} +async function commit({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + message, + author: _author, + committer: _committer, + signingKey, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("message", message); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + dryRun, + noUpdateBranch, + ref, + parent, + tree + }); + } catch (err) { + err.caller = "git.commit"; + throw err; + } +} +async function currentBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + fullname = false, + test = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _currentBranch({ + fs: new FileSystem(fs), + gitdir, + fullname, + test + }); + } catch (err) { + err.caller = "git.currentBranch"; + throw err; + } +} +async function _deleteBranch({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/heads/") ? ref : `refs/heads/${ref}`; + const exist = await GitRefManager.exists({ fs, gitdir, ref }); + if (!exist) { + throw new NotFoundError(ref); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const currentRef = await _currentBranch({ fs, gitdir, fullname: true }); + if (fullRef === currentRef) { + const value = await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value }); + } + await GitRefManager.deleteRef({ fs, gitdir, ref: fullRef }); +} +async function deleteBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref +}) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteBranch({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteBranch"; + throw err; + } +} +async function deleteRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + await GitRefManager.deleteRef({ fs: new FileSystem(fs), gitdir, ref }); + } catch (err) { + err.caller = "git.deleteRef"; + throw err; + } +} +async function _deleteRemote({ fs, gitdir, remote }) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.deleteSection("remote", remote); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function deleteRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("remote", remote); + return await _deleteRemote({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.deleteRemote"; + throw err; + } +} +async function _deleteTag({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + await GitRefManager.deleteRef({ fs, gitdir, ref }); +} +async function deleteTag({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteTag({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteTag"; + throw err; + } +} +async function expandOidLoose({ fs, gitdir, oid: short }) { + const prefix = short.slice(0, 2); + const objectsSuffixes = await fs.readdir(`${gitdir}/objects/${prefix}`); + return objectsSuffixes.map((suffix) => `${prefix}${suffix}`).filter((_oid) => _oid.startsWith(short)); +} +async function expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta +}) { + const results = []; + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) + throw new InternalError(p.error); + for (const oid of p.offsets.keys()) { + if (oid.startsWith(short)) + results.push(oid); + } + } + return results; +} +async function _expandOid({ fs, cache, gitdir, oid: short }) { + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const results1 = await expandOidLoose({ fs, gitdir, oid: short }); + const results2 = await expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta + }); + const results = results1.concat(results2); + if (results.length === 1) { + return results[0]; + } + if (results.length > 1) { + throw new AmbiguousError("oids", short, results); + } + throw new NotFoundError(`an object matching "${short}"`); +} +async function expandOid({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _expandOid({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.expandOid"; + throw err; + } +} +async function expandRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await GitRefManager.expand({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.expandRef"; + throw err; + } +} +async function _findMergeBase({ fs, cache, gitdir, oids }) { + const visits = {}; + const passes = oids.length; + let heads = oids.map((oid, index2) => ({ index: index2, oid })); + while (heads.length) { + const result = /* @__PURE__ */ new Set(); + for (const { oid, index: index2 } of heads) { + if (!visits[oid]) + visits[oid] = /* @__PURE__ */ new Set(); + visits[oid].add(index2); + if (visits[oid].size === passes) { + result.add(oid); + } + } + if (result.size > 0) { + return [...result]; + } + const newheads = /* @__PURE__ */ new Map(); + for (const { oid, index: index2 } of heads) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid }); + const commit2 = GitCommit.from(object); + const { parent } = commit2.parseHeaders(); + for (const oid2 of parent) { + if (!visits[oid2] || !visits[oid2].has(index2)) { + newheads.set(oid2 + ":" + index2, { oid: oid2, index: index2 }); + } + } + } catch (err) { + } + } + heads = Array.from(newheads.values()); + } + return []; +} +var LINEBREAKS = /^.*(\r?\n|$)/gm; +function mergeFile({ branches, contents }) { + const ourName = branches[1]; + const theirName = branches[2]; + const baseContent = contents[0]; + const ourContent = contents[1]; + const theirContent = contents[2]; + const ours = ourContent.match(LINEBREAKS); + const base = baseContent.match(LINEBREAKS); + const theirs = theirContent.match(LINEBREAKS); + const result = (0, import_diff3.default)(ours, base, theirs); + const markerSize = 7; + let mergedText = ""; + let cleanMerge = true; + for (const item of result) { + if (item.ok) { + mergedText += item.ok.join(""); + } + if (item.conflict) { + cleanMerge = false; + mergedText += `${"<".repeat(markerSize)} ${ourName} +`; + mergedText += item.conflict.a.join(""); + mergedText += `${"=".repeat(markerSize)} +`; + mergedText += item.conflict.b.join(""); + mergedText += `${">".repeat(markerSize)} ${theirName} +`; + } + } + return { cleanMerge, mergedText }; +} +async function mergeTree({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + index: index2, + ourOid, + baseOid, + theirOid, + ourName = "ours", + baseName = "base", + theirName = "theirs", + dryRun = false, + abortOnConflict = true, + mergeDriver +}) { + const ourTree = TREE({ ref: ourOid }); + const baseTree = TREE({ ref: baseOid }); + const theirTree = TREE({ ref: theirOid }); + const unmergedFiles = []; + const results = await _walk({ + fs, + cache, + dir, + gitdir, + trees: [ourTree, baseTree, theirTree], + map: async function(filepath, [ours, base, theirs]) { + const path2 = basename(filepath); + const ourChange = await modified(ours, base); + const theirChange = await modified(theirs, base); + switch (`${ourChange}-${theirChange}`) { + case "false-false": { + return { + mode: await base.mode(), + path: path2, + oid: await base.oid(), + type: await base.type() + }; + } + case "false-true": { + return theirs ? { + mode: await theirs.mode(), + path: path2, + oid: await theirs.oid(), + type: await theirs.type() + } : void 0; + } + case "true-false": { + return ours ? { + mode: await ours.mode(), + path: path2, + oid: await ours.oid(), + type: await ours.type() + } : void 0; + } + case "true-true": { + if (ours && base && theirs && await ours.type() === "blob" && await base.type() === "blob" && await theirs.type() === "blob") { + return mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + baseName, + theirName, + mergeDriver + }).then(async (r) => { + if (!r.cleanMerge) { + unmergedFiles.push(filepath); + if (!abortOnConflict) { + const baseOid2 = await base.oid(); + const ourOid2 = await ours.oid(); + const theirOid2 = await theirs.oid(); + index2.delete({ filepath }); + index2.insert({ filepath, oid: baseOid2, stage: 1 }); + index2.insert({ filepath, oid: ourOid2, stage: 2 }); + index2.insert({ filepath, oid: theirOid2, stage: 3 }); + } + } else if (!abortOnConflict) { + index2.insert({ filepath, oid: r.mergeResult.oid, stage: 0 }); + } + return r.mergeResult; + }); + } + throw new MergeNotSupportedError(); + } + } + }, + /** + * @param {TreeEntry} [parent] + * @param {Array} children + */ + reduce: unmergedFiles.length !== 0 && (!dir || abortOnConflict) ? void 0 : async (parent, children2) => { + const entries = children2.filter(Boolean); + if (!parent) + return; + if (parent && parent.type === "tree" && entries.length === 0) + return; + if (entries.length > 0) { + const tree = new GitTree(entries); + const object = tree.toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + dryRun + }); + parent.oid = oid; + } + return parent; + } + }); + if (unmergedFiles.length !== 0) { + if (dir && !abortOnConflict) { + await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref: results.oid })], + map: async function(filepath, [entry]) { + const path2 = `${dir}/${filepath}`; + if (await entry.type() === "blob") { + const mode = await entry.mode(); + const content = new TextDecoder().decode(await entry.content()); + await fs.write(path2, content, { mode }); + } + return true; + } + }); + } + return new MergeConflictError(unmergedFiles); + } + return results.oid; +} +async function mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + theirName, + baseName, + dryRun, + mergeDriver = mergeFile +}) { + const type = "blob"; + const mode = await base.mode() === await ours.mode() ? await theirs.mode() : await ours.mode(); + if (await ours.oid() === await theirs.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + if (await ours.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await theirs.oid(), type } + }; + } + if (await theirs.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + const ourContent = Buffer.from(await ours.content()).toString("utf8"); + const baseContent = Buffer.from(await base.content()).toString("utf8"); + const theirContent = Buffer.from(await theirs.content()).toString("utf8"); + const { mergedText, cleanMerge } = await mergeDriver({ + branches: [baseName, ourName, theirName], + contents: [baseContent, ourContent, theirContent], + path: path2 + }); + const oid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: Buffer.from(mergedText, "utf8"), + dryRun + }); + return { cleanMerge, mergeResult: { mode, path: path2, oid, type } }; +} +async function _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author, + committer, + signingKey, + onSign, + mergeDriver +}) { + if (ours === void 0) { + ours = await _currentBranch({ fs, gitdir, fullname: true }); + } + ours = await GitRefManager.expand({ + fs, + gitdir, + ref: ours + }); + theirs = await GitRefManager.expand({ + fs, + gitdir, + ref: theirs + }); + const ourOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: ours + }); + const theirOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: theirs + }); + const baseOids = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [ourOid, theirOid] + }); + if (baseOids.length !== 1) { + throw new MergeNotSupportedError(); + } + const baseOid = baseOids[0]; + if (baseOid === theirOid) { + return { + oid: ourOid, + alreadyMerged: true + }; + } + if (fastForward2 && baseOid === ourOid) { + if (!dryRun && !noUpdateBranch) { + await GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid }); + } + return { + oid: theirOid, + fastForward: true + }; + } else { + if (fastForwardOnly) { + throw new FastForwardError(); + } + const tree = await GitIndexManager.acquire( + { fs, gitdir, cache, allowUnmerged: false }, + async (index2) => { + return mergeTree({ + fs, + cache, + dir, + gitdir, + index: index2, + ourOid, + theirOid, + baseOid, + ourName: abbreviateRef(ours), + baseName: "base", + theirName: abbreviateRef(theirs), + dryRun, + abortOnConflict, + mergeDriver + }); + } + ); + if (tree instanceof MergeConflictError) + throw tree; + if (!message) { + message = `Merge branch '${abbreviateRef(theirs)}' into ${abbreviateRef( + ours + )}`; + } + const oid = await _commit({ + fs, + cache, + gitdir, + message, + ref: ours, + tree, + parent: [ourOid, theirOid], + author, + committer, + signingKey, + onSign, + dryRun, + noUpdateBranch + }); + return { + oid, + tree, + mergeCommit: true + }; + } +} +async function _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + prune, + pruneTags, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey +}) { + try { + if (!ref) { + const head = await _currentBranch({ fs, gitdir }); + if (!head) { + throw new MissingParameterError("ref"); + } + ref = head; + } + const { fetchHead, fetchHeadDescription } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + corsProxy, + ref, + url, + remote, + remoteRef, + singleBranch, + headers, + prune, + pruneTags + }); + await _merge({ + fs, + cache, + gitdir, + ours: ref, + theirs: fetchHead, + fastForward: fastForward2, + fastForwardOnly, + message: `Merge ${fetchHeadDescription}`, + author, + committer, + signingKey, + dryRun: false, + noUpdateBranch: false + }); + await _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout: false + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function fastForward({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + corsProxy, + singleBranch, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + const thisWillNotBeUsed = { + name: "", + email: "", + timestamp: Date.now(), + timezoneOffset: 0 + }; + return await _pull({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForwardOnly: true, + corsProxy, + singleBranch, + headers, + author: thisWillNotBeUsed, + committer: thisWillNotBeUsed + }); + } catch (err) { + err.caller = "git.fastForward"; + throw err; + } +} +async function fetch({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remote, + remoteRef, + url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative: relative2 = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _fetch({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + remoteRef, + url, + corsProxy, + depth, + since, + exclude, + relative: relative2, + tags, + singleBranch, + headers, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.fetch"; + throw err; + } +} +async function findMergeBase({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _findMergeBase({ + fs: new FileSystem(fs), + cache, + gitdir, + oids + }); + } catch (err) { + err.caller = "git.findMergeBase"; + throw err; + } +} +async function _findRoot({ fs, filepath }) { + if (await fs.exists(join(filepath, ".git"))) { + return filepath; + } else { + const parent = dirname(filepath); + if (parent === filepath) { + throw new NotFoundError(`git root for ${filepath}`); + } + return _findRoot({ fs, filepath: parent }); + } +} +async function findRoot({ fs, filepath }) { + try { + assertParameter("fs", fs); + assertParameter("filepath", filepath); + return await _findRoot({ fs: new FileSystem(fs), filepath }); + } catch (err) { + err.caller = "git.findRoot"; + throw err; + } +} +async function getConfig({ fs, dir, gitdir = join(dir, ".git"), path: path2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfig({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfig"; + throw err; + } +} +async function _getConfigAll({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.getall(path2); +} +async function getConfigAll({ + fs, + dir, + gitdir = join(dir, ".git"), + path: path2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfigAll({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfigAll"; + throw err; + } +} +async function getRemoteInfo({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const result = { + capabilities: [...remote.capabilities] + }; + for (const [ref, oid] of remote.refs) { + const parts = ref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = oid; + } + for (const [symref, ref] of remote.symrefs) { + const parts = symref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = ref; + } + return result; + } catch (err) { + err.caller = "git.getRemoteInfo"; + throw err; + } +} +function formatInfoRefs(remote, prefix, symrefs, peelTags) { + const refs = []; + for (const [key2, value] of remote.refs) { + if (prefix && !key2.startsWith(prefix)) + continue; + if (key2.endsWith("^{}")) { + if (peelTags) { + const _key = key2.replace("^{}", ""); + const last2 = refs[refs.length - 1]; + const r = last2.ref === _key ? last2 : refs.find((x) => x.ref === _key); + if (r === void 0) { + throw new Error("I did not expect this to happen"); + } + r.peeled = value; + } + continue; + } + const ref = { ref: key2, oid: value }; + if (symrefs) { + if (remote.symrefs.has(key2)) { + ref.target = remote.symrefs.get(key2); + } + } + refs.push(ref); + } + return refs; +} +async function getRemoteInfo2({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2 +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 2) { + return { + protocolVersion: remote.protocolVersion, + capabilities: remote.capabilities2 + }; + } + const capabilities = {}; + for (const cap of remote.capabilities) { + const [key2, value] = cap.split("="); + if (value) { + capabilities[key2] = value; + } else { + capabilities[key2] = true; + } + } + return { + protocolVersion: 1, + capabilities, + refs: formatInfoRefs(remote, void 0, true, true) + }; + } catch (err) { + err.caller = "git.getRemoteInfo2"; + throw err; + } +} +async function hashObject({ + type, + object, + format = "content", + oid = void 0 +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + } + return { oid, object }; +} +async function hashBlob({ object }) { + try { + assertParameter("object", object); + if (typeof object === "string") { + object = Buffer.from(object, "utf8"); + } else { + object = Buffer.from(object); + } + const type = "blob"; + const { oid, object: _object } = await hashObject({ + type: "blob", + format: "content", + object + }); + return { oid, type, object: new Uint8Array(_object), format: "wrapped" }; + } catch (err) { + err.caller = "git.hashBlob"; + throw err; + } +} +async function _indexPack({ + fs, + cache, + onProgress, + dir, + gitdir, + filepath +}) { + try { + filepath = join(dir, filepath); + const pack = await fs.read(filepath); + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const idx = await GitPackIndex.fromPack({ + pack, + getExternalRefDelta, + onProgress + }); + await fs.write(filepath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + return { + oids: [...idx.hashes] + }; + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function indexPack({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", dir); + assertParameter("filepath", filepath); + return await _indexPack({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + if (!bare) { + assertParameter("dir", dir); + } + return await _init({ + fs: new FileSystem(fs), + bare, + dir, + gitdir, + defaultBranch + }); + } catch (err) { + err.caller = "git.init"; + throw err; + } +} +async function _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor, + depth +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + if (!oid) { + throw new MissingParameterError("oid"); + } + if (!ancestor) { + throw new MissingParameterError("ancestor"); + } + if (oid === ancestor) + return false; + const queue = [oid]; + const visited = /* @__PURE__ */ new Set(); + let searchdepth = 0; + while (queue.length) { + if (searchdepth++ === depth) { + throw new MaxDepthError(depth); + } + const oid2 = queue.shift(); + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: oid2 + }); + if (type !== "commit") { + throw new ObjectTypeError(oid2, type, "commit"); + } + const commit2 = GitCommit.from(object).parse(); + for (const parent of commit2.parent) { + if (parent === ancestor) + return true; + } + if (!shallows.has(oid2)) { + for (const parent of commit2.parent) { + if (!visited.has(parent)) { + queue.push(parent); + visited.add(parent); + } + } + } + } + return false; +} +async function isDescendent({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + ancestor, + depth = -1, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("ancestor", ancestor); + return await _isDescendent({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + ancestor, + depth + }); + } catch (err) { + err.caller = "git.isDescendent"; + throw err; + } +} +async function isIgnored({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + return GitIgnoreManager.isIgnored({ + fs: new FileSystem(fs), + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.isIgnored"; + throw err; + } +} +async function listBranches({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listBranches({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.listBranches"; + throw err; + } +} +async function _listFiles({ fs, gitdir, ref, cache }) { + if (ref) { + const oid = await GitRefManager.resolve({ gitdir, fs, ref }); + const filenames = []; + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix: "" + }); + return filenames; + } else { + return GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + return index2.entries.map((x) => x.path); + }); + } +} +async function accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix +}) { + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + for (const entry of tree) { + if (entry.type === "tree") { + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid: entry.oid, + filenames, + prefix: join(prefix, entry.path) + }); + } else { + filenames.push(join(prefix, entry.path)); + } + } +} +async function listFiles({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listFiles({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listFiles"; + throw err; + } +} +async function _listNotes({ fs, cache, gitdir, ref }) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (err instanceof NotFoundError) { + return []; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent + }); + const notes = result.tree.map((entry) => ({ + target: entry.path, + note: entry.oid + })); + return notes; +} +async function listNotes({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _listNotes({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listNotes"; + throw err; + } +} +async function _listRemotes({ fs, gitdir }) { + const config = await GitConfigManager.get({ fs, gitdir }); + const remoteNames = await config.getSubsections("remote"); + const remotes = Promise.all( + remoteNames.map(async (remote) => { + const url = await config.get(`remote.${remote}.url`); + return { remote, url }; + }) + ); + return remotes; +} +async function listRemotes({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listRemotes({ + fs: new FileSystem(fs), + gitdir + }); + } catch (err) { + err.caller = "git.listRemotes"; + throw err; + } +} +async function parseListRefsResponse(stream) { + const read = GitPktLine.streamReader(stream); + const refs = []; + let line; + while (true) { + line = await read(); + if (line === true) + break; + if (line === null) + continue; + line = line.toString("utf8").replace(/\n$/, ""); + const [oid, ref, ...attrs] = line.split(" "); + const r = { ref, oid }; + for (const attr2 of attrs) { + const [name, value] = attr2.split(":"); + if (name === "symref-target") { + r.target = value; + } else if (name === "peeled") { + r.peeled = value; + } + } + refs.push(r); + } + return refs; +} +async function writeListRefsRequest({ prefix, symrefs, peelTags }) { + const packstream = []; + packstream.push(GitPktLine.encode("command=ls-refs\n")); + packstream.push(GitPktLine.encode(`agent=${pkg.agent} +`)); + if (peelTags || symrefs || prefix) { + packstream.push(GitPktLine.delim()); + } + if (peelTags) + packstream.push(GitPktLine.encode("peel")); + if (symrefs) + packstream.push(GitPktLine.encode("symrefs")); + if (prefix) + packstream.push(GitPktLine.encode(`ref-prefix ${prefix}`)); + packstream.push(GitPktLine.flush()); + return packstream; +} +async function listServerRefs({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2, + prefix, + symrefs, + peelTags +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const remote = await GitRemoteHTTP.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 1) { + return formatInfoRefs(remote, prefix, symrefs, peelTags); + } + const body = await writeListRefsRequest({ prefix, symrefs, peelTags }); + const res = await GitRemoteHTTP.connect({ + http, + auth: remote.auth, + headers, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + body + }); + return parseListRefsResponse(res.body); + } catch (err) { + err.caller = "git.listServerRefs"; + throw err; + } +} +async function listTags({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listTags({ fs: new FileSystem(fs), gitdir }); + } catch (err) { + err.caller = "git.listTags"; + throw err; + } +} +async function resolveCommit({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveCommit({ fs, cache, gitdir, oid }); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + return { commit: GitCommit.from(object), oid }; +} +async function _readCommit({ fs, cache, gitdir, oid }) { + const { commit: commit2, oid: commitOid } = await resolveCommit({ + fs, + cache, + gitdir, + oid + }); + const result = { + oid: commitOid, + commit: commit2.parse(), + payload: commit2.withoutSignature() + }; + return result; +} +function compareAge(a, b) { + return a.committer.timestamp - b.committer.timestamp; +} +var EMPTY_OID = "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"; +async function resolveFileIdInTree({ fs, cache, gitdir, oid, fileId }) { + if (fileId === EMPTY_OID) + return; + const _oid = oid; + let filepath; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (fileId === result.oid) { + filepath = result.path; + } else { + filepath = await _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid: _oid + }); + if (Array.isArray(filepath)) { + if (filepath.length === 0) + filepath = void 0; + else if (filepath.length === 1) + filepath = filepath[0]; + } + } + return filepath; +} +async function _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid, + filepaths = [], + parentPath = "" +}) { + const walks = tree.entries().map(function(entry) { + let result; + if (entry.oid === fileId) { + result = join(parentPath, entry.path); + filepaths.push(result); + } else if (entry.type === "tree") { + result = _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }).then(function({ object }) { + return _resolveFileId({ + fs, + cache, + gitdir, + tree: GitTree.from(object), + fileId, + oid, + filepaths, + parentPath: join(parentPath, entry.path) + }); + }); + } + return result; + }); + await Promise.all(walks); + return filepaths; +} +async function _log({ + fs, + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow +}) { + const sinceTimestamp = typeof since === "undefined" ? void 0 : Math.floor(since.valueOf() / 1e3); + const commits = []; + const shallowCommits = await GitShallowManager.read({ fs, gitdir }); + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + const tips = [await _readCommit({ fs, cache, gitdir, oid })]; + let lastFileOid; + let lastCommit; + let isOk; + function endCommit(commit2) { + if (isOk && filepath) + commits.push(commit2); + } + while (tips.length > 0) { + const commit2 = tips.pop(); + if (sinceTimestamp !== void 0 && commit2.commit.committer.timestamp <= sinceTimestamp) { + break; + } + if (filepath) { + let vFileOid; + try { + vFileOid = await resolveFilepath({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + filepath + }); + if (lastCommit && lastFileOid !== vFileOid) { + commits.push(lastCommit); + } + lastFileOid = vFileOid; + lastCommit = commit2; + isOk = true; + } catch (e) { + if (e instanceof NotFoundError) { + let found = follow && lastFileOid; + if (found) { + found = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + fileId: lastFileOid + }); + if (found) { + if (Array.isArray(found)) { + if (lastCommit) { + const lastFound = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: lastCommit.commit.tree, + fileId: lastFileOid + }); + if (Array.isArray(lastFound)) { + found = found.filter((p) => lastFound.indexOf(p) === -1); + if (found.length === 1) { + found = found[0]; + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } else { + found = false; + if (lastCommit) + commits.push(lastCommit); + break; + } + } + } + } else { + filepath = found; + if (lastCommit) + commits.push(lastCommit); + } + } + } + if (!found) { + if (isOk && lastFileOid) { + commits.push(lastCommit); + if (!force) + break; + } + if (!force && !follow) + throw e; + } + lastCommit = commit2; + isOk = false; + } else + throw e; + } + } else { + commits.push(commit2); + } + if (depth !== void 0 && commits.length === depth) { + endCommit(commit2); + break; + } + if (!shallowCommits.has(commit2.oid)) { + for (const oid2 of commit2.commit.parent) { + const commit3 = await _readCommit({ fs, cache, gitdir, oid: oid2 }); + if (!tips.map((commit4) => commit4.oid).includes(commit3.oid)) { + tips.push(commit3); + } + } + } + if (tips.length === 0) { + endCommit(commit2); + } + tips.sort((a, b) => compareAge(a.commit, b.commit)); + } + return commits; +} +async function log({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref = "HEAD", + depth, + since, + // Date + force, + follow, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _log({ + fs: new FileSystem(fs), + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow + }); + } catch (err) { + err.caller = "git.log"; + throw err; + } +} +async function merge({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author: _author, + committer: _committer, + signingKey, + cache = {}, + mergeDriver +}) { + try { + assertParameter("fs", _fs); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("author"); + } + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("committer"); + } + return await _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2, + fastForwardOnly, + dryRun, + noUpdateBranch, + abortOnConflict, + message, + author, + committer, + signingKey, + onSign, + mergeDriver + }); + } catch (err) { + err.caller = "git.merge"; + throw err; + } +} +var types = { + commit: 16, + tree: 32, + blob: 48, + tag: 64, + ofs_delta: 96, + ref_delta: 112 +}; +async function _pack({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const hash2 = new import_sha1.default(); + const outputStream = []; + function write(chunk, enc) { + const buff = Buffer.from(chunk, enc); + outputStream.push(buff); + hash2.update(buff); + } + async function writeObject2({ stype, object }) { + const type = types[stype]; + let length = object.length; + let multibyte = length > 15 ? 128 : 0; + const lastFour = length & 15; + length = length >>> 4; + let byte = (multibyte | type | lastFour).toString(16); + write(byte, "hex"); + while (multibyte) { + multibyte = length > 127 ? 128 : 0; + byte = multibyte | length & 127; + write(padHex(2, byte), "hex"); + length = length >>> 7; + } + write(Buffer.from(await deflate(object))); + } + write("PACK"); + write("00000002", "hex"); + write(padHex(8, oids.length), "hex"); + for (const oid of oids) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + await writeObject2({ write, object, stype: type }); + } + const digest = hash2.digest(); + outputStream.push(digest); + return outputStream; +} +async function _packObjects({ fs, cache, gitdir, oids, write }) { + const buffers = await _pack({ fs, cache, gitdir, oids }); + const packfile = Buffer.from(await collect(buffers)); + const packfileSha = packfile.slice(-20).toString("hex"); + const filename = `pack-${packfileSha}.pack`; + if (write) { + await fs.write(join(gitdir, `objects/pack/${filename}`), packfile); + return { filename }; + } + return { + filename, + packfile: new Uint8Array(packfile) + }; +} +async function packObjects({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + write = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _packObjects({ + fs: new FileSystem(fs), + cache, + gitdir, + oids, + write + }); + } catch (err) { + err.caller = "git.packObjects"; + throw err; + } +} +async function pull({ + fs: _fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + prune = false, + pruneTags = false, + fastForward: fastForward2 = true, + fastForwardOnly = false, + corsProxy, + singleBranch, + headers = {}, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function listCommitsAndTags({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + start, + finish +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + const startingSet = /* @__PURE__ */ new Set(); + const finishingSet = /* @__PURE__ */ new Set(); + for (const ref of start) { + startingSet.add(await GitRefManager.resolve({ fs, gitdir, ref })); + } + for (const ref of finish) { + try { + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + finishingSet.add(oid); + } catch (err) { + } + } + const visited = /* @__PURE__ */ new Set(); + async function walk2(oid) { + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const commit2 = tag2.headers().object; + return walk2(commit2); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + if (!shallows.has(oid)) { + const commit2 = GitCommit.from(object); + const parents = commit2.headers().parent; + for (oid of parents) { + if (!finishingSet.has(oid) && !visited.has(oid)) { + await walk2(oid); + } + } + } + } + for (const oid of startingSet) { + await walk2(oid); + } + return visited; +} +async function listObjects({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const visited = /* @__PURE__ */ new Set(); + async function walk2(oid) { + if (visited.has(oid)) + return; + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const obj = tag2.headers().object; + await walk2(obj); + } else if (type === "commit") { + const commit2 = GitCommit.from(object); + const tree = commit2.headers().tree; + await walk2(tree); + } else if (type === "tree") { + const tree = GitTree.from(object); + for (const entry of tree) { + if (entry.type === "blob") { + visited.add(entry.oid); + } + if (entry.type === "tree") { + await walk2(entry.oid); + } + } + } + } + for (const oid of oids) { + await walk2(oid); + } + return visited; +} +async function parseReceivePackResponse(packfile) { + const result = {}; + let response = ""; + const read = GitPktLine.streamReader(packfile); + let line = await read(); + while (line !== true) { + if (line !== null) + response += line.toString("utf8") + "\n"; + line = await read(); + } + const lines = response.toString("utf8").split("\n"); + line = lines.shift(); + if (!line.startsWith("unpack ")) { + throw new ParseError('unpack ok" or "unpack [error message]', line); + } + result.ok = line === "unpack ok"; + if (!result.ok) { + result.error = line.slice("unpack ".length); + } + result.refs = {}; + for (const line2 of lines) { + if (line2.trim() === "") + continue; + const status2 = line2.slice(0, 2); + const refAndMessage = line2.slice(3); + let space2 = refAndMessage.indexOf(" "); + if (space2 === -1) + space2 = refAndMessage.length; + const ref = refAndMessage.slice(0, space2); + const error = refAndMessage.slice(space2 + 1); + result.refs[ref] = { + ok: status2 === "ok", + error + }; + } + return result; +} +async function writeReceivePackRequest({ + capabilities = [], + triplets = [] +}) { + const packstream = []; + let capsFirstLine = `\0 ${capabilities.join(" ")}`; + for (const trip of triplets) { + packstream.push( + GitPktLine.encode( + `${trip.oldoid} ${trip.oid} ${trip.fullRef}${capsFirstLine} +` + ) + ); + capsFirstLine = ""; + } + packstream.push(GitPktLine.flush()); + return packstream; +} +async function _push({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote, + url: _url, + force = false, + delete: _delete = false, + corsProxy, + headers = {} +}) { + const ref = _ref || await _currentBranch({ fs, gitdir }); + if (typeof ref === "undefined") { + throw new MissingParameterError("ref"); + } + const config = await GitConfigManager.get({ fs, gitdir }); + remote = remote || await config.get(`branch.${ref}.pushRemote`) || await config.get("remote.pushDefault") || await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.pushurl`) || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || await config.get(`branch.${ref}.merge`); + if (typeof url === "undefined") { + throw new MissingParameterError("remoteRef"); + } + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const oid = _delete ? "0000000000000000000000000000000000000000" : await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const httpRemote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-receive-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = httpRemote.auth; + let fullRemoteRef; + if (!remoteRef) { + fullRemoteRef = fullRef; + } else { + try { + fullRemoteRef = await GitRefManager.expandAgainstMap({ + ref: remoteRef, + map: httpRemote.refs + }); + } catch (err) { + if (err instanceof NotFoundError) { + fullRemoteRef = remoteRef.startsWith("refs/") ? remoteRef : `refs/heads/${remoteRef}`; + } else { + throw err; + } + } + } + const oldoid = httpRemote.refs.get(fullRemoteRef) || "0000000000000000000000000000000000000000"; + const thinPack = !httpRemote.capabilities.has("no-thin"); + let objects = /* @__PURE__ */ new Set(); + if (!_delete) { + const finish = [...httpRemote.refs.values()]; + let skipObjects = /* @__PURE__ */ new Set(); + if (oldoid !== "0000000000000000000000000000000000000000") { + const mergebase = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [oid, oldoid] + }); + for (const oid2 of mergebase) + finish.push(oid2); + if (thinPack) { + skipObjects = await listObjects({ fs, cache, gitdir, oids: mergebase }); + } + } + if (!finish.includes(oid)) { + const commits = await listCommitsAndTags({ + fs, + cache, + gitdir, + start: [oid], + finish + }); + objects = await listObjects({ fs, cache, gitdir, oids: commits }); + } + if (thinPack) { + try { + const ref2 = await GitRefManager.resolve({ + fs, + gitdir, + ref: `refs/remotes/${remote}/HEAD`, + depth: 2 + }); + const { oid: oid2 } = await GitRefManager.resolveAgainstMap({ + ref: ref2.replace(`refs/remotes/${remote}/`, ""), + fullref: ref2, + map: httpRemote.refs + }); + const oids = [oid2]; + for (const oid3 of await listObjects({ fs, cache, gitdir, oids })) { + skipObjects.add(oid3); + } + } catch (e) { + } + for (const oid2 of skipObjects) { + objects.delete(oid2); + } + } + if (oid === oldoid) + force = true; + if (!force) { + if (fullRef.startsWith("refs/tags") && oldoid !== "0000000000000000000000000000000000000000") { + throw new PushRejectedError("tag-exists"); + } + if (oid !== "0000000000000000000000000000000000000000" && oldoid !== "0000000000000000000000000000000000000000" && !await _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor: oldoid, + depth: -1 + })) { + throw new PushRejectedError("not-fast-forward"); + } + } + } + const capabilities = filterCapabilities( + [...httpRemote.capabilities], + ["report-status", "side-band-64k", `agent=${pkg.agent}`] + ); + const packstream1 = await writeReceivePackRequest({ + capabilities, + triplets: [{ oldoid, oid, fullRef: fullRemoteRef }] + }); + const packstream2 = _delete ? [] : await _pack({ + fs, + cache, + gitdir, + oids: [...objects] + }); + const res = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-receive-pack", + url, + auth, + headers, + body: [...packstream1, ...packstream2] + }); + const { packfile, progress } = await GitSideBand.demux(res.body); + if (onMessage) { + const lines = splitLines(progress); + forAwait(lines, async (line) => { + await onMessage(line); + }); + } + const result = await parseReceivePackResponse(packfile); + if (res.headers) { + result.headers = res.headers; + } + if (remote && result.ok && result.refs[fullRemoteRef].ok) { + const ref2 = `refs/remotes/${remote}/${fullRemoteRef.replace( + "refs/heads", + "" + )}`; + if (_delete) { + await GitRefManager.deleteRef({ fs, gitdir, ref: ref2 }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: ref2, value: oid }); + } + } + if (result.ok && Object.values(result.refs).every((result2) => result2.ok)) { + return result; + } else { + const prettyDetails = Object.entries(result.refs).filter(([k, v]) => !v.ok).map(([k, v]) => ` + - ${k}: ${v.error}`).join(""); + throw new GitPushError(prettyDetails, result); + } +} +async function push({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remoteRef, + remote = "origin", + url, + force = false, + delete: _delete = false, + corsProxy, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _push({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remoteRef, + remote, + url, + force, + delete: _delete, + corsProxy, + headers + }); + } catch (err) { + err.caller = "git.push"; + throw err; + } +} +async function resolveBlob({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveBlob({ fs, cache, gitdir, oid }); + } + if (type !== "blob") { + throw new ObjectTypeError(oid, type, "blob"); + } + return { oid, blob: new Uint8Array(object) }; +} +async function _readBlob({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const blob = await resolveBlob({ + fs, + cache, + gitdir, + oid + }); + return blob; +} +async function readBlob({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readBlob({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readBlob"; + throw err; + } +} +async function readCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readCommit({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readCommit"; + throw err; + } +} +async function _readNote({ + fs, + cache, + gitdir, + ref = "refs/notes/commits", + oid +}) { + const parent = await GitRefManager.resolve({ gitdir, fs, ref }); + const { blob } = await _readBlob({ + fs, + cache, + gitdir, + oid: parent, + filepath: oid + }); + return blob; +} +async function readNote({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oid", oid); + return await _readNote({ + fs: new FileSystem(fs), + cache, + gitdir, + ref, + oid + }); + } catch (err) { + err.caller = "git.readNote"; + throw err; + } +} +async function readObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + oid, + format = "parsed", + filepath = void 0, + encoding = void 0, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + if (filepath !== void 0) { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } + const _format = format === "parsed" ? "content" : format; + const result = await _readObject({ + fs, + cache, + gitdir, + oid, + format: _format + }); + result.oid = oid; + if (format === "parsed") { + result.format = "parsed"; + switch (result.type) { + case "commit": + result.object = GitCommit.from(result.object).parse(); + break; + case "tree": + result.object = GitTree.from(result.object).entries(); + break; + case "blob": + if (encoding) { + result.object = result.object.toString(encoding); + } else { + result.object = new Uint8Array(result.object); + result.format = "content"; + } + break; + case "tag": + result.object = GitAnnotatedTag.from(result.object).parse(); + break; + default: + throw new ObjectTypeError( + result.oid, + result.type, + "blob|commit|tag|tree" + ); + } + } else if (result.format === "deflated" || result.format === "wrapped") { + result.type = result.format; + } + return result; + } catch (err) { + err.caller = "git.readObject"; + throw err; + } +} +async function _readTag({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid, + format: "content" + }); + if (type !== "tag") { + throw new ObjectTypeError(oid, type, "tag"); + } + const tag2 = GitAnnotatedTag.from(object); + const result = { + oid, + tag: tag2.parse(), + payload: tag2.payload() + }; + return result; +} +async function readTag({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTag({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readTag"; + throw err; + } +} +async function readTree({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath = void 0, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTree({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readTree"; + throw err; + } +} +async function remove({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + await GitIndexManager.acquire( + { fs: new FileSystem(_fs), gitdir, cache }, + async function(index2) { + index2.delete({ filepath }); + } + ); + } catch (err) { + err.caller = "git.remove"; + throw err; + } +} +async function _removeNote({ + fs, + cache, + onSign, + gitdir, + ref = "refs/notes/commits", + oid, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + tree = tree.filter((entry) => entry.path !== oid); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note removed by 'isomorphic-git removeNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function removeNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) + throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) + throw new MissingNameError("committer"); + return await _removeNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.removeNote"; + throw err; + } +} +async function _renameBranch({ + fs, + gitdir, + oldref, + ref, + checkout: checkout2 = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (oldref !== import_clean_git_ref.default.clean(oldref)) { + throw new InvalidRefNameError(oldref, import_clean_git_ref.default.clean(oldref)); + } + const fulloldref = `refs/heads/${oldref}`; + const fullnewref = `refs/heads/${ref}`; + const newexist = await GitRefManager.exists({ fs, gitdir, ref: fullnewref }); + if (newexist) { + throw new AlreadyExistsError("branch", ref, false); + } + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: fulloldref, + depth: 1 + }); + await GitRefManager.writeRef({ fs, gitdir, ref: fullnewref, value }); + await GitRefManager.deleteRef({ fs, gitdir, ref: fulloldref }); + if (checkout2) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullnewref + }); + } +} +async function renameBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + oldref, + checkout: checkout2 = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oldref", oldref); + return await _renameBranch({ + fs: new FileSystem(fs), + gitdir, + ref, + oldref, + checkout: checkout2 + }); + } catch (err) { + err.caller = "git.renameBranch"; + throw err; + } +} +async function hashObject$1({ gitdir, type, object }) { + return shasum(GitObject.wrap({ type, object })); +} +async function resetIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + let oid; + let workdirOid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: ref || "HEAD" }); + } catch (e) { + if (ref) { + throw e; + } + } + if (oid) { + try { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } catch (e) { + oid = null; + } + } + let stats = { + ctime: /* @__PURE__ */ new Date(0), + mtime: /* @__PURE__ */ new Date(0), + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + const object = dir && await fs.read(join(dir, filepath)); + if (object) { + workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (oid === workdirOid) { + stats = await fs.lstat(join(dir, filepath)); + } + } + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.delete({ filepath }); + if (oid) { + index2.insert({ filepath, stats, oid }); + } + }); + } catch (err) { + err.caller = "git.reset"; + throw err; + } +} +async function resolveRef({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + depth +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const oid = await GitRefManager.resolve({ + fs: new FileSystem(fs), + gitdir, + ref, + depth + }); + return oid; + } catch (err) { + err.caller = "git.resolveRef"; + throw err; + } +} +async function setConfig({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + path: path2, + value, + append: append3 = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + const fs = new FileSystem(_fs); + const config = await GitConfigManager.get({ fs, gitdir }); + if (append3) { + await config.append(path2, value); + } else { + await config.set(path2, value); + } + await GitConfigManager.save({ fs, gitdir, config }); + } catch (err) { + err.caller = "git.setConfig"; + throw err; + } +} +async function status({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + const ignored = await GitIgnoreManager.isIgnored({ + fs, + gitdir, + dir, + filepath + }); + if (ignored) { + return "ignored"; + } + const headTree = await getHeadTree({ fs, cache, gitdir }); + const treeOid = await getOidAtPath({ + fs, + cache, + gitdir, + tree: headTree, + path: filepath + }); + const indexEntry = await GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + for (const entry of index2) { + if (entry.path === filepath) + return entry; + } + return null; + } + ); + const stats = await fs.lstat(join(dir, filepath)); + const H = treeOid !== null; + const I = indexEntry !== null; + const W = stats !== null; + const getWorkdirOid = async () => { + if (I && !compareStats(indexEntry, stats)) { + return indexEntry.oid; + } else { + const object = await fs.read(join(dir, filepath)); + const workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (I && indexEntry.oid === workdirOid) { + if (stats.size !== -1) { + GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.insert({ filepath, stats, oid: workdirOid }); + }); + } + } + return workdirOid; + } + }; + if (!H && !W && !I) + return "absent"; + if (!H && !W && I) + return "*absent"; + if (!H && W && !I) + return "*added"; + if (!H && W && I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === indexEntry.oid ? "added" : "*added"; + } + if (H && !W && !I) + return "deleted"; + if (H && !W && I) { + return treeOid === indexEntry.oid ? "*deleted" : "*deleted"; + } + if (H && W && !I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === treeOid ? "*undeleted" : "*undeletemodified"; + } + if (H && W && I) { + const workdirOid = await getWorkdirOid(); + if (workdirOid === treeOid) { + return workdirOid === indexEntry.oid ? "unmodified" : "*unmodified"; + } else { + return workdirOid === indexEntry.oid ? "modified" : "*modified"; + } + } + } catch (err) { + err.caller = "git.status"; + throw err; + } +} +async function getOidAtPath({ fs, cache, gitdir, tree, path: path2 }) { + if (typeof path2 === "string") + path2 = path2.split("/"); + const dirname3 = path2.shift(); + for (const entry of tree) { + if (entry.path === dirname3) { + if (path2.length === 0) { + return entry.oid; + } + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type === "tree") { + const tree2 = GitTree.from(object); + return getOidAtPath({ fs, cache, gitdir, tree: tree2, path: path2 }); + } + if (type === "blob") { + throw new ObjectTypeError(entry.oid, type, "blob", path2.join("/")); + } + } + } + return null; +} +async function getHeadTree({ fs, cache, gitdir }) { + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: "HEAD" }); + } catch (e) { + if (e instanceof NotFoundError) { + return []; + } + } + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + return tree; +} +async function statusMatrix({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref = "HEAD", + filepaths = ["."], + filter, + cache = {}, + ignored: shouldIgnore = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + return await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(filepath, [head, workdir, stage]) { + if (!head && !stage && workdir) { + if (!shouldIgnore) { + const isIgnored2 = await GitIgnoreManager.isIgnored({ + fs, + dir, + filepath + }); + if (isIgnored2) { + return null; + } + } + } + if (!filepaths.some((base) => worthWalking(filepath, base))) { + return null; + } + if (filter) { + if (!filter(filepath)) + return; + } + const [headType, workdirType, stageType] = await Promise.all([ + head && head.type(), + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [headType, workdirType, stageType].includes("blob"); + if ((headType === "tree" || headType === "special") && !isBlob) + return; + if (headType === "commit") + return null; + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const headOid = headType === "blob" ? await head.oid() : void 0; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (headType !== "blob" && workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + const entry = [void 0, headOid, workdirOid, stageOid]; + const result = entry.map((value) => entry.indexOf(value)); + result.shift(); + return [filepath, ...result]; + } + }); + } catch (err) { + err.caller = "git.statusMatrix"; + throw err; + } +} +async function tag({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + force = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + if (ref === void 0) { + throw new MissingParameterError("ref"); + } + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + await GitRefManager.writeRef({ fs, gitdir, ref, value }); + } catch (err) { + err.caller = "git.tag"; + throw err; + } +} +async function updateIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + cache = {}, + filepath, + oid, + mode, + add: add2, + remove: remove3, + force +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + if (remove3) { + return await GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + let fileStats2; + if (!force) { + fileStats2 = await fs.lstat(join(dir, filepath)); + if (fileStats2) { + if (fileStats2.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + return; + } + } + if (index2.has({ filepath })) { + index2.delete({ + filepath + }); + } + } + ); + } + let fileStats; + if (!oid) { + fileStats = await fs.lstat(join(dir, filepath)); + if (!fileStats) { + throw new NotFoundError( + `file at "${filepath}" on disk and "remove" not set` + ); + } + if (fileStats.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + } + return await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + if (!add2 && !index2.has({ filepath })) { + throw new NotFoundError( + `file at "${filepath}" in index and "add" not set` + ); + } + let stats = { + ctime: /* @__PURE__ */ new Date(0), + mtime: /* @__PURE__ */ new Date(0), + dev: 0, + ino: 0, + mode, + uid: 0, + gid: 0, + size: 0 + }; + if (!oid) { + stats = fileStats; + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, filepath)) : await fs.read(join(dir, filepath)); + oid = await _writeObject({ + fs, + gitdir, + type: "blob", + format: "content", + object + }); + } + index2.insert({ + filepath, + oid, + stats + }); + return oid; + }); + } catch (err) { + err.caller = "git.updateIndex"; + throw err; + } +} +function version() { + try { + return pkg.version; + } catch (err) { + err.caller = "git.version"; + throw err; + } +} +async function walk({ + fs, + dir, + gitdir = join(dir, ".git"), + trees, + map, + reduce, + iterate, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("trees", trees); + return await _walk({ + fs: new FileSystem(fs), + cache, + dir, + gitdir, + trees, + map, + reduce, + iterate + }); + } catch (err) { + err.caller = "git.walk"; + throw err; + } +} +async function writeBlob({ fs, dir, gitdir = join(dir, ".git"), blob }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("blob", blob); + return await _writeObject({ + fs: new FileSystem(fs), + gitdir, + type: "blob", + object: blob, + format: "content" + }); + } catch (err) { + err.caller = "git.writeBlob"; + throw err; + } +} +async function _writeCommit({ fs, gitdir, commit: commit2 }) { + const object = GitCommit.from(commit2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object, + format: "content" + }); + return oid; +} +async function writeCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("commit", commit2); + return await _writeCommit({ + fs: new FileSystem(fs), + gitdir, + commit: commit2 + }); + } catch (err) { + err.caller = "git.writeCommit"; + throw err; + } +} +async function writeObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + type, + object, + format = "parsed", + oid, + encoding = void 0 +}) { + try { + const fs = new FileSystem(_fs); + if (format === "parsed") { + switch (type) { + case "commit": + object = GitCommit.from(object).toObject(); + break; + case "tree": + object = GitTree.from(object).toObject(); + break; + case "blob": + object = Buffer.from(object, encoding); + break; + case "tag": + object = GitAnnotatedTag.from(object).toObject(); + break; + default: + throw new ObjectTypeError(oid || "", type, "blob|commit|tag|tree"); + } + format = "content"; + } + oid = await _writeObject({ + fs, + gitdir, + type, + object, + oid, + format + }); + return oid; + } catch (err) { + err.caller = "git.writeObject"; + throw err; + } +} +async function writeRef({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + value, + force = false, + symbolic = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("value", value); + const fs = new FileSystem(_fs); + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("ref", ref); + } + if (symbolic) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref, + value + }); + } else { + value = await GitRefManager.resolve({ + fs, + gitdir, + ref: value + }); + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value + }); + } + } catch (err) { + err.caller = "git.writeRef"; + throw err; + } +} +async function _writeTag({ fs, gitdir, tag: tag2 }) { + const object = GitAnnotatedTag.from(tag2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tag", + object, + format: "content" + }); + return oid; +} +async function writeTag({ fs, dir, gitdir = join(dir, ".git"), tag: tag2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tag", tag2); + return await _writeTag({ + fs: new FileSystem(fs), + gitdir, + tag: tag2 + }); + } catch (err) { + err.caller = "git.writeTag"; + throw err; + } +} +async function writeTree({ fs, dir, gitdir = join(dir, ".git"), tree }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tree", tree); + return await _writeTree({ + fs: new FileSystem(fs), + gitdir, + tree + }); + } catch (err) { + err.caller = "git.writeTree"; + throw err; + } +} +var index = { + Errors, + STAGE, + TREE, + WORKDIR, + add, + abortMerge, + addNote, + addRemote, + annotatedTag, + branch, + checkout, + clone, + commit, + getConfig, + getConfigAll, + setConfig, + currentBranch, + deleteBranch, + deleteRef, + deleteRemote, + deleteTag, + expandOid, + expandRef, + fastForward, + fetch, + findMergeBase, + findRoot, + getRemoteInfo, + getRemoteInfo2, + hashBlob, + indexPack, + init, + isDescendent, + isIgnored, + listBranches, + listFiles, + listNotes, + listRemotes, + listServerRefs, + listTags, + log, + merge, + packObjects, + pull, + push, + readBlob, + readCommit, + readNote, + readObject, + readTag, + readTree, + remove, + removeNote, + renameBranch, + resetIndex, + updateIndex, + resolveRef, + status, + statusMatrix, + tag, + version, + walk, + writeBlob, + writeCommit, + writeObject, + writeRef, + writeTag, + writeTree +}; +var isomorphic_git_default = index; + +// src/main.ts +var import_obsidian30 = require("obsidian"); + +// src/lineAuthor/lineAuthorIntegration.ts +init_polyfill_buffer(); +var import_obsidian12 = require("obsidian"); + +// src/gitManager/simpleGit.ts +init_polyfill_buffer(); +var import_child_process2 = require("child_process"); +var import_debug2 = __toESM(require_browser()); +var import_obsidian4 = require("obsidian"); +var path = __toESM(require("path")); +var import_path = require("path"); + +// node_modules/.pnpm/github.com+Vinzent03+git-js@6b9a2d899bc8256e38a1d6f0b8a88116ba2bf56a_supports-color@9.4.0_rdkutdaeyye3o67thmklazfzta/node_modules/simple-git/dist/esm/index.js +init_polyfill_buffer(); +var import_file_exists = __toESM(require_dist(), 1); +var import_debug = __toESM(require_browser(), 1); +var import_child_process = require("child_process"); +var import_promise_deferred = __toESM(require_dist2(), 1); +var import_promise_deferred2 = __toESM(require_dist2(), 1); +var __defProp2 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp2 = (obj, key2, value) => key2 in obj ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp2(target, "__esModule", { value: true }); +var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames2(module2)) + if (!__hasOwnProp2.call(target, key2) && (copyDefault || key2 !== "default")) + __defProp2(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc2(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toCommonJS2 = /* @__PURE__ */ ((cache) => { + return (module2, temp) => { + return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); + }; +})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +var GitError; +var init_git_error = __esm2({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } + }; + } +}); +var GitResponseError; +var init_git_response_error = __esm2({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(void 0, message || String(git)); + this.git = git; + } + }; + } +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm2({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(void 0, message); + } + }; + } +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index2 = input.indexOf(char); + if (index2 <= 0) { + return [input, ""]; + } + return [input.substr(0, index2), input.substr(index2 + 1)]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : void 0; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator2 = "\n") { + return input.split(separator2).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path2) { + return (0, import_file_exists.exists)(path2, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); + } + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); + } + return target; +} +function remove2(target, item) { + if (Array.isArray(target)) { + const index2 = target.indexOf(item); + if (index2 >= 0) { + target.splice(index2, 1); + } + } else { + target.delete(item); + } + return item; +} +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num2 = parseInt(source, 10); + return isNaN(num2) ? onNaN : num2; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length; i < max; i++) { + output.push(prefix, input[i]); + } + return output; +} +function bufferToString(input) { + return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +var NULL; +var NOOP; +var objectToString; +var init_util = __esm2({ + "src/lib/utils/util.ts"() { + NULL = "\0"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); + } +}); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return arguments.length > 2 ? def : void 0; +} +function filterPrimitives(input, omit) { + return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm2({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm2({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm2({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm2({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index2) => this.addMatch(reg, index2, line(index2)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index2, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index2, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index2, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index2, line); + } + pushMatch(index2, matched) { + if (index2 > 0 || matched.length > 1) { + super.pushMatch(index2, matched); + } + } + }; + } +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm2({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [], + trimmed: false + }; + } +}); +function appendTaskOptions(options, commands2 = []) { + if (!filterPlainObject(options)) { + return commands2; + } + return Object.keys(options).reduce((commands22, key2) => { + const value = options[key2]; + if (filterPrimitives(value, ["boolean"])) { + commands22.push(key2 + "=" + value); + } else { + commands22.push(key2); + } + return commands22; + }, commands2); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : void 0; +} +var init_task_options = __esm2({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + } +}); +function callTaskParser(parser3, streams) { + return parser3(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers12, texts, trim = true) { + asArray(texts).forEach((text2) => { + for (let lines = toLinesWithContent(text2, trim), i = 0, max = lines.length; i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines[i + offset]; + }; + parsers12.some(({ parse: parse2 }) => parse2(line, result)); + } + }); + return result; +} +var init_task_parser = __esm2({ + "src/lib/utils/task-parser.ts"() { + init_util(); + } +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove2, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils = __esm2({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); + } +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); + } + const commands2 = ["rev-parse", "--is-inside-work-tree"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands2 = ["rev-parse", "--git-dir"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser(path2) { + return /^\.(git)?$/.test(path2.trim()); + } + }; +} +function checkIsBareRepoTask() { + const commands2 = ["rev-parse", "--is-bare-repository"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm2({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer.from("false")); + } + fail(error); + }; + parser = (text2) => { + return text2.trim() === "true"; + }; + } +}); +function cleanSummaryParser(dryRun, text2) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text2).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm2({ + "src/lib/responses/CleanSummary.ts"() { + init_utils(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; + } +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser3) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser3 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; + } + }; +} +function straightThroughStringTask(commands2, trimmed2 = false) { + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return trimmed2 ? String(text2).trim() : text2; + } + }; +} +function straightThroughBufferTask(commands2) { + return { + commands: commands2, + format: "buffer", + parser(buffer2) { + return buffer2; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm2({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; + } +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands2 = ["clean", `-${mode}`, ...customArgs]; + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return cleanSummaryParser(mode === "n", text2); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; + } + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm2({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); + } +}); +function configListParser(text2) { + const config = new ConfigList(); + for (const item of configParser(text2)) { + config.addValue(item.file, String(item.key), item.value); + } + return config; +} +function configGetParser(text2, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map(); + for (const item of configParser(text2, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); + } + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text2, requestedKey = null) { + const lines = text2.split("\0"); + for (let i = 0, max = lines.length - 1; i < max; ) { + const file = configFilePath(lines[i++]); + let value = lines[i++]; + let key2 = requestedKey; + if (value.includes("\n")) { + const line = splitOn(value, "\n"); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; + } +} +var ConfigList; +var init_ConfigList = __esm2({ + "src/lib/responses/ConfigList.ts"() { + init_utils(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = void 0; + } + }; + } +}); +function asConfigScope(scope, fallback) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; + } + return fallback; +} +function addConfigTask(key2, value, append22, scope) { + const commands2 = ["config", `--${scope}`]; + if (append22) { + commands2.push("--add"); + } + commands2.push(key2, value); + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return text2; + } + }; +} +function getConfigTask(key2, scope) { + const commands2 = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands2.splice(1, 0, `--${scope}`); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return configGetParser(text2, key2); + } + }; +} +function listConfigTask(scope) { + const commands2 = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands2.push(`--${scope}`); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return configListParser(text2); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope( + rest[1], + "local" + /* local */ + )), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, void 0)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm2({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); + } +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set(); + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path2, line, preview] = input.split(NULL); + paths.add(path2); + (results[path2] = results[path2] || []).push({ + line: asNumber(line), + path: path2, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands2 = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands: commands2, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm2({ + "src/lib/tasks/grep.ts"() { + init_utils(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; + } +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands2 = ["reset"]; + if (isValidResetMode(mode)) { + commands2.push(`--${mode}`); + } + commands2.push(...customArgs); + return straightThroughStringTask(commands2); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; + } + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm2({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); + } +}); +function createLog() { + return (0, import_debug.default)("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug22 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug22); + return Object.assign(debugDebugger ? debug22 : info, { + label, + sibling, + info, + step + }); + } +} +var init_git_logger = __esm2({ + "src/lib/git-logger.ts"() { + init_utils(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; + } +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm2({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map(); + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger = createLogger(this.logLabel, name); + return { + task, + logger, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger.info(`Failed %o`, err); + logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(void 0, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; + } +}); +function pluginContext(task, commands2) { + return { + method: first(task.commands) || "", + commands: commands2 + }; +} +function onErrorReceived(target, logger) { + return (err) => { + logger(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger, output) { + return (buffer2) => { + logger(`%s received %L bytes`, name, buffer2); + output(`%B`, buffer2); + target.push(buffer2); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm2({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue(); + } + get binary() { + return this._executor.binary; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger) : this.attemptRemoteTask(task, logger); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger) { + return __async(this, null, function* () { + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, this.binary, args, this.outputHandler, logger.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger.step("HANDLE")); + logger(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger) { + return __async(this, null, function* () { + logger(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger.info(`custom error handler treated as success`); + logger(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + }, fail); + } + if (error) { + logger.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger) { + return __async(this, null, function* () { + const outputLogger = logger.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + logger.info(`%s %o`, command, args); + logger("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + const spawned = (0, import_child_process.spawn)(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger)); + if (outputHandler) { + logger(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); + } + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; + } + }; + } +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm2({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(binary = "git", cwd, _scheduler, _plugins) { + this.binary = binary; + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; + } +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? void 0 : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, void 0); + } + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log2 = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log2 = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log2(name); + return err.git[name]; + } + }; + return all; + } +} +var init_task_callback = __esm2({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils(); + } +}); +function changeWorkingDirectoryTask(directory, root2) { + return adhocExecTask((instance10) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root2 || instance10).cwd = directory; + }); +} +var init_change_working_directory = __esm2({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils(); + init_task(); + } +}); +function checkoutTask(args) { + const commands2 = ["checkout", ...args]; + if (commands2[1] === "-b" && commands2.includes("-B")) { + commands2[1] = remove2(commands2, "-B"); + } + return straightThroughStringTask(commands2); +} +function checkout_default() { + return { + checkout() { + return this._runTask(checkoutTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); + }, + checkoutBranch(branchName, startPoint) { + return this._runTask(checkoutTask(["-b", branchName, startPoint, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + }, + checkoutLocalBranch(branchName) { + return this._runTask(checkoutTask(["-b", branchName, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + }; +} +var init_checkout = __esm2({ + "src/lib/tasks/checkout.ts"() { + init_utils(); + init_task(); + } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 + } + }; + return parseStringResponse(result, parsers, stdOut); +} +var parsers; +var init_parse_commit = __esm2({ + "src/lib/parsers/parse-commit.ts"() { + init_utils(); + parsers = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch2, root2, commit2]) => { + result.branch = branch2; + result.commit = commit2; + result.root = !!root2; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; + } + }) + ]; + } +}); +function commitTask(message, files, customArgs) { + const commands2 = [ + "-c", + "core.abbrev=40", + "commit", + ...prefixedArray(message, "-m"), + ...files, + ...customArgs + ]; + return { + commands: commands2, + format: "utf-8", + parser: parseCommitResult + }; +} +function commit_default() { + return { + commit(message, ...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); + return this._runTask(task, next); + } + }; + function rejectDeprecatedSignatures(message) { + return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); + } +} +var init_commit = __esm2({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + init_utils(); + init_task(); + } +}); +function hashObjectTask(filePath, write) { + const commands2 = ["hash-object", filePath]; + if (write) { + commands2.push("-w"); + } + return straightThroughStringTask(commands2, true); +} +var init_hash_object = __esm2({ + "src/lib/tasks/hash-object.ts"() { + init_task(); + } +}); +function parseInit(bare, path2, text2) { + const response = String(text2).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path2, false, result[1]); + } + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path2, true, result[1]); + } + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } + } + return new InitSummary(bare, path2, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm2({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path2, existing, gitDir) { + this.bare = bare; + this.path = path2; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; + } +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path2, customArgs) { + const commands2 = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands2)) { + commands2.splice(1, 0, bareCommand); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return parseInit(commands2.includes("--bare"), path2, text2); + } + }; +} +var bareCommand; +var init_init = __esm2({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; + } +}); +function logFormatFromCommand(customArgs) { + for (let i = 0; i < customArgs.length; i++) { + const format = logFormatRegex.exec(customArgs[i]); + if (format) { + return `--${format[1]}`; + } + } + return ""; +} +function isLogFormat(customArg) { + return logFormatRegex.test(customArg); +} +var logFormatRegex; +var init_log_format = __esm2({ + "src/lib/args/log-format.ts"() { + logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; + } +}); +var DiffSummary; +var init_DiffSummary = __esm2({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } + }; + } +}); +function getDiffParser(format = "") { + const parser3 = diffSummaryParsers[format]; + return (stdOut) => parseStringResponse(new DiffSummary(), parser3, stdOut, false); +} +var statParser; +var numStatParser; +var nameOnlyParser; +var nameStatusParser; +var diffSummaryParsers; +var init_parse_diff_summary = __esm2({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_log_format(); + init_DiffSummary(); + init_utils(); + statParser = [ + new LineParser(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { + result.files.push({ + file: file.trim(), + changes: asNumber(changes), + insertions: alterations.replace(/[^+]/g, "").length, + deletions: alterations.replace(/[^-]/g, "").length, + binary: false + }); + }), + new LineParser(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { + result.files.push({ + file: file.trim(), + before: asNumber(before), + after: asNumber(after), + binary: true + }); + }), + new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { + const inserted = /(\d+) i/.exec(summary); + const deleted = /(\d+) d/.exec(summary); + result.changed = asNumber(changed); + result.insertions = asNumber(inserted == null ? void 0 : inserted[1]); + result.deletions = asNumber(deleted == null ? void 0 : deleted[1]); + }) + ]; + numStatParser = [ + new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { + const insertions = asNumber(changesInsert); + const deletions = asNumber(changesDelete); + result.changed++; + result.insertions += insertions; + result.deletions += deletions; + result.files.push({ + file, + changes: insertions + deletions, + insertions, + deletions, + binary: false + }); + }), + new LineParser(/-\t-\t(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + after: 0, + before: 0, + binary: true + }); + }) + ]; + nameOnlyParser = [ + new LineParser(/(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + nameStatusParser = [ + new LineParser(/([ACDMRTUXB])([0-9][0-9][0-9])?\t(.[^\t]+)\t?(.*)?$/, (result, [status2, _similarity, from, to]) => { + result.changed++; + result.files.push({ + file: to != null ? to : from, + changes: 0, + status: status2, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + diffSummaryParsers = { + [ + "" + /* NONE */ + ]: statParser, + [ + "--stat" + /* STAT */ + ]: statParser, + [ + "--numstat" + /* NUM_STAT */ + ]: numStatParser, + [ + "--name-status" + /* NAME_STATUS */ + ]: nameStatusParser, + [ + "--name-only" + /* NAME_ONLY */ + ]: nameOnlyParser + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index2) => { + line[field] = tokens[index2] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { + const parseDiffResult = getDiffParser(logFormat); + return function(stdOut) { + const all = toLinesWithContent(stdOut, true, START_BOUNDARY).map(function(item) { + const lineDetail = item.trim().split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm2({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils(); + init_parse_diff_summary(); + init_log_format(); + START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 "; + COMMIT_BOUNDARY = " \xF2\xF2"; + SPLITTER = " \xF2 "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask, + validateLogFormatConfig: () => validateLogFormatConfig +}); +function diffSummaryTask(customArgs) { + let logFormat = logFormatFromCommand(customArgs); + const commands2 = ["diff"]; + if (logFormat === "") { + logFormat = "--stat"; + commands2.push("--stat=4096"); + } + commands2.push(...customArgs); + return validateLogFormatConfig(commands2) || { + commands: commands2, + format: "utf-8", + parser: getDiffParser(logFormat) + }; +} +function validateLogFormatConfig(customArgs) { + const flags = customArgs.filter(isLogFormat); + if (flags.length > 1) { + return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + } + if (flags.length && customArgs.includes("-z")) { + return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); + } +} +var init_diff = __esm2({ + "src/lib/tasks/diff.ts"() { + init_log_format(); + init_parse_diff_summary(); + init_task(); + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [fields, formatStr.join(splitter)]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; + } + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from || opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + } + if (filterString(opt.file)) { + suffix.push("--follow", opt.file); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [...command, ...suffix] + }; +} +function logTask(splitter, fields, customArgs) { + const parser3 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: parser3 + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); + const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); + return this._runTask(task, next); + } + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from, to) { + return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm2({ + "src/lib/tasks/log.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_utils(); + init_task(); + init_diff(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm2({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; + } + return "OK"; + } + }; + } +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm2({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; + } + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; + } + toString() { + return this.message; + } + }; + } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; +} +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm2({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; + } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers2, stdErr); +} +var parsers2; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm2({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils(); + init_parse_remote_objects(); + parsers2 = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text2]) => { + result.remoteMessages.all.push(text2.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; + } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary(), errorParsers, [stdOut, stdErr]); + return pullError.message && pullError; +} +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers3; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm2({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers3 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== void 0 || deletions !== void 0) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary(), parsers3, [stdOut, stdErr]); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary(), parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; + } +}); +var parsers4; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm2({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils(); + init_parse_pull(); + parsers4 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef2]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef: deleteRef2 })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail(), parsers4, stdOut); + }; + } +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); + } + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge2 = parseMergeResult(stdOut, stdErr); + if (merge2.failed) { + throw new GitResponseError(merge2); + } + return merge2; + } + }; +} +var init_merge = __esm2({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); + } +}); +function pushResultPushedItem(local, remote, status2) { + const deleted = status2.includes("deleted"); + const tag2 = status2.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status2.includes("new"); + return { + deleted, + tag: tag2, + branch: !tag2, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; +} +var parsers5; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm2({ + "src/lib/parsers/parse-push.ts"() { + init_utils(); + init_parse_remote_messages(); + parsers5 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { + local + }); + }), + new LineParser(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues(__spreadValues({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); + }; + } +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands2 = ["push", ...customArgs]; + if (ref.branch) { + commands2.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands2.splice(1, 0, ref.remote); + } + remove2(commands2, "-v"); + append(commands2, "--verbose"); + append(commands2, "--porcelain"); + return { + commands: commands2, + format: "utf-8", + parser: parsePushResult + }; +} +var init_push = __esm2({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils(); + } +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm2({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+) -> (.+)$/; + FileStatusSummary = class { + constructor(path2, index2, working_dir) { + this.path = path2; + this.index = index2; + this.working_dir = working_dir; + if (index2 + working_dir === "R") { + const detail = fromPathRegex.exec(path2) || [null, path2, path2]; + this.from = detail[1] || ""; + this.path = detail[2] || ""; + } + } + }; + } +}); +function renamedFile(line) { + const [to, from] = line.split(NULL); + return { + from: from || to, + to + }; +} +function parser2(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser2(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index2, workingDir, path2) { + const raw = `${index2}${workingDir}`; + const handler = parsers6.get(raw); + if (handler) { + handler(result, path2); + } + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path2.replace(/\0.+$/, ""), index2, workingDir)); + } + } +} +var StatusSummary; +var parsers6; +var parseStatusSummary; +var init_StatusSummary = __esm2({ + "src/lib/responses/StatusSummary.ts"() { + init_utils(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = void 0; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers6 = new Map([ + parser2(" ", "A", (result, file) => append(result.created, file)), + parser2(" ", "D", (result, file) => append(result.deleted, file)), + parser2(" ", "M", (result, file) => append(result.modified, file)), + parser2("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser2("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser2("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser2("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser2("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser2("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser2("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts( + "A", + "A", + "U" + /* UNMERGED */ + ), + ...conflicts( + "D", + "D", + "U" + /* UNMERGED */ + ), + ...conflicts( + "U", + "A", + "D", + "U" + /* UNMERGED */ + ), + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + } + ] + ]); + parseStatusSummary = function(text2) { + const lines = text2.split(NULL); + const status2 = new StatusSummary(); + for (let i = 0, l = lines.length; i < l; ) { + let line = lines[i++].trim(); + if (!line) { + continue; + } + if (line.charAt(0) === "R") { + line += NULL + (lines[i++] || ""); + } + splitLine(status2, line); + } + return status2; + }; + } +}); +function statusTask(customArgs) { + const commands2 = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands: commands2, + parser(text2) { + return parseStatusSummary(text2); + } + }; +} +var ignoredOptions; +var init_status = __esm2({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${this.major}.${this.minor}.${this.patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser: versionParser, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer.from(NOT_INSTALLED)); + } + fail(error); + } + }); + } + }; +} +function versionParser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); + } + return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); +} +var NOT_INSTALLED; +var parsers7; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils(); + NOT_INSTALLED = "installed=false"; + parsers7 = [ + new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); + }), + new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); + }) + ]; + } +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm2({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_checkout(); + init_commit(); + init_config(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_status(); + init_task(); + init_version(); + init_utils(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; + } + _runTask(task, then) { + const chain = this._executor.chain(); + const promise2 = chain.push(task); + if (then) { + taskCallback(task, promise2, then); + } + return Object.create(this, { + then: { value: promise2.then.bind(promise2) }, + catch: { value: promise2.catch.bind(promise2) }, + _executor: { value: chain } + }); + } + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); + } + if (typeof (directory == null ? void 0 : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); + } + hashObject(path2, write) { + return this._runTask(hashObjectTask(path2, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch2) { + if (!(filterString(remote) && filterString(branch2))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); + } + return this._runTask(mergeTask([remote, branch2, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + } + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, checkout_default(), commit_default(), config_default(), grep_default(), log_default(), version_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm2({ + "src/lib/runners/scheduler.ts"() { + init_utils(); + init_git_logger(); + createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise: promise2, done } = (0, import_promise_deferred.createDeferred)(); + return { + promise: promise2, + done, + id + }; + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove2(this.running, task); + this.schedule(); + }); + } + next() { + const { promise: promise2, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise2; + } + }; + } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); +} +var init_apply_patch = __esm2({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); + } +}); +function branchDeletionSuccess(branch2, hash2) { + return { + branch: branch2, + hash: hash2, + success: true + }; +} +function branchDeletionFailure(branch2) { + return { + branch: branch2, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm2({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; + } +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers8; +var parseBranchDeletions; +var init_parse_branch_delete = __esm2({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers8 = [ + new LineParser(deleteSuccessRegex, (result, [branch2, hash2]) => { + const deletion = branchDeletionSuccess(branch2, hash2); + result.all.push(deletion); + result.branches[branch2] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch2]) => { + const deletion = branchDeletionFailure(branch2); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch2] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch(), parsers8, [stdOut, stdErr]); + }; + } +}); +var BranchSummaryResult; +var init_BranchSummary = __esm2({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; + } + push(status2, detached, name, commit2, label) { + if (status2 === "*") { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current: status2 === "*", + linkedWorkTree: status2 === "+", + name, + commit: commit2, + label + }; + } + }; + } +}); +function branchStatus(input) { + return input ? input.charAt(0) : ""; +} +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult(), parsers9, stdOut); +} +var parsers9; +var init_parse_branch = __esm2({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils(); + parsers9 = [ + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), true, name, commit2, label); + }), + new LineParser(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), false, name, commit2, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands2) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands2.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands2 = ["branch", ...customArgs]; + if (commands2.length === 1) { + commands2.push("-a"); + } + if (!commands2.includes("-v")) { + commands2.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands: commands2, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parseBranchSummary(stdOut); + } + }; +} +function branchLocalTask() { + const parser3 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser3 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); + } + }; +} +function deleteBranchTask(branch2, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch2], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch2]; + }, + onError({ exitCode, stdErr, stdOut }, error, _, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); + } + }; + return task; +} +var init_branch = __esm2({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm2({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text2) => { + return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; + } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; +} +var init_check_ignore = __esm2({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function cloneTask(repo, directory, customArgs) { + const commands2 = ["clone", ...customArgs]; + filterString(repo) && commands2.push(repo); + filterString(directory) && commands2.push(directory); + const banned = commands2.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return straightThroughStringTask(commands2); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm2({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + updated: [], + deleted: [] + }; + return parseStringResponse(result, parsers10, [stdOut, stdErr]); +} +var parsers10; +var init_parse_fetch = __esm2({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils(); + parsers10 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking + }); + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from + }); + }) + ]; + } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand2(command) { + return /^--upload-pack(=|$)/.test(command); +} +function fetchTask(remote, branch2, customArgs) { + const commands2 = ["fetch", ...customArgs]; + if (remote && branch2) { + commands2.push(remote, branch2); + } + const banned = commands2.find(disallowedCommand2); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return { + commands: commands2, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm2({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); + } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers11, stdOut); +} +var parsers11; +var init_parse_move = __esm2({ + "src/lib/parsers/parse-move.ts"() { + init_utils(); + parsers11 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }) + ]; + } +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from, to) { + return { + commands: ["mv", "-v", ...asArray(from), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm2({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils(); + } +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch2, customArgs) { + const commands2 = ["pull", ...customArgs]; + if (remote && branch2) { + commands2.splice(1, 0, remote, branch2); + } + return { + commands: commands2, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); + } + }; +} +var init_pull = __esm2({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils(); + } +}); +function parseGetRemotes(text2) { + const remotes = {}; + forEach(text2, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text2) { + const remotes = {}; + forEach(text2, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + } + }); + return Object.values(remotes); +} +function forEach(text2, handler) { + forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm2({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils(); + } +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs = []) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands2 = ["remote"]; + if (verbose) { + commands2.push("-v"); + } + return { + commands: commands2, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs = []) { + const commands2 = [...customArgs]; + if (commands2[0] !== "ls-remote") { + commands2.unshift("ls-remote"); + } + return straightThroughStringTask(commands2); +} +function remoteTask(customArgs = []) { + const commands2 = [...customArgs]; + if (commands2[0] !== "remote") { + commands2.unshift("remote"); + } + return straightThroughStringTask(commands2); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm2({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); + } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const commands2 = ["stash", "list", ...options.commands, ...customArgs]; + const parser3 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands2)); + return validateLogFormatConfig(commands2) || { + commands: commands2, + format: "utf-8", + parser: parser3 + }; +} +var init_stash_list = __esm2({ + "src/lib/tasks/stash-list.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_diff(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path2) { + return subModuleTask(["add", repo, path2]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands2 = [...customArgs]; + if (commands2[0] !== "submodule") { + commands2.unshift("submodule"); + } + return straightThroughStringTask(commands2); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm2({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm2({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } + }; + parseTagList = function(data, customSort = false) { + const tags = data.split("\n").map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { + const diff2 = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff2) { + return diff2; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag2) => tag2.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text2) { + return parseTagList(text2, hasCustomSort); + } + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; + } + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; + } + }; +} +var init_tag = __esm2({ + "src/lib/tasks/tag.ts"() { + init_TagList(); + } +}); +var require_git = __commonJS2({ + "src/git.js"(exports2, module2) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS2(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS2(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS2(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS2(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils(), __toCommonJS2(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS2(apply_patch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS2(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS2(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS2(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS2(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS2(clean_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS2(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS2(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS2(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS2(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS2(push_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS2(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS2(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS2(stash_list_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS2(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS2(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS2(task_exports)); + function Git2(options, plugins) { + this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; + } + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._executor.binary = command; + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + } + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from, to) { + return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); + }); + }); + }; + Git2.prototype.pull = function(remote, branch2, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch2) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit2) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit2 !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit2]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands2) { + const createRestCommands = !Array.isArray(commands2); + const command = [].slice.call(createRestCommands ? arguments : commands2, 0); + for (let i = 0; i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; + } + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); + }; + Git2.prototype.submoduleAdd = function(repo, path2, then) { + return this._runTask(addSubModuleTask2(repo, path2), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands2 = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands2, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.show = function(options, then) { + return this._runTask(straightThroughStringTask2(["show", ...getTrailingOptions2(arguments, 1)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module2.exports = Git2; + } +}); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(void 0, message); + this.config = config; + } +}; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); + } +}; +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_grep(); +init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; + } + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(void 0, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); + } + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(void 0, "abort", "Abort already signaled")); + } + } + }; + return [onSpawnBefore, onSpawnAfter]; +} +function isConfigSwitch(arg) { + return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; + } + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; + } + throw new GitPluginError(void 0, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function preventUploadPack(arg, method2) { + if (/^\s*--(upload|receive)-pack/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`); + } + if (method2 === "clone" && /^\s*-u\b/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of clone with option -u is not permitted without enabling allowUnsafePack`); + } + if (method2 === "push" && /^\s*--exec\b/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of push with option --exec is not permitted without enabling allowUnsafePack`); + } +} +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false, + allowUnsafePack = false +} = {}) { + return { + type: "spawn.args", + action(args, context) { + args.forEach((current, index2) => { + const next = index2 < args.length ? args[index2 + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + allowUnsafePack || preventUploadPack(current, context.method); + }); + return args; + } + }; +} +init_utils(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; + } + }; +} +init_utils(); +var never = (0, import_promise_deferred2.deferred)().promise; +function completionDetectionPlugin({ + onClose = true, + onExit = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: (0, import_promise_deferred2.deferred)(), + closeTimeout: (0, import_promise_deferred2.deferred)(), + exit: (0, import_promise_deferred2.deferred)(), + exitTimeout: (0, import_promise_deferred2.deferred)() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); + }, + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result + }; + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; + } + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async(this, arguments, function* (_data, { spawned, close }) { + var _a2, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a2 = spawned.stdout) == null ? void 0 : _a2.on("data", quickClose); + (_b = spawned.stderr) == null ? void 0 : _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); + } + }); + } + }; +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; + } + return errorMessage(result); + }; +} +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode + }); + if (Buffer.isBuffer(error)) { + return { error: new GitError(void 0, error.toString("utf-8")) }; + } + return { + error + }; + } + }; +} +init_utils(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set(); + } + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); + }; + } + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; + } +}; +init_utils(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; + } + (_a2 = context.spawned.stderr) == null ? void 0 : _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues(__spreadValues({}, options), data); + } + }; +} +function timeoutPlugin({ + block, + stdErr = true, + stdOut = true +}) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait3() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null ? void 0 : _a3.off("data", wait3); + (_b2 = context.spawned.stderr) == null ? void 0 : _b2.off("data", wait3); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + timeout && clearTimeout(timeout); + } + function kill() { + stop(); + context.kill(new GitPluginError(void 0, "timeout", `block timeout reached`)); + } + stdOut && ((_a2 = context.spawned.stdout) == null ? void 0 : _a2.on("data", wait3)); + stdErr && ((_b = context.spawned.stderr) == null ? void 0 : _b.on("data", wait3)); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait3(); + } + }; + } +} +init_utils(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + const plugins = new PluginStore(); + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); + } + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); + plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + return new Git(config, plugins); +} +init_git_response_error(); +var esm_default = gitInstanceFactory; + +// src/constants.ts +init_polyfill_buffer(); +var import_obsidian2 = require("obsidian"); +var DATE_FORMAT = "YYYY-MM-DD"; +var DATE_TIME_FORMAT_MINUTES = `${DATE_FORMAT} HH:mm`; +var DATE_TIME_FORMAT_SECONDS = `${DATE_FORMAT} HH:mm:ss`; +var GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH = 40; +var DEFAULT_SETTINGS = { + commitMessage: "vault backup: {{date}}", + commitDateFormat: DATE_TIME_FORMAT_SECONDS, + autoSaveInterval: 0, + autoPushInterval: 0, + autoPullInterval: 0, + autoPullOnBoot: false, + disablePush: false, + pullBeforePush: true, + disablePopups: false, + listChangedFilesInMessageBody: false, + showStatusBar: true, + updateSubmodules: false, + syncMethod: "merge", + customMessageOnAutoBackup: false, + autoBackupAfterFileChange: false, + treeStructure: false, + refreshSourceControl: import_obsidian2.Platform.isDesktopApp, + basePath: "", + differentIntervalCommitAndPush: false, + changedFilesInStatusBar: false, + showedMobileNotice: false, + refreshSourceControlTimer: 7e3, + showBranchStatusBar: true, + setLastSaveToLastCommit: false, + submoduleRecurseCheckout: false, + gitDir: "", + showFileMenu: true, + lineAuthor: { + show: false, + followMovement: "inactive", + authorDisplay: "initials", + showCommitHash: false, + dateTimeFormatOptions: "date", + dateTimeFormatCustomString: DATE_TIME_FORMAT_MINUTES, + dateTimeTimezone: "viewer-local", + coloringMaxAge: "1y", + // colors were picked via: + // https://color.adobe.com/de/create/color-accessibility + colorNew: { r: 255, g: 150, b: 150 }, + colorOld: { r: 120, g: 160, b: 255 }, + textColorCss: "var(--text-muted)", + // more pronounced than line numbers, but less than the content text + ignoreWhitespace: false, + gutterSpacingFallbackLength: 5 + } +}; +var SOURCE_CONTROL_VIEW_CONFIG = { + type: "git-view", + name: "Source Control", + icon: "git-pull-request" +}; +var HISTORY_VIEW_CONFIG = { + type: "git-history-view", + name: "History", + icon: "history" +}; +var DIFF_VIEW_CONFIG = { + type: "diff-view", + name: "Diff View", + icon: "git-pull-request" +}; + +// src/types.ts +init_polyfill_buffer(); +function mergeSettingsByPriority(low, high) { + const lineAuthor = Object.assign({}, low.lineAuthor, high.lineAuthor); + return Object.assign({}, low, high, { lineAuthor }); +} + +// src/utils.ts +init_polyfill_buffer(); +var cssColorConverter = __toESM(require_lib3()); +var import_deep_equal = __toESM(require_deep_equal()); +var import_obsidian3 = require("obsidian"); +var worthWalking2 = (filepath, root2) => { + if (filepath === "." || root2 == null || root2.length === 0 || root2 === ".") { + return true; + } + if (root2.length >= filepath.length) { + return root2.startsWith(filepath); + } else { + return filepath.startsWith(root2); + } +}; +function getNewLeaf(event) { + let leaf; + if (event) { + if (event.button === 0 || event.button === 1) { + const type = import_obsidian3.Keymap.isModEvent(event); + leaf = app.workspace.getLeaf(type); + } + } else { + leaf = app.workspace.getLeaf(false); + } + return leaf; +} +function impossibleBranch(x) { + throw new Error("Impossible branch: " + x); +} +function rgbToString(rgb) { + return `rgb(${rgb.r},${rgb.g},${rgb.b})`; +} +function convertToRgb(str) { + var _a2; + const color = (_a2 = cssColorConverter.fromString(str)) == null ? void 0 : _a2.toRgbaArray(); + if (color === void 0) { + return void 0; + } + const [r, g, b] = color; + return { r, g, b }; +} +function momentToEpochSeconds(instant) { + return instant.diff(import_obsidian3.moment.unix(0), "seconds"); +} +function median(array) { + if (array.length === 0) + return void 0; + return array.slice().sort()[Math.floor(array.length / 2)]; +} +function strictDeepEqual(a, b) { + return (0, import_deep_equal.default)(a, b, { strict: true }); +} +function resizeToLength(original, desiredLength, fillChar) { + if (original.length <= desiredLength) { + const prefix = new Array(desiredLength - original.length).fill(fillChar).join(""); + return prefix + original; + } else { + return original.substring(original.length - desiredLength); + } +} +function prefixOfLengthAsWhitespace(toBeRenderedText, whitespacePrefixLength) { + if (whitespacePrefixLength <= 0) + return toBeRenderedText; + const whitespacePrefix = new Array(whitespacePrefixLength).fill(" ").join(""); + const originalSuffix = toBeRenderedText.substring( + whitespacePrefixLength, + toBeRenderedText.length + ); + return whitespacePrefix + originalSuffix; +} +function between(l, x, r) { + return l <= x && x <= r; +} +function splitRemoteBranch(remoteBranch) { + const [remote, ...branch2] = remoteBranch.split("/"); + return [remote, branch2.length === 0 ? void 0 : branch2.join("/")]; +} +function getDisplayPath(path2) { + if (path2.endsWith("/")) + return path2; + return path2.split("/").last().replace(".md", ""); +} + +// src/gitManager/gitManager.ts +init_polyfill_buffer(); +var GitManager = class { + constructor(plugin) { + this.plugin = plugin; + this.app = plugin.app; + } + getVaultPath(path2) { + if (this.plugin.settings.basePath) { + return this.plugin.settings.basePath + "/" + path2; + } else { + return path2; + } + } + asRepositoryRelativePath(path2, relativeToVault) { + return relativeToVault && this.plugin.settings.basePath.length > 0 ? path2.substring(this.plugin.settings.basePath.length + 1) : path2; + } + _getTreeStructure(children2, beginLength = 0) { + const list = []; + children2 = [...children2]; + while (children2.length > 0) { + const first2 = children2.first(); + const restPath = first2.path.substring(beginLength); + if (restPath.contains("/")) { + const title = restPath.substring(0, restPath.indexOf("/")); + const childrenWithSameTitle = children2.filter((item) => { + return item.path.substring(beginLength).startsWith(title + "/"); + }); + childrenWithSameTitle.forEach((item) => children2.remove(item)); + const path2 = first2.path.substring( + 0, + restPath.indexOf("/") + beginLength + ); + list.push({ + title, + path: path2, + vaultPath: this.getVaultPath(path2), + children: this._getTreeStructure( + childrenWithSameTitle, + (beginLength > 0 ? beginLength + title.length : title.length) + 1 + ) + }); + } else { + list.push({ + title: restPath, + data: first2, + path: first2.path, + vaultPath: this.getVaultPath(first2.path) + }); + children2.remove(first2); + } + } + return list; + } + /* + * Sorts the children and simplifies the title + * If a node only contains another subdirectory, that subdirectory is moved up one level and integrated into the parent node + */ + simplify(tree) { + var _a2, _b, _c, _d; + for (const node of tree) { + while (true) { + const singleChild = ((_a2 = node.children) == null ? void 0 : _a2.length) == 1; + const singleChildIsDir = ((_c = (_b = node.children) == null ? void 0 : _b.first()) == null ? void 0 : _c.data) == void 0; + if (!(node.children != void 0 && singleChild && singleChildIsDir)) + break; + const child = node.children.first(); + node.title += "/" + child.title; + node.data = child.data; + node.path = child.path; + node.vaultPath = child.vaultPath; + node.children = child.children; + } + if (node.children != void 0) { + this.simplify(node.children); + } + (_d = node.children) == null ? void 0 : _d.sort((a, b) => { + const dirCompare = (b.data == void 0 ? 1 : 0) - (a.data == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + return tree.sort((a, b) => { + const dirCompare = (b.data == void 0 ? 1 : 0) - (a.data == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + getTreeStructure(children2) { + const tree = this._getTreeStructure(children2); + const res = this.simplify(tree); + return res; + } + async formatCommitMessage(template) { + let status2; + if (template.includes("{{numFiles}}")) { + status2 = await this.status(); + const numFiles = status2.staged.length; + template = template.replace("{{numFiles}}", String(numFiles)); + } + if (template.includes("{{hostname}}")) { + const hostname = this.plugin.localStorage.getHostname() || ""; + template = template.replace("{{hostname}}", hostname); + } + if (template.includes("{{files}}")) { + status2 = status2 != null ? status2 : await this.status(); + const changeset = {}; + status2.staged.forEach((value) => { + if (value.index in changeset) { + changeset[value.index].push(value.path); + } else { + changeset[value.index] = [value.path]; + } + }); + const chunks = []; + for (const [action, files2] of Object.entries(changeset)) { + chunks.push(action + " " + files2.join(" ")); + } + const files = chunks.join(", "); + template = template.replace("{{files}}", files); + } + const moment5 = window.moment; + template = template.replace( + "{{date}}", + moment5().format(this.plugin.settings.commitDateFormat) + ); + if (this.plugin.settings.listChangedFilesInMessageBody) { + template = template + "\n\nAffected files:\n" + (status2 != null ? status2 : await this.status()).staged.map((e) => e.path).join("\n"); + } + return template; + } +}; + +// src/gitManager/simpleGit.ts +var SimpleGit = class extends GitManager { + constructor(plugin) { + super(plugin); + } + async setGitInstance(ignoreError = false) { + if (this.isGitInstalled()) { + const adapter = this.app.vault.adapter; + const path2 = adapter.getBasePath(); + let basePath = path2; + if (this.plugin.settings.basePath) { + const exists2 = await adapter.exists( + (0, import_obsidian4.normalizePath)(this.plugin.settings.basePath) + ); + if (exists2) { + basePath = path2 + import_path.sep + this.plugin.settings.basePath; + } else if (!ignoreError) { + new import_obsidian4.Notice("ObsidianGit: Base path does not exist"); + } + } + this.git = esm_default({ + baseDir: basePath, + binary: this.plugin.localStorage.getGitPath() || void 0, + config: ["core.quotepath=off"] + }); + const pathPaths = this.plugin.localStorage.getPATHPaths(); + const envVars = this.plugin.localStorage.getEnvVars(); + const gitDir = this.plugin.settings.gitDir; + if (pathPaths.length > 0) { + const path3 = process.env["PATH"] + ":" + pathPaths.join(":"); + process.env["PATH"] = path3; + } + if (gitDir) { + process.env["GIT_DIR"] = gitDir; + } + for (const envVar of envVars) { + const [key2, value] = envVar.split("="); + process.env[key2] = value; + } + import_debug2.default.enable("simple-git"); + if (await this.git.checkIsRepo()) { + await this.git.cwd(await this.git.revparse("--show-toplevel")); + } + } + } + async status() { + this.plugin.setState(1 /* status */); + const status2 = await this.git.status((err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + return { + changed: status2.files.filter((e) => e.working_dir !== " ").map((e) => { + const res = this.formatPath(e); + return { + path: res.path, + from: res.from, + working_dir: e.working_dir === "?" ? "U" : e.working_dir, + vault_path: this.getVaultPath(res.path) + }; + }), + staged: status2.files.filter((e) => e.index !== " " && e.index != "?").map((e) => { + const res = this.formatPath(e, e.index === "R"); + return { + path: res.path, + from: res.from, + index: e.index, + vault_path: this.getVaultPath(res.path) + }; + }), + conflicted: status2.conflicted.map( + (path2) => this.formatPath({ path: path2 }).path + ) + }; + } + async submoduleAwareHeadRevisonInContainingDirectory(filepath) { + const repoPath = this.asRepositoryRelativePath(filepath, true); + const containingDirectory = path.dirname(repoPath); + const args = ["-C", containingDirectory, "rev-parse", "HEAD"]; + const result = this.git.raw(args); + result.catch( + (err) => console.warn("obsidian-git: rev-parse error:", err) + ); + return result; + } + async getSubmodulePaths() { + return new Promise(async (resolve) => { + this.git.outputHandler(async (cmd, stdout, stderr, args) => { + if (!(args.contains("submodule") && args.contains("foreach"))) { + return; + } + let body = ""; + const root2 = this.app.vault.adapter.getBasePath() + (this.plugin.settings.basePath ? "/" + this.plugin.settings.basePath : ""); + stdout.on("data", (chunk) => { + body += chunk.toString("utf8"); + }); + stdout.on("end", async () => { + const submods = body.split("\n"); + const strippedSubmods = submods.map((i) => { + const submod = i.match(/'([^']*)'/); + if (submod != void 0) { + return root2 + "/" + submod[1] + import_path.sep; + } + }).filter((i) => !!i); + strippedSubmods.reverse(); + resolve(strippedSubmods); + }); + }); + await this.git.subModule(["foreach", "--recursive", ""]); + this.git.outputHandler(() => { + }); + }); + } + //Remove wrong `"` like "My file.md" + formatPath(path2, renamed = false) { + function format(path3) { + if (path3 == void 0) + return void 0; + if (path3.startsWith('"') && path3.endsWith('"')) { + return path3.substring(1, path3.length - 1); + } else { + return path3; + } + } + if (renamed) { + return { + from: format(path2.from), + path: format(path2.path) + }; + } else { + return { + path: format(path2.path) + }; + } + } + async blame(path2, trackMovement, ignoreWhitespace) { + path2 = this.asRepositoryRelativePath(path2, true); + if (!await this.isTracked(path2)) + return "untracked"; + const inSubmodule = await this.getSubmoduleOfFile(path2); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativePath = inSubmodule ? inSubmodule.relativeFilepath : path2; + args.push("blame", "--porcelain"); + if (ignoreWhitespace) + args.push("-w"); + const trackCArg = `-C${GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH}`; + switch (trackMovement) { + case "inactive": + break; + case "same-commit": + args.push("-C", trackCArg); + break; + case "all-commits": + args.push("-C", "-C", trackCArg); + break; + default: + impossibleBranch(trackMovement); + } + args.push("--", relativePath); + const rawBlame = await this.git.raw( + args, + (err) => err && console.warn("git-blame", err) + ); + return parseBlame(rawBlame); + } + async isTracked(path2) { + const inSubmodule = await this.getSubmoduleOfFile(path2); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativePath = inSubmodule ? inSubmodule.relativeFilepath : path2; + args.push("ls-files", "--", relativePath); + return this.git.raw(args, (err) => err && console.warn("ls-files", err)).then((x) => x.trim() !== ""); + } + async commitAll({ message }) { + if (this.plugin.settings.updateSubmodules) { + this.plugin.setState(4 /* commit */); + const submodulePaths = await this.getSubmodulePaths(); + for (const item of submodulePaths) { + await this.git.cwd({ path: item, root: false }).add("-A", (err) => this.onError(err)); + await this.git.cwd({ path: item, root: false }).commit( + await this.formatCommitMessage(message), + (err) => this.onError(err) + ); + } + } + this.plugin.setState(3 /* add */); + await this.git.add("-A", (err) => this.onError(err)); + this.plugin.setState(4 /* commit */); + const res = await this.git.commit( + await this.formatCommitMessage(message), + (err) => this.onError(err) + ); + dispatchEvent(new CustomEvent("git-head-update")); + return res.summary.changes; + } + async commit(message) { + this.plugin.setState(4 /* commit */); + const res = (await this.git.commit( + await this.formatCommitMessage(message), + (err) => this.onError(err) + )).summary.changes; + dispatchEvent(new CustomEvent("git-head-update")); + this.plugin.setState(0 /* idle */); + return res; + } + async stage(path2, relativeToVault) { + this.plugin.setState(3 /* add */); + path2 = this.asRepositoryRelativePath(path2, relativeToVault); + await this.git.add(["--", path2], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async stageAll({ dir }) { + this.plugin.setState(3 /* add */); + await this.git.add(dir != null ? dir : "-A", (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async unstageAll({ dir }) { + this.plugin.setState(3 /* add */); + await this.git.reset( + dir != void 0 ? ["--", dir] : [], + (err) => this.onError(err) + ); + this.plugin.setState(0 /* idle */); + } + async unstage(path2, relativeToVault) { + this.plugin.setState(3 /* add */); + path2 = this.asRepositoryRelativePath(path2, relativeToVault); + await this.git.reset(["--", path2], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async discard(filepath) { + this.plugin.setState(3 /* add */); + await this.git.checkout(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async hashObject(filepath) { + filepath = this.asRepositoryRelativePath(filepath, true); + const inSubmodule = await this.getSubmoduleOfFile(filepath); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativeFilepath = inSubmodule ? inSubmodule.relativeFilepath : filepath; + args.push("hash-object", "--", relativeFilepath); + const revision = this.git.raw(args); + revision.catch( + (err) => err && console.warn("obsidian-git. hash-object failed:", err == null ? void 0 : err.message) + ); + return revision; + } + async discardAll({ dir }) { + return this.discard(dir != null ? dir : "."); + } + async pull() { + this.plugin.setState(2 /* pull */); + if (this.plugin.settings.updateSubmodules) + await this.git.subModule( + ["update", "--remote", "--merge", "--recursive"], + (err) => this.onError(err) + ); + const branchInfo = await this.branchInfo(); + const localCommit = await this.git.revparse( + [branchInfo.current], + (err) => this.onError(err) + ); + await this.git.fetch((err) => this.onError(err)); + const upstreamCommit = await this.git.revparse( + [branchInfo.tracking], + (err) => this.onError(err) + ); + if (localCommit !== upstreamCommit) { + if (this.plugin.settings.syncMethod === "merge" || this.plugin.settings.syncMethod === "rebase") { + try { + switch (this.plugin.settings.syncMethod) { + case "merge": + await this.git.merge([branchInfo.tracking]); + break; + case "rebase": + await this.git.rebase([branchInfo.tracking]); + } + } catch (err) { + this.plugin.displayError( + `Pull failed (${this.plugin.settings.syncMethod}): ${err.message}` + ); + return; + } + } else if (this.plugin.settings.syncMethod === "reset") { + try { + await this.git.raw( + [ + "update-ref", + `refs/heads/${branchInfo.current}`, + upstreamCommit + ], + (err) => this.onError(err) + ); + await this.unstageAll({}); + } catch (err) { + this.plugin.displayError( + `Sync failed (${this.plugin.settings.syncMethod}): ${err.message}` + ); + } + } + dispatchEvent(new CustomEvent("git-head-update")); + const afterMergeCommit = await this.git.revparse( + [branchInfo.current], + (err) => this.onError(err) + ); + const filesChanged = await this.git.diff([ + `${localCommit}..${afterMergeCommit}`, + "--name-only" + ]); + return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).map((e) => { + return { + path: e, + working_dir: "P", + vault_path: this.getVaultPath(e) + }; + }); + } else { + return []; + } + } + async push() { + this.plugin.setState(1 /* status */); + const status2 = await this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (await this.git.diffSummary( + [currentBranch2, trackingBranch, "--"], + (err) => this.onError(err) + )).changed; + this.plugin.setState(5 /* push */); + if (this.plugin.settings.updateSubmodules) { + await this.git.env({ ...process.env, OBSIDIAN_GIT: 1 }).subModule( + [ + "foreach", + "--recursive", + `tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi` + ], + (err) => this.onError(err) + ); + } + await this.git.env({ ...process.env, OBSIDIAN_GIT: 1 }).push((err) => this.onError(err)); + return remoteChangedFiles; + } + async getUnpushedCommits() { + const status2 = await this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (trackingBranch == null || currentBranch2 == null) { + return 0; + } + const remoteChangedFiles = (await this.git.diffSummary( + [currentBranch2, trackingBranch, "--"], + (err) => this.onError(err) + )).changed; + return remoteChangedFiles; + } + async canPush() { + if (this.plugin.settings.updateSubmodules === true) { + return true; + } + const status2 = await this.git.status((err) => this.onError(err)); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const remoteChangedFiles = (await this.git.diffSummary([currentBranch2, trackingBranch, "--"])).changed; + return remoteChangedFiles !== 0; + } + async checkRequirements() { + if (!this.isGitInstalled()) { + return "missing-git"; + } + if (!await this.git.checkIsRepo()) { + return "missing-repo"; + } + return "valid"; + } + async branchInfo() { + const status2 = await this.git.status((err) => this.onError(err)); + const branches = await this.git.branch( + ["--no-color"], + (err) => this.onError(err) + ); + return { + current: status2.current || void 0, + tracking: status2.tracking || void 0, + branches: branches.all + }; + } + async getRemoteUrl(remote) { + return await this.git.remote( + ["get-url", remote], + (err, url) => this.onError(err) + ) || void 0; + } + // https://github.com/kometenstaub/obsidian-version-history-diff/issues/3 + async log(file, relativeToVault = true, limit) { + let path2; + if (file) { + path2 = this.asRepositoryRelativePath(file, relativeToVault); + } + const res = await this.git.log( + { + file: path2, + maxCount: limit, + "-m": null, + "--name-status": null + }, + (err) => this.onError(err) + ); + return res.all.map((e) => { + var _a2, _b, _c, _d; + return { + ...e, + refs: e.refs.split(", "), + diff: { + ...e.diff, + files: (_b = (_a2 = e.diff) == null ? void 0 : _a2.files.map((f) => ({ + ...f, + status: f.status, + path: f.file, + hash: e.hash, + vault_path: this.getVaultPath(f.file) + }))) != null ? _b : [] + }, + fileName: (_d = (_c = e.diff) == null ? void 0 : _c.files.first()) == null ? void 0 : _d.file + }; + }); + } + async show(commitHash, file, relativeToVault = true) { + const path2 = this.asRepositoryRelativePath(file, relativeToVault); + return this.git.show( + [commitHash + ":" + path2], + (err) => this.onError(err) + ); + } + async checkout(branch2, remote) { + if (remote) { + branch2 = `${remote}/${branch2}`; + } + await this.git.checkout(branch2, (err) => this.onError(err)); + if (this.plugin.settings.submoduleRecurseCheckout) { + const submodulePaths = await this.getSubmodulePaths(); + for (const submodulePath of submodulePaths) { + const branchSummary = await this.git.cwd({ path: submodulePath, root: false }).branch(); + if (Object.keys(branchSummary.branches).includes(branch2)) { + await this.git.cwd({ path: submodulePath, root: false }).checkout(branch2, (err) => this.onError(err)); + } + } + } + } + async createBranch(branch2) { + await this.git.checkout(["-b", branch2], (err) => this.onError(err)); + } + async deleteBranch(branch2, force) { + await this.git.branch( + [force ? "-D" : "-d", branch2], + (err) => this.onError(err) + ); + } + async branchIsMerged(branch2) { + const notMergedBranches = await this.git.branch( + ["--no-merged"], + (err) => this.onError(err) + ); + return !notMergedBranches.all.contains(branch2); + } + async init() { + await this.git.init(false, (err) => this.onError(err)); + } + async clone(url, dir, depth) { + await this.git.clone( + url, + path.join( + this.app.vault.adapter.getBasePath(), + dir + ), + depth ? ["--depth", `${depth}`] : [], + (err) => this.onError(err) + ); + } + async setConfig(path2, value) { + if (value == void 0) { + await this.git.raw(["config", "--local", "--unset", path2]); + } else { + await this.git.addConfig(path2, value, (err) => this.onError(err)); + } + } + async getConfig(path2) { + const config = await this.git.listConfig( + "local", + (err) => this.onError(err) + ); + return config.all[path2]; + } + async fetch(remote) { + await this.git.fetch( + remote != void 0 ? [remote] : [], + (err) => this.onError(err) + ); + } + async setRemote(name, url) { + if ((await this.getRemotes()).includes(name)) + await this.git.remote( + ["set-url", name, url], + (err) => this.onError(err) + ); + else { + await this.git.remote( + ["add", name, url], + (err) => this.onError(err) + ); + } + } + async getRemoteBranches(remote) { + const res = await this.git.branch( + ["-r", "--list", `${remote}*`], + (err) => this.onError(err) + ); + console.log(remote); + console.log(res); + const list = []; + for (const item in res.branches) { + list.push(res.branches[item].name); + } + return list; + } + async getRemotes() { + const res = await this.git.remote([], (err) => this.onError(err)); + if (res) { + return res.trim().split("\n"); + } else { + return []; + } + } + async removeRemote(remoteName) { + await this.git.removeRemote(remoteName); + } + async updateUpstreamBranch(remoteBranch) { + try { + await this.git.branch(["--set-upstream-to", remoteBranch]); + } catch (e) { + console.error(e); + try { + await this.git.branch(["--set-upstream", remoteBranch]); + } catch (e2) { + console.error(e2); + await this.git.push( + // A type error occurs here because the third element could be undefined. + // However, it is unlikely to be undefined due to the `remoteBranch`'s format, and error handling is in place. + // Therefore, we temporarily ignore the error. + // @ts-ignore + ["--set-upstream", ...splitRemoteBranch(remoteBranch)], + (err) => this.onError(err) + ); + } + } + } + updateGitPath(gitPath) { + this.setGitInstance(); + } + updateBasePath(basePath) { + this.setGitInstance(true); + } + async getDiffString(filePath, stagedChanges = false, hash2) { + if (stagedChanges) + return await this.git.diff(["--cached", "--", filePath]); + if (hash2) + return await this.git.show([`${hash2}`, "--", filePath]); + else + return await this.git.diff(["--", filePath]); + } + async diff(file, commit1, commit2) { + return await this.git.diff([`${commit1}..${commit2}`, "--", file]); + } + async getSubmoduleOfFile(repositoryRelativeFile) { + let submoduleRoot = await this.git.raw( + [ + "-C", + path.dirname(repositoryRelativeFile), + "rev-parse", + "--show-toplevel" + ], + (err) => err && console.warn("get-submodule-of-file", err == null ? void 0 : err.message) + ); + submoduleRoot = submoduleRoot.trim(); + const superProject = await this.git.raw( + [ + "-C", + path.dirname(repositoryRelativeFile), + "rev-parse", + "--show-superproject-working-tree" + ], + (err) => err && console.warn("get-submodule-of-file", err == null ? void 0 : err.message) + ); + if (superProject.trim() === "") { + return void 0; + } + const fsAdapter = this.app.vault.adapter; + const absolutePath = fsAdapter.getFullPath( + path.normalize(repositoryRelativeFile) + ); + const newRelativePath = path.relative(submoduleRoot, absolutePath); + return { submodule: submoduleRoot, relativeFilepath: newRelativePath }; + } + async getLastCommitTime() { + const res = await this.git.log({ n: 1 }, (err) => this.onError(err)); + if (res != null && res.latest != null) { + return new Date(res.latest.date); + } + } + isGitInstalled() { + const command = (0, import_child_process2.spawnSync)( + this.plugin.localStorage.getGitPath() || "git", + ["--version"], + { + stdio: "ignore" + } + ); + if (command.error) { + console.error(command.error); + return false; + } + return true; + } + onError(error) { + if (error) { + const networkFailure = error.message.contains("Could not resolve host") || error.message.match( + /ssh: connect to host .*? port .*?: Operation timed out/ + ) || error.message.match( + /ssh: connect to host .*? port .*?: Network is unreachable/ + ); + if (!networkFailure) { + this.plugin.displayError(error.message); + this.plugin.setState(0 /* idle */); + } else if (!this.plugin.offlineMode) { + this.plugin.displayError( + "Git: Going into offline mode. Future network errors will no longer be displayed.", + 2e3 + ); + } + if (networkFailure) { + this.plugin.offlineMode = true; + this.plugin.setState(0 /* idle */); + } + } + } +}; +var zeroCommit = { + hash: "000000", + isZeroCommit: true, + summary: "" +}; +function parseBlame(blameOutputUnnormalized) { + const blameOutput = blameOutputUnnormalized.replace("\r\n", "\n"); + const blameLines = blameOutput.split("\n"); + const result = { + commits: /* @__PURE__ */ new Map(), + hashPerLine: [void 0], + // one-based indices + originalFileLineNrPerLine: [void 0], + finalFileLineNrPerLine: [void 0], + groupSizePerStartingLine: /* @__PURE__ */ new Map() + }; + let line = 1; + for (let bi = 0; bi < blameLines.length; ) { + if (startsWithNonWhitespace(blameLines[bi])) { + const lineInfo = blameLines[bi].split(" "); + const commitHash = parseLineInfoInto(lineInfo, line, result); + bi++; + for (; startsWithNonWhitespace(blameLines[bi]); bi++) { + const spaceSeparatedHeaderValues = blameLines[bi].split(" "); + parseHeaderInto(spaceSeparatedHeaderValues, result, line); + } + finalizeBlameCommitInfo(result.commits.get(commitHash)); + line += 1; + } else if (blameLines[bi] === "" && bi === blameLines.length - 1) { + } else { + throw Error( + `Expected non-whitespace line or EOF, but found: ${blameLines[bi]}` + ); + } + bi++; + } + return result; +} +function parseLineInfoInto(lineInfo, line, result) { + const hash2 = lineInfo[0]; + result.hashPerLine.push(hash2); + result.originalFileLineNrPerLine.push(parseInt(lineInfo[1])); + result.finalFileLineNrPerLine.push(parseInt(lineInfo[2])); + lineInfo.length >= 4 && result.groupSizePerStartingLine.set(line, parseInt(lineInfo[3])); + if (parseInt(lineInfo[2]) !== line) { + throw Error( + `git-blame output is out of order: ${line} vs ${lineInfo[2]}` + ); + } + return hash2; +} +function parseHeaderInto(header, out, line) { + const key2 = header[0]; + const value = header.slice(1).join(" "); + const commitHash = out.hashPerLine[line]; + const commit2 = out.commits.get(commitHash) || { + hash: commitHash, + author: {}, + committer: {}, + previous: {} + }; + switch (key2) { + case "summary": + commit2.summary = value; + break; + case "author": + commit2.author.name = value; + break; + case "author-mail": + commit2.author.email = removeEmailBrackets(value); + break; + case "author-time": + commit2.author.epochSeconds = parseInt(value); + break; + case "author-tz": + commit2.author.tz = value; + break; + case "committer": + commit2.committer.name = value; + break; + case "committer-mail": + commit2.committer.email = removeEmailBrackets(value); + break; + case "committer-time": + commit2.committer.epochSeconds = parseInt(value); + break; + case "committer-tz": + commit2.committer.tz = value; + break; + case "previous": + commit2.previous.commitHash = value; + break; + case "filename": + commit2.previous.filename = value; + break; + } + out.commits.set(commitHash, commit2); +} +function finalizeBlameCommitInfo(commit2) { + if (commit2.summary === void 0) { + throw Error(`Summary not provided for commit: ${commit2.hash}`); + } + if (isUndefinedOrEmptyObject(commit2.author)) { + commit2.author = void 0; + } + if (isUndefinedOrEmptyObject(commit2.committer)) { + commit2.committer = void 0; + } + if (isUndefinedOrEmptyObject(commit2.previous)) { + commit2.previous = void 0; + } + commit2.isZeroCommit = Boolean(commit2.hash.match(/^0*$/)); +} +function isUndefinedOrEmptyObject(obj) { + return !obj || Object.keys(obj).length === 0; +} +function startsWithNonWhitespace(str) { + return str.length > 0 && str[0].trim() === str[0]; +} +function removeEmailBrackets(gitEmail) { + const prefixCleaned = gitEmail.startsWith("<") ? gitEmail.substring(1) : gitEmail; + return prefixCleaned.endsWith(">") ? prefixCleaned.substring(0, prefixCleaned.length - 1) : prefixCleaned; +} + +// src/lineAuthor/lineAuthorProvider.ts +init_polyfill_buffer(); +var import_state4 = require("@codemirror/state"); + +// src/lineAuthor/control.ts +init_polyfill_buffer(); +var import_state2 = require("@codemirror/state"); +var import_obsidian9 = require("obsidian"); + +// src/lineAuthor/eventsPerFilepath.ts +init_polyfill_buffer(); +var SECONDS = 1e3; +var REMOVE_STALES_FREQUENCY = 60 * SECONDS; +var EventsPerFilePath = class { + constructor() { + this.eventsPerFilepath = /* @__PURE__ */ new Map(); + this.startRemoveStalesSubscribersInterval(); + } + /** + * Run the {@link handler} on the subscribers to {@link filepath}. + */ + ifFilepathDefinedTransformSubscribers(filepath, handler) { + if (!filepath) + return; + this.ensureInitialized(filepath); + return handler(this.eventsPerFilepath.get(filepath)); + } + forEachSubscriber(handler) { + this.eventsPerFilepath.forEach((subs) => subs.forEach(handler)); + } + ensureInitialized(filepath) { + if (!this.eventsPerFilepath.get(filepath)) + this.eventsPerFilepath.set(filepath, /* @__PURE__ */ new Set()); + } + startRemoveStalesSubscribersInterval() { + this.removeStalesSubscribersTimer = window.setInterval( + () => this == null ? void 0 : this.forEachSubscriber((las) => las == null ? void 0 : las.removeIfStale()), + REMOVE_STALES_FREQUENCY + ); + } + clear() { + window.clearInterval(this.removeStalesSubscribersTimer); + this.eventsPerFilepath.clear(); + } +}; +var eventsPerFilePathSingleton = new EventsPerFilePath(); + +// src/lineAuthor/model.ts +init_polyfill_buffer(); +var import_state = require("@codemirror/state"); +var import_js_sha256 = __toESM(require_sha256()); + +// src/setting/settings.ts +init_polyfill_buffer(); +var import_obsidian8 = require("obsidian"); + +// src/gitManager/isomorphicGit.ts +init_polyfill_buffer(); + +// node_modules/.pnpm/diff@5.1.0/node_modules/diff/lib/index.mjs +init_polyfill_buffer(); +function Diff() { +} +Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self2 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self2.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self2.pushComponent(basePath.components, true, void 0); + } + _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last2 = components[components.length - 1]; + if (last2 && last2.added === added && last2.removed === removed) { + components[components.length - 1] = { + count: last2.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join3(chars) { + return chars.join(""); + } +}; +function buildValues(diff2, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff2.join(value); + } else { + component.value = diff2.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff2.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; +} +function clonePath(path2) { + return { + newPos: path2.newPos, + components: path2.components.slice(0) + }; +} +var characterDiff = new Diff(); +function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); +} +var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; +var reWhitespace = /\S/; +var wordDiff = new Diff(); +wordDiff.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); +}; +wordDiff.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; +}; +function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); +} +var lineDiff = new Diff(); +lineDiff.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; +}; +function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); +} +var sentenceDiff = new Diff(); +sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff = new Diff(); +cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) + arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +var objectPrototypeToString = Object.prototype.toString; +var jsonDiff = new Diff(); +jsonDiff.useLongestToken = true; +jsonDiff.tokenize = lineDiff.tokenize; +jsonDiff.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff.equals = function(left, right) { + return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); +}; +function canonicalize(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if ("[object Array]" === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff = new Diff(); +arrayDiff.tokenize = function(value) { + return value.slice(); +}; +arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; +}; +function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === "undefined") { + options.context = 4; + } + var diff2 = diffLines(oldStr, newStr, options); + if (!diff2) { + return; + } + diff2.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + var hunks = []; + var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + var _loop = function _loop2(i2) { + var current = diff2[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); + current.lines = lines; + if (current.added || current.removed) { + var _curRange; + if (!oldRangeStart) { + var prev = diff2[i2 - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { + return (current.added ? "+" : "-") + entry; + }))); + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + if (oldRangeStart) { + if (lines.length <= options.context * 2 && i2 < diff2.length - 2) { + var _curRange2; + (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + } else { + var _curRange3; + var contextSize = Math.min(lines.length, options.context); + (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i2 >= diff2.length - 2 && lines.length <= options.context) { + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { + curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); + } + if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { + curRange.push("\\ No newline at end of file"); + } + } + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + for (var i = 0; i < diff2.length; i++) { + _loop(i); + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; +} +function formatPatch(diff2) { + var ret = []; + if (diff2.oldFileName == diff2.newFileName) { + ret.push("Index: " + diff2.oldFileName); + } + ret.push("==================================================================="); + ret.push("--- " + diff2.oldFileName + (typeof diff2.oldHeader === "undefined" ? "" : " " + diff2.oldHeader)); + ret.push("+++ " + diff2.newFileName + (typeof diff2.newHeader === "undefined" ? "" : " " + diff2.newHeader)); + for (var i = 0; i < diff2.hunks.length; i++) { + var hunk = diff2.hunks[i]; + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); + ret.push.apply(ret, hunk.lines); + } + return ret.join("\n") + "\n"; +} +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); +} +function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); +} + +// src/gitManager/isomorphicGit.ts +var import_obsidian7 = require("obsidian"); + +// src/ui/modals/generalModal.ts +init_polyfill_buffer(); +var import_obsidian5 = require("obsidian"); +var generalModalConfigDefaults = { + options: [], + placeholder: "", + allowEmpty: false, + onlySelection: false, + initialValue: void 0 +}; +var GeneralModal = class extends import_obsidian5.SuggestModal { + constructor(config) { + super(app); + this.config = { ...generalModalConfigDefaults, ...config }; + this.setPlaceholder(this.config.placeholder); + } + open() { + super.open(); + if (this.config.initialValue != void 0) { + this.inputEl.value = this.config.initialValue; + this.inputEl.dispatchEvent(new Event("input")); + } + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + selectSuggestion(value, evt) { + if (this.resolve) { + let res; + if (this.config.allowEmpty && value === " ") + res = ""; + else if (value === "...") + res = void 0; + else + res = value; + this.resolve(res); + } + super.selectSuggestion(value, evt); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + getSuggestions(query) { + if (this.config.onlySelection) { + return this.config.options; + } else if (this.config.allowEmpty) { + return [query.length > 0 ? query : " ", ...this.config.options]; + } else { + return [query.length > 0 ? query : "...", ...this.config.options]; + } + } + renderSuggestion(value, el) { + el.setText(value); + } + onChooseSuggestion(item, evt) { + } +}; + +// src/gitManager/myAdapter.ts +init_polyfill_buffer(); +var import_obsidian6 = require("obsidian"); +var MyAdapter = class { + constructor(vault, plugin) { + this.plugin = plugin; + this.promises = {}; + this.adapter = vault.adapter; + this.vault = vault; + this.lastBasePath = this.plugin.settings.basePath; + this.promises.readFile = this.readFile.bind(this); + this.promises.writeFile = this.writeFile.bind(this); + this.promises.readdir = this.readdir.bind(this); + this.promises.mkdir = this.mkdir.bind(this); + this.promises.rmdir = this.rmdir.bind(this); + this.promises.stat = this.stat.bind(this); + this.promises.unlink = this.unlink.bind(this); + this.promises.lstat = this.lstat.bind(this); + this.promises.readlink = this.readlink.bind(this); + this.promises.symlink = this.symlink.bind(this); + } + async readFile(path2, opts) { + var _a2; + this.maybeLog("Read: " + path2 + JSON.stringify(opts)); + if (opts == "utf8" || opts.encoding == "utf8") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse"); + return this.vault.read(file); + } else { + return this.adapter.read(path2); + } + } else { + if (path2.endsWith(this.gitDir + "/index")) { + if (this.plugin.settings.basePath != this.lastBasePath) { + this.clearIndex(); + this.lastBasePath = this.plugin.settings.basePath; + return this.adapter.readBinary(path2); + } + return (_a2 = this.index) != null ? _a2 : this.adapter.readBinary(path2); + } + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse"); + return this.vault.readBinary(file); + } else { + return this.adapter.readBinary(path2); + } + } + } + async writeFile(path2, data) { + this.maybeLog("Write: " + path2); + if (typeof data === "string") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + return this.vault.modify(file, data); + } else { + return this.adapter.write(path2, data); + } + } else { + if (path2.endsWith(this.gitDir + "/index")) { + this.index = data; + this.indexmtime = Date.now(); + } else { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + return this.vault.modifyBinary(file, data); + } else { + return this.adapter.writeBinary(path2, data); + } + } + } + } + async readdir(path2) { + if (path2 === ".") + path2 = "/"; + const res = await this.adapter.list(path2); + const all = [...res.files, ...res.folders]; + let formattedAll; + if (path2 !== "/") { + formattedAll = all.map( + (e) => (0, import_obsidian6.normalizePath)(e.substring(path2.length)) + ); + } else { + formattedAll = all; + } + return formattedAll; + } + async mkdir(path2) { + return this.adapter.mkdir(path2); + } + async rmdir(path2, opts) { + var _a2, _b; + return this.adapter.rmdir(path2, (_b = (_a2 = opts == null ? void 0 : opts.options) == null ? void 0 : _a2.recursive) != null ? _b : false); + } + async stat(path2) { + if (path2.endsWith(this.gitDir + "/index")) { + if (this.index !== void 0 && this.indexctime != void 0 && this.indexmtime != void 0) { + return { + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false, + size: this.index.length, + type: "file", + ctimeMs: this.indexctime, + mtimeMs: this.indexmtime + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat == void 0) { + throw { code: "ENOENT" }; + } + this.indexctime = stat.ctime; + this.indexmtime = stat.mtime; + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } + } + if (path2 === ".") + path2 = "/"; + const file = this.vault.getAbstractFileByPath(path2); + this.maybeLog("Stat: " + path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse stat"); + return { + ctimeMs: file.stat.ctime, + mtimeMs: file.stat.mtime, + size: file.stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat) { + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: stat.type === "folder" ? "directory" : stat.type, + isFile: () => stat.type === "file", + isDirectory: () => stat.type === "folder", + isSymbolicLink: () => false + }; + } else { + throw { code: "ENOENT" }; + } + } + } + async unlink(path2) { + return this.adapter.remove(path2); + } + async lstat(path2) { + return this.stat(path2); + } + async readlink(path2) { + throw new Error(`readlink of (${path2}) is not implemented.`); + } + async symlink(path2) { + throw new Error(`symlink of (${path2}) is not implemented.`); + } + async saveAndClear() { + if (this.index !== void 0) { + await this.adapter.writeBinary( + this.plugin.gitManager.getVaultPath(this.gitDir + "/index"), + this.index, + { + ctime: this.indexctime, + mtime: this.indexmtime + } + ); + } + this.clearIndex(); + } + clearIndex() { + this.index = void 0; + this.indexctime = void 0; + this.indexmtime = void 0; + } + get gitDir() { + return this.plugin.settings.gitDir || ".git"; + } + maybeLog(text2) { + } +}; + +// src/gitManager/isomorphicGit.ts +var IsomorphicGit = class extends GitManager { + constructor(plugin) { + super(plugin); + this.FILE = 0; + this.HEAD = 1; + this.WORKDIR = 2; + this.STAGE = 3; + // Mapping from statusMatrix to git status codes based off git status --short + // See: https://isomorphic-git.org/docs/en/statusMatrix + this.status_mapping = { + "000": " ", + "003": "AD", + "020": "??", + "022": "A ", + "023": "AM", + "100": "D ", + "101": " D", + "103": "MD", + "110": "DA", + // Technically, two files: first one is deleted "D " and second one is untracked "??" + "111": " ", + "113": "MM", + "120": "DA", + // Same as "110" + "121": " M", + "122": "M ", + "123": "MM" + }; + this.noticeLength = 999999; + this.fs = new MyAdapter(this.app.vault, this.plugin); + } + getRepo() { + return { + fs: this.fs, + dir: this.plugin.settings.basePath, + gitdir: this.plugin.settings.gitDir || void 0, + onAuth: () => { + var _a2, _b; + return { + username: (_a2 = this.plugin.localStorage.getUsername()) != null ? _a2 : void 0, + password: (_b = this.plugin.localStorage.getPassword()) != null ? _b : void 0 + }; + }, + onAuthFailure: async () => { + new import_obsidian7.Notice( + "Authentication failed. Please try with different credentials" + ); + const username = await new GeneralModal({ + placeholder: "Specify your username" + }).open(); + if (username) { + const password = await new GeneralModal({ + placeholder: "Specify your password/personal access token" + }).open(); + if (password) { + this.plugin.localStorage.setUsername(username); + this.plugin.localStorage.setPassword(password); + return { + username, + password + }; + } + } + return { cancel: true }; + }, + http: { + async request({ + url, + method: method2, + headers, + body + }) { + if (body) { + body = await collect2(body); + body = body.buffer; + } + const res = await (0, import_obsidian7.requestUrl)({ + url, + method: method2, + headers, + body, + throw: false + }); + return { + url, + method: method2, + headers: res.headers, + body: [new Uint8Array(res.arrayBuffer)], + statusCode: res.status, + statusMessage: res.status.toString() + }; + } + } + }; + } + async wrapFS(call) { + try { + const res = await call; + await this.fs.saveAndClear(); + return res; + } catch (error) { + await this.fs.saveAndClear(); + throw error; + } + } + async status() { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian7.Notice( + "This takes longer: Getting status", + this.noticeLength + ); + }, 2e4); + try { + this.plugin.setState(1 /* status */); + const status2 = (await this.wrapFS(isomorphic_git_default.statusMatrix({ ...this.getRepo() }))).map((row) => this.getFileStatusResult(row)); + const changed = status2.filter( + (fileStatus) => fileStatus.working_dir !== " " + ); + const staged = status2.filter( + (fileStatus) => fileStatus.index !== " " && fileStatus.index !== "U" + ); + const conflicted = []; + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return { changed, staged, conflicted }; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async commitAll({ + message, + status: status2, + unstagedFiles + }) { + try { + await this.checkAuthorInfo(); + await this.stageAll({ status: status2, unstagedFiles }); + return this.commit(message); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async commit(message) { + try { + await this.checkAuthorInfo(); + this.plugin.setState(4 /* commit */); + const formatMessage = await this.formatCommitMessage(message); + const hadConflict = this.plugin.localStorage.getConflict() === "true"; + let parent = void 0; + if (hadConflict) { + const branchInfo = await this.branchInfo(); + parent = [branchInfo.current, branchInfo.tracking]; + } + await this.wrapFS( + isomorphic_git_default.commit({ + ...this.getRepo(), + message: formatMessage, + parent + }) + ); + this.plugin.localStorage.setConflict("false"); + return; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stage(filepath, relativeToVault) { + const gitPath = this.asRepositoryRelativePath( + filepath, + relativeToVault + ); + let vaultPath; + if (relativeToVault) { + vaultPath = filepath; + } else { + vaultPath = this.getVaultPath(filepath); + } + try { + this.plugin.setState(3 /* add */); + if (await this.app.vault.adapter.exists(vaultPath)) { + await this.wrapFS( + isomorphic_git_default.add({ ...this.getRepo(), filepath: gitPath }) + ); + } else { + await this.wrapFS( + isomorphic_git_default.remove({ ...this.getRepo(), filepath: gitPath }) + ); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stageAll({ + dir, + status: status2, + unstagedFiles + }) { + try { + if (status2) { + await Promise.all( + status2.changed.map( + (file) => file.working_dir !== "D" ? this.wrapFS( + isomorphic_git_default.add({ + ...this.getRepo(), + filepath: file.path + }) + ) : isomorphic_git_default.remove({ + ...this.getRepo(), + filepath: file.path + }) + ) + ); + } else { + const filesToStage = unstagedFiles != null ? unstagedFiles : await this.getUnstagedFiles(dir != null ? dir : "."); + await Promise.all( + filesToStage.map( + ({ filepath, deleted }) => deleted ? isomorphic_git_default.remove({ ...this.getRepo(), filepath }) : this.wrapFS( + isomorphic_git_default.add({ ...this.getRepo(), filepath }) + ) + ) + ); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstage(filepath, relativeToVault) { + try { + this.plugin.setState(3 /* add */); + filepath = this.asRepositoryRelativePath(filepath, relativeToVault); + await this.wrapFS( + isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstageAll({ + dir, + status: status2 + }) { + try { + let staged; + if (status2) { + staged = status2.staged.map((file) => file.path); + } else { + const res = await this.getStagedFiles(dir != null ? dir : "."); + staged = res.map(({ filepath }) => filepath); + } + await this.wrapFS( + Promise.all( + staged.map( + (file) => isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath: file }) + ) + ) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discard(filepath) { + try { + this.plugin.setState(3 /* add */); + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + filepaths: [filepath], + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discardAll({ + dir, + status: status2 + }) { + let files = []; + if (status2) { + if (dir != void 0) { + files = status2.changed.filter((file) => file.path.startsWith(dir)).map((file) => file.path); + } else { + files = status2.changed.map((file) => file.path); + } + } else { + files = (await this.getUnstagedFiles(dir)).map( + ({ filepath }) => filepath + ); + } + try { + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + filepaths: files, + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + getProgressText(action, event) { + let out = `${action} progress:`; + if (event.phase) { + out = `${out} ${event.phase}:`; + } + if (event.loaded) { + out = `${out} ${event.loaded}`; + if (event.total) { + out = `${out} of ${event.total}`; + } + } + return out; + } + resolveRef(ref) { + return this.wrapFS(isomorphic_git_default.resolveRef({ ...this.getRepo(), ref })); + } + async pull() { + const progressNotice = this.showNotice("Initializing pull"); + try { + this.plugin.setState(2 /* pull */); + const localCommit = await this.resolveRef("HEAD"); + await this.fetch(); + const branchInfo = await this.branchInfo(); + await this.checkAuthorInfo(); + const mergeRes = await this.wrapFS( + isomorphic_git_default.merge({ + ...this.getRepo(), + ours: branchInfo.current, + theirs: branchInfo.tracking, + abortOnConflict: false + }) + ); + if (!mergeRes.alreadyMerged) { + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branchInfo.current, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + } + }, + remote: branchInfo.remote + }) + ); + } + progressNotice == null ? void 0 : progressNotice.hide(); + const upstreamCommit = await this.resolveRef("HEAD"); + const changedFiles = await this.getFileChangesCount( + localCommit, + upstreamCommit + ); + this.showNotice("Finished pull", false); + return changedFiles.map((file) => ({ + path: file.path, + working_dir: "P", + index: "P", + vault_path: this.getVaultPath(file.path) + })); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + if (error instanceof Errors.MergeConflictError) { + this.plugin.handleConflict( + error.data.filepaths.map((file) => this.getVaultPath(file)) + ); + } + this.plugin.displayError(error); + throw error; + } + } + async push() { + if (!await this.canPush()) { + return 0; + } + const progressNotice = this.showNotice("Initializing push"); + try { + this.plugin.setState(1 /* status */); + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const numChangedFiles = (await this.getFileChangesCount(currentBranch2, trackingBranch)).length; + this.plugin.setState(5 /* push */); + await this.wrapFS( + isomorphic_git_default.push({ + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + } + } + }) + ); + progressNotice == null ? void 0 : progressNotice.hide(); + return numChangedFiles; + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async getUnpushedCommits() { + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (trackingBranch == null || currentBranch2 == null) { + return 0; + } + const localCommit = await this.resolveRef(currentBranch2); + const upstreamCommit = await this.resolveRef(trackingBranch); + const changedFiles = await this.getFileChangesCount( + localCommit, + upstreamCommit + ); + return changedFiles.length; + } + async canPush() { + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const current = await this.resolveRef(currentBranch2); + const tracking = await this.resolveRef(trackingBranch); + return current != tracking; + } + async checkRequirements() { + const headExists = await this.plugin.app.vault.adapter.exists( + `${this.getRepo().dir}/.git/HEAD` + ); + return headExists ? "valid" : "missing-repo"; + } + async branchInfo() { + var _a2, _b; + try { + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const branches = await isomorphic_git_default.listBranches(this.getRepo()); + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + const trackingBranch = (_b = await this.getConfig(`branch.${current}.merge`)) == null ? void 0 : _b.split("refs/heads")[1]; + const tracking = trackingBranch ? remote + trackingBranch : void 0; + return { + current, + tracking, + branches, + remote + }; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getCurrentRemote() { + var _a2; + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + return remote; + } + async checkout(branch2, remote) { + try { + return this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branch2, + force: !!remote, + remote + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async createBranch(branch2) { + try { + await this.wrapFS( + isomorphic_git_default.branch({ ...this.getRepo(), ref: branch2, checkout: true }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async deleteBranch(branch2) { + try { + await this.wrapFS( + isomorphic_git_default.deleteBranch({ ...this.getRepo(), ref: branch2 }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async branchIsMerged(branch2) { + return true; + } + async init() { + try { + await this.wrapFS(isomorphic_git_default.init(this.getRepo())); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async clone(url, dir, depth) { + const progressNotice = this.showNotice("Initializing clone"); + try { + await this.wrapFS( + isomorphic_git_default.clone({ + ...this.getRepo(), + dir, + url, + depth, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + } + } + }) + ); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async setConfig(path2, value) { + try { + return this.wrapFS( + isomorphic_git_default.setConfig({ + ...this.getRepo(), + path: path2, + value + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getConfig(path2) { + try { + return this.wrapFS( + isomorphic_git_default.getConfig({ + ...this.getRepo(), + path: path2 + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async fetch(remote) { + const progressNotice = this.showNotice("Initializing fetch"); + try { + const args = { + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + } + }, + remote: remote != null ? remote : await this.getCurrentRemote() + }; + await this.wrapFS(isomorphic_git_default.fetch(args)); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + this.plugin.displayError(error); + progressNotice == null ? void 0 : progressNotice.hide(); + throw error; + } + } + async setRemote(name, url) { + try { + await this.wrapFS( + isomorphic_git_default.addRemote({ + ...this.getRepo(), + remote: name, + url, + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getRemoteBranches(remote) { + let remoteBranches = []; + remoteBranches.push( + ...await this.wrapFS( + isomorphic_git_default.listBranches({ ...this.getRepo(), remote }) + ) + ); + remoteBranches.remove("HEAD"); + remoteBranches = remoteBranches.map((e) => `${remote}/${e}`); + return remoteBranches; + } + async getRemotes() { + return (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).map( + (remoteUrl) => remoteUrl.remote + ); + } + async removeRemote(remoteName) { + await this.wrapFS( + isomorphic_git_default.deleteRemote({ ...this.getRepo(), remote: remoteName }) + ); + } + async getRemoteUrl(remote) { + var _a2; + return (_a2 = (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).filter((item) => item.remote == remote)[0]) == null ? void 0 : _a2.url; + } + async log(_, __ = true, limit) { + const logs = await this.wrapFS( + isomorphic_git_default.log({ ...this.getRepo(), depth: limit }) + ); + return Promise.all( + logs.map(async (log2) => { + const completeMessage = log2.commit.message.split("\n\n"); + return { + message: completeMessage[0], + body: completeMessage.slice(1).join("\n\n"), + date: new Date( + log2.commit.committer.timestamp + ).toDateString(), + diff: { + changed: 0, + files: (await this.getFileChangesCount( + log2.commit.parent.first(), + log2.oid + )).map((item) => { + return { + path: item.path, + status: item.type, + vault_path: this.getVaultPath(item.path), + hash: log2.oid, + binary: void 0 + }; + }) + }, + hash: log2.oid, + refs: [] + }; + }) + ); + } + updateBasePath(basePath) { + this.getRepo().dir = basePath; + } + async updateUpstreamBranch(remoteBranch) { + const [remote, branch2] = splitRemoteBranch(remoteBranch); + const branchInfo = await this.branchInfo(); + await this.setConfig( + `branch.${branchInfo.current}.merge`, + `refs/heads/${branch2}` + ); + await this.setConfig(`branch.${branch2}.remote`, remote); + } + updateGitPath(gitPath) { + return; + } + async getFileChangesCount(commitHash1, commitHash2) { + return this.walkDifference({ + walkers: [ + isomorphic_git_default.TREE({ ref: commitHash1 }), + isomorphic_git_default.TREE({ ref: commitHash2 }) + ] + }); + } + async walkDifference({ + walkers, + dir: base + }) { + const res = await this.wrapFS( + isomorphic_git_default.walk({ + ...this.getRepo(), + trees: walkers, + map: async function(filepath, [A, B]) { + if (!worthWalking2(filepath, base)) { + return null; + } + if (await (A == null ? void 0 : A.type()) === "tree" || await (B == null ? void 0 : B.type()) === "tree") { + return; + } + const Aoid = await (A == null ? void 0 : A.oid()); + const Boid = await (B == null ? void 0 : B.oid()); + let type = "equal"; + if (Aoid !== Boid) { + type = "M"; + } + if (Aoid === void 0) { + type = "A"; + } + if (Boid === void 0) { + type = "D"; + } + if (Aoid === void 0 && Boid === void 0) { + console.log("Something weird happened:"); + console.log(A); + console.log(B); + } + if (type === "equal") { + return; + } + return { + path: filepath, + type + }; + } + }) + ); + return res; + } + async getStagedFiles(dir = ".") { + const res = await this.walkDifference({ + walkers: [isomorphic_git_default.TREE({ ref: "HEAD" }), isomorphic_git_default.STAGE()], + dir + }); + return res.map((file) => { + return { + vault_path: this.getVaultPath(file.path), + filepath: file.path + }; + }); + } + async getUnstagedFiles(base = ".") { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian7.Notice( + "This takes longer: Getting status", + this.noticeLength + ); + }, 2e4); + try { + const repo = this.getRepo(); + const res = await this.wrapFS( + //Modified from `git.statusMatrix` + isomorphic_git_default.walk({ + ...repo, + trees: [isomorphic_git_default.WORKDIR(), isomorphic_git_default.STAGE()], + map: async function(filepath, [workdir, stage]) { + if (!stage && workdir) { + const isIgnored2 = await isomorphic_git_default.isIgnored({ + ...repo, + filepath + }); + if (isIgnored2) { + return null; + } + } + if (!worthWalking2(filepath, base)) { + return null; + } + const [workdirType, stageType] = await Promise.all([ + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [workdirType, stageType].includes( + "blob" + ); + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") + return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + if (!workdirOid) { + return { + filepath, + deleted: true + }; + } + if (workdirOid !== stageOid) { + return { + filepath, + deleted: false + }; + } + return null; + } + }) + ); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return res; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async getDiffString(filePath, stagedChanges = false, hash2) { + const vaultPath = this.getVaultPath(filePath); + const map = async (file, [A]) => { + if (filePath == file) { + const oid = await A.oid(); + const contents = await isomorphic_git_default.readBlob({ + ...this.getRepo(), + oid + }); + return contents.blob; + } + }; + if (hash2) { + const commitContent = await readBlob({ + ...this.getRepo(), + filepath: filePath, + oid: hash2 + }).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const commit2 = await isomorphic_git_default.readCommit({ + ...this.getRepo(), + oid: hash2 + }); + const previousContent = await readBlob({ + ...this.getRepo(), + filepath: filePath, + oid: commit2.commit.parent.first() + }).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const diff2 = createPatch( + vaultPath, + previousContent != null ? previousContent : "", + commitContent != null ? commitContent : "" + ); + return diff2; + } + const stagedBlob = (await isomorphic_git_default.walk({ + ...this.getRepo(), + trees: [isomorphic_git_default.STAGE()], + map + })).first(); + const stagedContent = new TextDecoder().decode(stagedBlob); + if (stagedChanges) { + const headContent = await this.resolveRef("HEAD").then( + (oid) => readBlob({ + ...this.getRepo(), + filepath: filePath, + oid + }) + ).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const diff2 = createPatch( + vaultPath, + headContent != null ? headContent : "", + stagedContent + ); + return diff2; + } else { + let workdirContent; + if (await app.vault.adapter.exists(vaultPath)) { + workdirContent = await app.vault.adapter.read(vaultPath); + } else { + workdirContent = ""; + } + const diff2 = createPatch(vaultPath, stagedContent, workdirContent); + return diff2; + } + } + async getLastCommitTime() { + const repo = this.getRepo(); + const oid = await this.resolveRef("HEAD"); + const commit2 = await isomorphic_git_default.readCommit({ ...repo, oid }); + const date = commit2.commit.committer.timestamp; + return new Date(date * 1e3); + } + getFileStatusResult(row) { + const status2 = this.status_mapping[`${row[this.HEAD]}${row[this.WORKDIR]}${row[this.STAGE]}`]; + return { + index: status2[0] == "?" ? "U" : status2[0], + working_dir: status2[1] == "?" ? "U" : status2[1], + path: row[this.FILE], + vault_path: this.getVaultPath(row[this.FILE]) + }; + } + async checkAuthorInfo() { + const name = await this.getConfig("user.name"); + const email = await this.getConfig("user.email"); + if (!name || !email) { + throw "Git author information is not set. Please set it in the settings."; + } + } + showNotice(message, infinity = true) { + if (!this.plugin.settings.disablePopups) { + return new import_obsidian7.Notice( + message, + infinity ? this.noticeLength : void 0 + ); + } + } +}; +function fromValue2(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ + done: queue.length === 0, + value: queue.pop() + }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator2(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue2(iterable); +} +async function forAwait2(iterable, cb) { + const iter = getIterator2(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) + await cb(value); + if (done) + break; + } + if (iter.return) + iter.return(); +} +async function collect2(iterable) { + let size = 0; + const buffers = []; + await forAwait2(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} + +// src/setting/settings.ts +var FORMAT_STRING_REFERENCE_URL = "https://momentjs.com/docs/#/parsing/string-format/"; +var LINE_AUTHOR_FEATURE_WIKI_LINK = "https://publish.obsidian.md/git-doc/Line+Authoring"; +var ObsidianGitSettingsTab = class extends import_obsidian8.PluginSettingTab { + constructor() { + super(...arguments); + this.lineAuthorColorSettings = /* @__PURE__ */ new Map(); + } + // narrow type from PluginSettingTab.plugin + get settings() { + return this.plugin.settings; + } + display() { + const { containerEl } = this; + const plugin = this.plugin; + const commitOrBackup = plugin.settings.differentIntervalCommitAndPush ? "commit" : "backup"; + const gitReady = plugin.gitReady; + containerEl.empty(); + containerEl.createEl("h2", { text: "Git Backup settings" }); + if (!gitReady) { + containerEl.createEl("p", { + text: "Git is not ready. When all settings are correct you can configure auto backup, etc." + }); + } + if (gitReady) { + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Automatic" }); + new import_obsidian8.Setting(containerEl).setName("Split automatic commit and push").setDesc("Enable to use separate timer for commit and push").addToggle( + (toggle) => toggle.setValue( + plugin.settings.differentIntervalCommitAndPush + ).onChange((value) => { + plugin.settings.differentIntervalCommitAndPush = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + plugin.clearAutoPush(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + } + if (value && plugin.settings.autoPushInterval > 0) { + plugin.startAutoPush( + plugin.settings.autoPushInterval + ); + } + this.display(); + }) + ); + new import_obsidian8.Setting(containerEl).setName(`Vault ${commitOrBackup} interval (minutes)`).setDesc( + `${plugin.settings.differentIntervalCommitAndPush ? "Commit" : "Commit and push"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)` + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoSaveInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.clearAutoBackup(); + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + new import_obsidian8.Notice( + `Automatic ${commitOrBackup} enabled! Every ${plugin.settings.autoSaveInterval} minutes.` + ); + } else if (plugin.settings.autoSaveInterval <= 0) { + plugin.clearAutoBackup() && new import_obsidian8.Notice( + `Automatic ${commitOrBackup} disabled!` + ); + } + } else { + new import_obsidian8.Notice("Please specify a valid number."); + } + }) + ); + if (!plugin.settings.setLastSaveToLastCommit) + new import_obsidian8.Setting(containerEl).setName(`Auto Backup after file change`).setDesc( + `If turned on, do auto ${commitOrBackup} every ${plugin.settings.autoSaveInterval} minutes after last change. This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from the last change.` + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + plugin.settings.autoBackupAfterFileChange = value; + this.display(); + plugin.saveSettings(); + plugin.clearAutoBackup(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + } + }) + ); + if (!plugin.settings.autoBackupAfterFileChange) + new import_obsidian8.Setting(containerEl).setName(`Auto ${commitOrBackup} after latest commit`).setDesc( + `If turned on, set last auto ${commitOrBackup} time to latest commit` + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.setLastSaveToLastCommit).onChange(async (value) => { + plugin.settings.setLastSaveToLastCommit = value; + plugin.saveSettings(); + this.display(); + plugin.clearAutoBackup(); + await plugin.setUpAutoBackup(); + }) + ); + if (plugin.settings.differentIntervalCommitAndPush) { + new import_obsidian8.Setting(containerEl).setName(`Vault push interval (minutes)`).setDesc( + "Push changes every X minutes. Set to 0 (default) to disable." + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoPushInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPushInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPushInterval > 0) { + plugin.clearAutoPush(); + plugin.startAutoPush( + plugin.settings.autoPushInterval + ); + new import_obsidian8.Notice( + `Automatic push enabled! Every ${plugin.settings.autoPushInterval} minutes.` + ); + } else if (plugin.settings.autoPushInterval <= 0) { + plugin.clearAutoPush() && new import_obsidian8.Notice( + "Automatic push disabled!" + ); + } + } else { + new import_obsidian8.Notice( + "Please specify a valid number." + ); + } + }) + ); + } + new import_obsidian8.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc( + "Pull changes every X minutes. Set to 0 (default) to disable." + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPullInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPullInterval > 0) { + plugin.clearAutoPull(); + plugin.startAutoPull( + plugin.settings.autoPullInterval + ); + new import_obsidian8.Notice( + `Automatic pull enabled! Every ${plugin.settings.autoPullInterval} minutes.` + ); + } else if (plugin.settings.autoPullInterval <= 0) { + plugin.clearAutoPull() && new import_obsidian8.Notice("Automatic pull disabled!"); + } + } else { + new import_obsidian8.Notice("Please specify a valid number."); + } + }) + ); + new import_obsidian8.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle( + (toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { + plugin.settings.customMessageOnAutoBackup = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Commit message on auto backup/commit").setDesc( + "Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message)" + ).addTextArea( + (text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { + plugin.settings.autoCommitMessage = value; + plugin.saveSettings(); + }) + ); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Commit message" }); + new import_obsidian8.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc( + "Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message)" + ).addTextArea( + (text2) => text2.setPlaceholder("vault backup: {{date}}").setValue( + plugin.settings.commitMessage ? plugin.settings.commitMessage : "" + ).onChange((value) => { + plugin.settings.commitMessage = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("{{date}} placeholder format").setDesc( + `Specify custom date format. E.g. "${DATE_TIME_FORMAT_SECONDS}"` + ).addText( + (text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange(async (value) => { + plugin.settings.commitDateFormat = value; + await plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText( + (text2) => { + var _a2; + return text2.setValue((_a2 = plugin.localStorage.getHostname()) != null ? _a2 : "").onChange(async (value) => { + plugin.localStorage.setHostname(value); + }); + } + ); + new import_obsidian8.Setting(containerEl).setName("Preview commit message").addButton( + (button) => button.setButtonText("Preview").onClick(async () => { + const commitMessagePreview = await plugin.gitManager.formatCommitMessage( + plugin.settings.commitMessage + ); + new import_obsidian8.Notice(`${commitMessagePreview}`); + }) + ); + new import_obsidian8.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle( + (toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { + plugin.settings.listChangedFilesInMessageBody = value; + plugin.saveSettings(); + }) + ); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Backup" }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Sync Method").setDesc( + "Selects the method used for handling new changes found in your remote git repository." + ).addDropdown((dropdown) => { + const options = { + merge: "Merge", + rebase: "Rebase", + reset: "Other sync service (Only updates the HEAD without touching the working directory)" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.syncMethod); + dropdown.onChange(async (option) => { + plugin.settings.syncMethod = option; + plugin.saveSettings(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle( + (toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { + plugin.settings.autoPullOnBoot = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Push on backup").setDesc("Disable to only commit changes").addToggle( + (toggle) => toggle.setValue(!plugin.settings.disablePush).onChange((value) => { + plugin.settings.disablePush = !value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle( + (toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { + plugin.settings.pullBeforePush = value; + plugin.saveSettings(); + }) + ); + if (plugin.gitManager instanceof SimpleGit) { + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Line author information" }); + this.addLineAuthorInfoSettings(); + } + } + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Miscellaneous" }); + new import_obsidian8.Setting(containerEl).setName( + "Automatically refresh Source Control View on file changes" + ).setDesc( + "On slower machines this may cause lags. If so, just disable this option" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { + plugin.settings.refreshSourceControl = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Source Control View refresh interval").setDesc( + "Milliseconds to wait after file change before refreshing the Source Control View" + ).addText( + (toggle) => toggle.setValue( + plugin.settings.refreshSourceControlTimer.toString() + ).setPlaceholder("7000").onChange((value) => { + plugin.settings.refreshSourceControlTimer = Math.max( + parseInt(value), + 500 + ); + plugin.saveSettings(); + plugin.setRefreshDebouncer(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Disable notifications").setDesc( + "Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { + plugin.settings.disablePopups = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show status bar").setDesc( + "Obsidian must be restarted for the changes to take affect" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { + plugin.settings.showStatusBar = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show stage/unstage button in file menu").addToggle( + (toggle) => toggle.setValue(plugin.settings.showFileMenu).onChange((value) => { + plugin.settings.showFileMenu = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show branch status bar").setDesc( + "Obsidian must be restarted for the changes to take affect" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.showBranchStatusBar).onChange((value) => { + plugin.settings.showBranchStatusBar = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show changes files count in status bar").addToggle( + (toggle) => toggle.setValue(plugin.settings.changedFilesInStatusBar).onChange((value) => { + plugin.settings.changedFilesInStatusBar = value; + plugin.saveSettings(); + }) + ); + containerEl.createEl("br"); + if (plugin.gitManager instanceof IsomorphicGit) { + containerEl.createEl("h3", { + text: "Authentication/Commit Author" + }); + } else { + containerEl.createEl("h3", { text: "Commit Author" }); + } + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian8.Setting(containerEl).setName( + "Username on your git server. E.g. your username on GitHub" + ).addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getUsername()) != null ? _a2 : ""); + cb.onChange((value) => { + plugin.localStorage.setUsername(value); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian8.Setting(containerEl).setName("Password/Personal access token").setDesc( + "Type in your password. You won't be able to see it again." + ).addText((cb) => { + cb.inputEl.autocapitalize = "off"; + cb.inputEl.autocomplete = "off"; + cb.inputEl.spellcheck = false; + cb.onChange((value) => { + plugin.localStorage.setPassword(value); + }); + }); + if (plugin.gitReady) + new import_obsidian8.Setting(containerEl).setName("Author name for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.name")); + cb.onChange((value) => { + plugin.gitManager.setConfig( + "user.name", + value == "" ? void 0 : value + ); + }); + }); + if (plugin.gitReady) + new import_obsidian8.Setting(containerEl).setName("Author email for commit").addText(async (cb) => { + cb.setValue( + await plugin.gitManager.getConfig("user.email") + ); + cb.onChange((value) => { + plugin.gitManager.setConfig( + "user.email", + value == "" ? void 0 : value + ); + }); + }); + containerEl.createEl("br"); + containerEl.createEl("h3", { text: "Advanced" }); + if (plugin.gitManager instanceof SimpleGit) { + new import_obsidian8.Setting(containerEl).setName("Update submodules").setDesc( + '"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule' + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { + plugin.settings.updateSubmodules = value; + plugin.saveSettings(); + }) + ); + if (plugin.settings.updateSubmodules) { + new import_obsidian8.Setting(containerEl).setName("Submodule recurse checkout/switch").setDesc( + "Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist)." + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.submoduleRecurseCheckout).onChange((value) => { + plugin.settings.submoduleRecurseCheckout = value; + plugin.saveSettings(); + }) + ); + } + } + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getGitPath()) != null ? _a2 : ""); + cb.setPlaceholder("git"); + cb.onChange((value) => { + plugin.localStorage.setGitPath(value); + plugin.gitManager.updateGitPath(value || "git"); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Additional environment variables").setDesc( + "Use each line for a new environment variable in the format KEY=VALUE" + ).addTextArea((cb) => { + cb.setPlaceholder("GIT_DIR=/path/to/git/dir"); + cb.setValue(plugin.localStorage.getEnvVars().join("\n")); + cb.onChange((value) => { + plugin.localStorage.setEnvVars(value.split("\n")); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea((cb) => { + cb.setValue(plugin.localStorage.getPATHPaths().join("\n")); + cb.onChange((value) => { + plugin.localStorage.setPATHPaths(value.split("\n")); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Reload with new environment variables").setDesc( + "Removing previously added environment variables will not take effect until Obsidian is restarted." + ).addButton((cb) => { + cb.setButtonText("Reload"); + cb.setCta(); + cb.onClick(() => { + plugin.gitManager.setGitInstance(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc( + ` + Sets the relative path to the vault from which the Git binary should be executed. + Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. + ` + ).addText((cb) => { + cb.setValue(plugin.settings.basePath); + cb.setPlaceholder("directory/directory-with-git-repo"); + cb.onChange((value) => { + plugin.settings.basePath = value; + plugin.saveSettings(); + plugin.gitManager.updateBasePath(value || ""); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Custom Git directory path (Instead of '.git')").setDesc( + `Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.` + ).addText((cb) => { + cb.setValue(plugin.settings.gitDir); + cb.setPlaceholder(".git"); + cb.onChange((value) => { + plugin.settings.gitDir = value; + plugin.saveSettings(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Disable on this device").addToggle( + (toggle) => toggle.setValue(plugin.localStorage.getPluginDisabled()).onChange((value) => { + plugin.localStorage.setPluginDisabled(value); + if (value) { + plugin.unloadPlugin(); + } else { + plugin.loadPlugin(); + } + new import_obsidian8.Notice( + "Obsidian must be restarted for the changes to take affect" + ); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Donate").setDesc( + "If you like this Plugin, consider donating to support continued development." + ).addButton((bt) => { + bt.buttonEl.outerHTML = "Buy Me a Coffee at ko-fi.com"; + }); + const info = containerEl.createDiv(); + info.setAttr("align", "center"); + info.setText( + "Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with" + ); + const keys = containerEl.createDiv(); + keys.setAttr("align", "center"); + keys.addClass("obsidian-git-shortcuts"); + if (import_obsidian8.Platform.isMacOS === true) { + keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } else { + keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + } + } + configureLineAuthorShowStatus(show) { + this.settings.lineAuthor.show = show; + this.plugin.saveSettings(); + if (show) + this.plugin.lineAuthoringFeature.activateFeature(); + else + this.plugin.lineAuthoringFeature.deactivateFeature(); + } + /** + * Persists the setting {@link key} with value {@link value} and + * refreshes the line author info views. + */ + lineAuthorSettingHandler(key2, value) { + this.settings.lineAuthor[key2] = value; + this.plugin.saveSettings(); + this.plugin.lineAuthoringFeature.refreshLineAuthorViews(); + } + /** + * Ensure, that certain last shown values are persisten in the settings. + * + * Necessary for the line author info gutter context menus. + */ + beforeSaveSettings() { + const laSettings = this.settings.lineAuthor; + if (laSettings.authorDisplay !== "hide") { + laSettings.lastShownAuthorDisplay = laSettings.authorDisplay; + } + if (laSettings.dateTimeFormatOptions !== "hide") { + laSettings.lastShownDateTimeFormatOptions = laSettings.dateTimeFormatOptions; + } + } + addLineAuthorInfoSettings() { + const baseLineAuthorInfoSetting = new import_obsidian8.Setting(this.containerEl).setName( + "Show commit authoring information next to each line" + ); + if (!this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()) { + baseLineAuthorInfoSetting.setDesc("Only available on desktop currently.").setDisabled(true); + } + baseLineAuthorInfoSetting.descEl.innerHTML = ` + Feature guide and quick examples
+ The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`; + baseLineAuthorInfoSetting.addToggle( + (toggle) => toggle.setValue(this.settings.lineAuthor.show).onChange((value) => { + this.configureLineAuthorShowStatus(value); + this.display(); + }) + ); + if (this.settings.lineAuthor.show) { + const trackMovement = new import_obsidian8.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown((dropdown) => { + dropdown.addOptions({ + inactive: "Do not follow (default)", + "same-commit": "Follow within same commit", + "all-commits": "Follow within all commits (maybe slow)" + }); + dropdown.setValue(this.settings.lineAuthor.followMovement); + dropdown.onChange( + (value) => this.lineAuthorSettingHandler("followMovement", value) + ); + }); + trackMovement.descEl.innerHTML = ` + By default (deactivated), each line only shows the newest commit where it was changed. +
+ With same commit, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown. +
+ With all commits, cut-copy-paste-ing text inbetween multiple commits will be detected. +
+ It uses git-blame and + for matches (at least ${GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH} characters) within the same (or all) commit(s), the originating commit's information is shown.`; + new import_obsidian8.Setting(this.containerEl).setName("Show commit hash").addToggle((tgl) => { + tgl.setValue(this.settings.lineAuthor.showCommitHash); + tgl.onChange( + async (value) => this.lineAuthorSettingHandler("showCommitHash", value) + ); + }); + new import_obsidian8.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown((dropdown) => { + const options = { + hide: "Hide", + initials: "Initials (default)", + "first name": "First name", + "last name": "Last name", + full: "Full name" + }; + dropdown.addOptions(options); + dropdown.setValue(this.settings.lineAuthor.authorDisplay); + dropdown.onChange( + async (value) => this.lineAuthorSettingHandler("authorDisplay", value) + ); + }); + new import_obsidian8.Setting(this.containerEl).setName("Authoring date display").setDesc( + "If and how the date and time of authoring the line is displayed" + ).addDropdown((dropdown) => { + const options = { + hide: "Hide", + date: "Date (default)", + datetime: "Date and time", + "natural language": "Natural language", + custom: "Custom" + }; + dropdown.addOptions(options); + dropdown.setValue( + this.settings.lineAuthor.dateTimeFormatOptions + ); + dropdown.onChange( + async (value) => { + this.lineAuthorSettingHandler( + "dateTimeFormatOptions", + value + ); + this.display(); + } + ); + }); + if (this.settings.lineAuthor.dateTimeFormatOptions === "custom") { + const dateTimeFormatCustomStringSetting = new import_obsidian8.Setting( + this.containerEl + ); + dateTimeFormatCustomStringSetting.setName("Custom authoring date format").addText((cb) => { + cb.setValue( + this.settings.lineAuthor.dateTimeFormatCustomString + ); + cb.setPlaceholder("YYYY-MM-DD HH:mm"); + cb.onChange((value) => { + this.lineAuthorSettingHandler( + "dateTimeFormatCustomString", + value + ); + dateTimeFormatCustomStringSetting.descEl.innerHTML = this.previewCustomDateTimeDescriptionHtml( + value + ); + }); + }); + dateTimeFormatCustomStringSetting.descEl.innerHTML = this.previewCustomDateTimeDescriptionHtml( + this.settings.lineAuthor.dateTimeFormatCustomString + ); + } + new import_obsidian8.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown((dropdown) => { + const options = { + "viewer-local": "My local (default)", + "author-local": "Author's local", + utc0000: "UTC+0000/Z" + }; + dropdown.addOptions(options); + dropdown.setValue( + this.settings.lineAuthor.dateTimeTimezone + ); + dropdown.onChange( + async (value) => this.lineAuthorSettingHandler("dateTimeTimezone", value) + ); + }).descEl.innerHTML = ` + The time-zone in which the authoring date should be shown. + Either your local time-zone (default), + the author's time-zone during commit creation or + UTC\xB100:00. + `; + const oldestAgeSetting = new import_obsidian8.Setting(this.containerEl).setName( + "Oldest age in coloring" + ); + oldestAgeSetting.descEl.innerHTML = this.previewOldestAgeDescriptionHtml( + this.settings.lineAuthor.coloringMaxAge + )[0]; + oldestAgeSetting.addText((text2) => { + text2.setPlaceholder("1y"); + text2.setValue(this.settings.lineAuthor.coloringMaxAge); + text2.onChange((value) => { + const [preview, valid] = this.previewOldestAgeDescriptionHtml(value); + oldestAgeSetting.descEl.innerHTML = preview; + if (valid) { + this.lineAuthorSettingHandler("coloringMaxAge", value); + this.refreshColorSettingsName("oldest"); + } + }); + }); + this.createColorSetting("newest"); + this.createColorSetting("oldest"); + new import_obsidian8.Setting(this.containerEl).setName("Text color").addText((field) => { + field.setValue(this.settings.lineAuthor.textColorCss); + field.onChange((value) => { + this.lineAuthorSettingHandler("textColorCss", value); + }); + }).descEl.innerHTML = ` + The CSS color of the gutter text.
+ + It is higly recommended to use + + CSS variables + defined by themes + (e.g.
var(--text-muted)
or +
var(--text-on-accent)
, + because they automatically adapt to theme changes.
+ + See: + List of available CSS variables in Obsidian + + `; + new import_obsidian8.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle((tgl) => { + tgl.setValue(this.settings.lineAuthor.ignoreWhitespace); + tgl.onChange( + (value) => this.lineAuthorSettingHandler("ignoreWhitespace", value) + ); + }).descEl.innerHTML = ` + Whitespace and newlines are interpreted as + part of the document and in changes + by default (hence not ignored). + This makes the last line being shown as 'changed' + when a new subsequent line is added, + even if the previously last line's text is the same. +
+ If you don't care about purely-whitespace changes + (e.g. list nesting / quote indentation changes), + then activating this will provide more meaningful change detection. + `; + } + } + createColorSetting(which) { + const setting = new import_obsidian8.Setting(this.containerEl).setName("").addText((text2) => { + const color = pickColor(which, this.settings.lineAuthor); + const defaultColor = pickColor( + which, + DEFAULT_SETTINGS.lineAuthor + ); + text2.setPlaceholder(rgbToString(defaultColor)); + text2.setValue(rgbToString(color)); + text2.onChange((colorNew) => { + const rgb = convertToRgb(colorNew); + if (rgb !== void 0) { + const key2 = which === "newest" ? "colorNew" : "colorOld"; + this.lineAuthorSettingHandler(key2, rgb); + } + this.refreshColorSettingsDesc(which, rgb); + }); + }); + this.lineAuthorColorSettings.set(which, setting); + this.refreshColorSettingsName(which); + this.refreshColorSettingsDesc( + which, + pickColor(which, this.settings.lineAuthor) + ); + } + refreshColorSettingsName(which) { + const settingsDom = this.lineAuthorColorSettings.get(which); + if (settingsDom) { + const whichDescriber = which === "oldest" ? `oldest (${this.settings.lineAuthor.coloringMaxAge} or older)` : "newest"; + settingsDom.nameEl.innerText = `Color for ${whichDescriber} commits`; + } + } + refreshColorSettingsDesc(which, rgb) { + const settingsDom = this.lineAuthorColorSettings.get(which); + if (settingsDom) { + settingsDom.descEl.innerHTML = this.colorSettingPreviewDescHtml( + which, + this.settings.lineAuthor, + rgb !== void 0 + ); + } + } + colorSettingPreviewDescHtml(which, laSettings, colorIsValid) { + const rgbStr = colorIsValid ? previewColor(which, laSettings) : `rgba(127,127,127,0.3)`; + const today = import_obsidian8.moment.unix(import_obsidian8.moment.now() / 1e3).format("YYYY-MM-DD"); + const text2 = colorIsValid ? `abcdef Author Name ${today}` : "invalid color"; + const preview = `
${text2}
`; + return `Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and + named colors (e.g. 'black', 'purple'). Color preview: ${preview}`; + } + previewCustomDateTimeDescriptionHtml(dateTimeFormatCustomString) { + const formattedDateTime = (0, import_obsidian8.moment)().format(dateTimeFormatCustomString); + return `
Format string to display the authoring date.
Currently: ${formattedDateTime}`; + } + previewOldestAgeDescriptionHtml(coloringMaxAge) { + const duration = parseColoringMaxAgeDuration(coloringMaxAge); + const durationString = duration !== void 0 ? `${duration.asDays()} days` : "invalid!"; + return [ + `The oldest age in the line author coloring. Everything older will have the same color. +
Smallest valid age is "1d". Currently: ${durationString}`, + duration + ]; + } +}; +function pickColor(which, las) { + return which === "oldest" ? las.colorOld : las.colorNew; +} +function parseColoringMaxAgeDuration(durationString) { + const duration = import_obsidian8.moment.duration("P" + durationString.toUpperCase()); + return duration.isValid() && duration.asDays() && duration.asDays() >= 1 ? duration : void 0; +} + +// src/lineAuthor/model.ts +function lineAuthoringId(head, objHash, path2) { + if (head === void 0 || objHash === void 0 || path2 === void 0) { + return void 0; + } + return `head${head}-obj${objHash}-path${path2}`; +} +var LineAuthoringContainerType = import_state.Annotation.define(); +function newComputationResultAsTransaction(key2, la, state) { + return state.update({ + annotations: LineAuthoringContainerType.of({ + key: key2, + la, + lineOffsetsFromUnsavedChanges: /* @__PURE__ */ new Map() + }) + }); +} +function getLineAuthorAnnotation(tr) { + return tr.annotation(LineAuthoringContainerType); +} +var lineAuthorState = import_state.StateField.define({ + create: (_state) => void 0, + /** + * The state can be updated from either an annotated transaction containing + * the newest line authoring (for the saved document) - or from + * unsaved changes of the document as the user is actively typing in the editor. + * + * In the first case, we take the new line authoring and discard anything we had remembered + * from unsaved changes. In the second case, we use the unsaved changes in {@link enrichUnsavedChanges} to pre-compute information to immediately update the + * line author gutter without needing to wait until the document is saved and the + * line authoring is properly computed. + */ + update: (previous, transaction) => { + var _a2; + return (_a2 = getLineAuthorAnnotation(transaction)) != null ? _a2 : enrichUnsavedChanges(transaction, previous); + }, + // compare cache keys. + // equality rate is >= 95% :) + // hence avoids recomputation of views + compare: (l, r) => (l == null ? void 0 : l.key) === (r == null ? void 0 : r.key) +}); +function laStateDigest(laState) { + var _a2; + const digest = import_js_sha256.sha256.create(); + if (!laState) + return digest; + const { la, key: key2, lineOffsetsFromUnsavedChanges } = laState; + digest.update(la === "untracked" ? "t" : "f"); + digest.update(key2); + for (const [k, v] of (_a2 = lineOffsetsFromUnsavedChanges.entries()) != null ? _a2 : []) + digest.update([k, v]); + return digest; +} +var latestSettings = { + get: void 0, + save: void 0 +}; +function provideSettingsAccess(settingsGetter, settingsSetter) { + latestSettings.get = settingsGetter; + latestSettings.save = settingsSetter; +} +function maxAgeInDaysFromSettings(settings) { + var _a2, _b; + return (_b = (_a2 = parseColoringMaxAgeDuration(settings.coloringMaxAge)) == null ? void 0 : _a2.asDays()) != null ? _b : parseColoringMaxAgeDuration( + DEFAULT_SETTINGS.lineAuthor.coloringMaxAge + ).asDays(); +} +function enrichUnsavedChanges(tr, prev) { + if (!prev) + return void 0; + if (!tr.changes.empty) { + tr.changes.iterChanges((fromA, toA, fromB, toB) => { + var _a2; + const oldDoc = tr.startState.doc; + const { newDoc } = tr; + const beforeFrom = oldDoc.lineAt(fromA).number; + const beforeTo = oldDoc.lineAt(toA).number; + const afterFrom = newDoc.lineAt(fromB).number; + const afterTo = newDoc.lineAt(toB).number; + const beforeLen = beforeTo - beforeFrom + 1; + const afterLen = afterTo - afterFrom + 1; + for (let afterI = afterFrom; afterI <= afterTo; afterI++) { + let offset = (_a2 = prev.lineOffsetsFromUnsavedChanges.get(afterI)) != null ? _a2 : 0; + const isLastLine = afterTo === afterI; + const changeInNumberOfLines = afterLen - beforeLen; + if (isLastLine) + offset += changeInNumberOfLines; + prev.lineOffsetsFromUnsavedChanges.set(afterI, offset); + } + }); + } + return prev; +} + +// src/lineAuthor/control.ts +var LineAuthoringSubscriber = class { + // remember path to detect and adapt to renames + constructor(state) { + this.state = state; + this.subscribeMe(); + } + async notifyLineAuthoring(id, la) { + if (this.view === void 0) { + console.warn( + `Obsidian Git: View is not defined for editor cache key. Unforeseen situation. id: ${id}` + ); + return; + } + const state = this.view.state; + const transaction = newComputationResultAsTransaction(id, la, state); + this.view.dispatch(transaction); + } + updateToNewState(state) { + const filepathChanged = this.lastSeenPath && this.filepath != this.lastSeenPath; + this.state = state; + if (filepathChanged) { + this.unsubscribeMe(this.lastSeenPath); + this.subscribeMe(); + } + return this; + } + removeIfStale() { + if (this.view.destroyed) { + this.unsubscribeMe(this.lastSeenPath); + } + } + subscribeMe() { + if (this.filepath === void 0) + return; + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + this.filepath, + (subs) => subs.add(this) + ); + this.lastSeenPath = this.filepath; + } + unsubscribeMe(oldFilepath) { + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + oldFilepath, + (subs) => subs.delete(this) + ); + } + get filepath() { + var _a2, _b; + return (_b = (_a2 = this.state.field(import_obsidian9.editorViewField)) == null ? void 0 : _a2.file) == null ? void 0 : _b.path; + } + get view() { + return this.state.field(import_obsidian9.editorEditorField); + } +}; +var subscribeNewEditor = import_state2.StateField.define({ + create: (state) => new LineAuthoringSubscriber(state), + update: (v, transaction) => v.updateToNewState(transaction.state), + compare: (a, b) => a === b +}); + +// src/lineAuthor/view/cache.ts +init_polyfill_buffer(); +function clearViewCache() { + longestRenderedGutter = void 0; + renderedAgeInDaysForAdaptiveInitialColoring = []; + ageIdx = 0; + gutterInstances.clear(); + gutterMarkersRangeSet.clear(); + attachedGutterElements.clear(); +} +var longestRenderedGutter = void 0; +var getLongestRenderedGutter = () => longestRenderedGutter; +function conditionallyUpdateLongestRenderedGutter(gutter2, text2) { + var _a2; + const length = text2.length; + if (length < ((_a2 = longestRenderedGutter == null ? void 0 : longestRenderedGutter.length) != null ? _a2 : 0)) + return; + longestRenderedGutter = { gutter: gutter2, length, text: text2 }; + const settings = latestSettings.get(); + if (length !== settings.gutterSpacingFallbackLength) { + settings.gutterSpacingFallbackLength = length; + latestSettings.save(settings); + } +} +var renderedAgeInDaysForAdaptiveInitialColoring = []; +var ADAPTIVE_INITIAL_COLORING_AGE_CACHE_SIZE = 15; +var ageIdx = 0; +function recordRenderedAgeInDays(age) { + renderedAgeInDaysForAdaptiveInitialColoring[ageIdx] = age; + ageIdx = (ageIdx + 1) % ADAPTIVE_INITIAL_COLORING_AGE_CACHE_SIZE; +} +function computeAdaptiveInitialColoringAgeInDays() { + return median(renderedAgeInDaysForAdaptiveInitialColoring); +} +var gutterInstances = /* @__PURE__ */ new Map(); +var gutterMarkersRangeSet = /* @__PURE__ */ new Map(); +var attachedGutterElements = /* @__PURE__ */ new Set(); + +// src/lineAuthor/view/view.ts +init_polyfill_buffer(); +var import_state3 = require("@codemirror/state"); +var import_view2 = require("@codemirror/view"); + +// src/lineAuthor/view/gutter/gutter.ts +init_polyfill_buffer(); +var import_view = require("@codemirror/view"); +var import_js_sha2562 = __toESM(require_sha256()); +var import_obsidian10 = require("obsidian"); + +// src/lineAuthor/view/contextMenu.ts +init_polyfill_buffer(); + +// src/lineAuthor/view/gutter/gutterElementSearch.ts +init_polyfill_buffer(); +var mouseXY = { x: -10, y: -10 }; +function prepareGutterSearchForContextMenuHandling() { + if (mouseXY.x === -10) { + window.addEventListener("mousedown", (e) => { + mouseXY.x = e.clientX; + mouseXY.y = e.clientY; + }); + } +} +function findGutterElementUnderMouse() { + for (const elt of attachedGutterElements) { + if (contains(elt, mouseXY)) + return elt; + } +} +function contains(elt, pt) { + const { x, y, width, height } = elt.getBoundingClientRect(); + return x <= pt.x && pt.x <= x + width && y <= pt.y && pt.y <= y + height; +} + +// src/pluginGlobalRef.ts +init_polyfill_buffer(); +var pluginRef = {}; + +// src/lineAuthor/view/contextMenu.ts +var COMMIT_ATTR = "data-commit"; +function handleContextMenu(menu, editor, _mdv) { + if (editor.hasFocus()) + return; + const gutterElement = findGutterElementUnderMouse(); + if (!gutterElement) + return; + const info = getCommitInfo(gutterElement); + if (!info) + return; + if (!info.isZeroCommit && !info.isWaitingGutter) { + addCopyHashMenuItem(info, menu); + } + addConfigurableLineAuthorSettings("showCommitHash", menu); + addConfigurableLineAuthorSettings("authorDisplay", menu); + addConfigurableLineAuthorSettings("dateTimeFormatOptions", menu); +} +function addCopyHashMenuItem(commit2, menu) { + menu.addItem( + (item) => item.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick((_e) => navigator.clipboard.writeText(commit2.hash)) + ); +} +function addConfigurableLineAuthorSettings(key2, menu) { + var _a2, _b; + let title; + let actionNewValue; + const settings = pluginRef.plugin.settings.lineAuthor; + const currentValue = settings[key2]; + const currentlyShown = typeof currentValue === "boolean" ? currentValue : currentValue !== "hide"; + const defaultValue = DEFAULT_SETTINGS.lineAuthor[key2]; + if (key2 === "showCommitHash") { + title = "Show commit hash"; + actionNewValue = !currentValue; + } else if (key2 === "authorDisplay") { + const showOption = (_a2 = settings.lastShownAuthorDisplay) != null ? _a2 : defaultValue; + title = "Show author " + (currentlyShown ? currentValue : showOption); + actionNewValue = currentlyShown ? "hide" : showOption; + } else if (key2 === "dateTimeFormatOptions") { + const showOption = (_b = settings.lastShownDateTimeFormatOptions) != null ? _b : defaultValue; + title = "Show " + (currentlyShown ? currentValue : showOption); + title += !title.contains("date") ? " date" : ""; + actionNewValue = currentlyShown ? "hide" : showOption; + } else { + impossibleBranch(key2); + } + menu.addItem( + (item) => item.setTitle(title).setSection("obs-git-line-author-configure").setChecked(currentlyShown).onClick( + (_e) => { + var _a3, _b2; + return (_b2 = (_a3 = pluginRef.plugin) == null ? void 0 : _a3.settingsTab) == null ? void 0 : _b2.lineAuthorSettingHandler( + key2, + actionNewValue + ); + } + ) + ); +} +function enrichCommitInfoForContextMenu(commit2, isWaitingGutter, elt) { + elt.setAttr( + COMMIT_ATTR, + JSON.stringify({ + hash: commit2.hash, + isZeroCommit: commit2.isZeroCommit, + isWaitingGutter + }) + ); +} +function getCommitInfo(elt) { + const commitInfoStr = elt.getAttr(COMMIT_ATTR); + return commitInfoStr ? JSON.parse(commitInfoStr) : void 0; +} + +// src/lineAuthor/view/gutter/coloring.ts +init_polyfill_buffer(); +function previewColor(which, settings) { + return which === "oldest" ? coloringBasedOnCommitAge(0, false, settings).color : coloringBasedOnCommitAge(void 0, true, settings).color; +} +function coloringBasedOnCommitAge(commitAuthorEpochSeonds, isZeroCommit, settings) { + const maxAgeInDays = maxAgeInDaysFromSettings(settings); + const epochSecondsNow = Date.now() / 1e3; + const authoringEpochSeconds = commitAuthorEpochSeonds != null ? commitAuthorEpochSeonds : 0; + const secondsSinceCommit = isZeroCommit ? 0 : epochSecondsNow - authoringEpochSeconds; + const daysSinceCommit = secondsSinceCommit / 60 / 60 / 24; + const x = Math.pow( + Math.clamp(daysSinceCommit / maxAgeInDays, 0, 1), + 1 / 2.3 + ); + const dark = isDarkMode(); + const color0 = settings.colorNew; + const color1 = settings.colorOld; + const scaling = dark ? 0.4 : 1; + const r = lin(color0.r, color1.r, x) * scaling; + const g = lin(color0.g, color1.g, x) * scaling; + const b = lin(color0.b, color1.b, x) * scaling; + const a = dark ? 0.75 : 0.25; + return { color: `rgba(${r},${g},${b},${a})`, daysSinceCommit }; +} +function lin(z0, z1, x) { + return z0 + (z1 - z0) * x; +} +function isDarkMode() { + const obsidian = window == null ? void 0 : window.app; + return (obsidian == null ? void 0 : obsidian.getTheme()) === "obsidian"; +} +function setTextColorCssBasedOnSetting(settings) { + document.body.style.setProperty( + "--obs-git-gutter-text", + settings.textColorCss + ); +} + +// src/lineAuthor/view/gutter/commitChoice.ts +init_polyfill_buffer(); +function chooseNewestCommit(lineAuthoring, startLine, endLine) { + let newest = void 0; + for (let line = startLine; line <= endLine; line++) { + const currentHash = lineAuthoring.hashPerLine[line]; + const currentCommit = lineAuthoring.commits.get(currentHash); + if (!newest || currentCommit.isZeroCommit || isNewerThan(currentCommit, newest)) { + newest = currentCommit; + } + } + return newest; +} +function isNewerThan(left, right) { + var _a2, _b, _c, _d; + const l = (_b = (_a2 = left.author) == null ? void 0 : _a2.epochSeconds) != null ? _b : 0; + const r = (_d = (_c = right.author) == null ? void 0 : _c.epochSeconds) != null ? _d : 0; + return l > r; +} + +// src/lineAuthor/view/gutter/gutter.ts +var VALUE_NOT_FOUND_FALLBACK = "-"; +var NEW_CHANGE_CHARACTER = "+"; +var NEW_CHANGE_NUMBER_OF_CHARACTERS = 3; +var DIFFERING_AUTHOR_COMMITTER_MARKER = "*"; +var NON_WHITESPACE_REGEXP = /\S/g; +var UNINTRUSIVE_CHARACTER_FOR_WAITING_RENDERING = "%"; +var TextGutter = class extends import_view.GutterMarker { + constructor(text2) { + super(); + this.text = text2; + } + eq(other) { + return this.text === (other == null ? void 0 : other.text); + } + toDOM() { + return document.createTextNode(this.text); + } + destroy(dom) { + if (!document.body.contains(dom)) + dom.remove(); + } +}; +var LineAuthoringGutter = class extends import_view.GutterMarker { + /** + * **This should only be called {@link lineAuthoringGutterMarker}!** + * + * We want to avoid creating the same instance multiple times for improved performance. + */ + constructor(lineAuthoring, startLine, endLine, key2, settings, options) { + super(); + this.lineAuthoring = lineAuthoring; + this.startLine = startLine; + this.endLine = endLine; + this.key = key2; + this.settings = settings; + this.options = options; + this.point = false; + this.elementClass = "obs-git-blame-gutter"; + } + // Equality used by CodeMirror for optimisations + eq(other) { + return this.key === (other == null ? void 0 : other.key) && this.startLine === (other == null ? void 0 : other.startLine) && this.endLine === (other == null ? void 0 : other.endLine) && (this == null ? void 0 : this.options) === (other == null ? void 0 : other.options); + } + /** + * Renders to a Html node. + * + * It choses the newest commit within the line-range, + * renders it, makes adjustments for fake-commits and finally warps + * it into HTML. + * + * The DOM is actually precomputed with {@link computeDom}, + * which provides a finaliser to run before the DOM is handed over to CodeMirror. + * This is done, because this method is called frequently. It is called, + * whenever a gutter gets into the viewport and needs to be rendered. + * + * The age in days is recorded via {@link recordRenderedAgeInDays} to enable adaptive coloring. + */ + toDOM() { + var _a2; + this.precomputedDomProvider = (_a2 = this.precomputedDomProvider) != null ? _a2 : this.computeDom(); + return this.precomputedDomProvider(); + } + destroy(dom) { + if (!document.body.contains(dom)) { + dom.remove(); + attachedGutterElements.delete(dom); + } + } + /** + * Prepares the DOM for this gutter. + */ + computeDom() { + const commit2 = chooseNewestCommit( + this.lineAuthoring, + this.startLine, + this.endLine + ); + let toBeRenderedText = commit2.isZeroCommit ? "" : this.renderNonZeroCommit(commit2); + const isTrueCommit = !commit2.isZeroCommit && this.options !== "waiting-for-result"; + if (isTrueCommit) { + conditionallyUpdateLongestRenderedGutter(this, toBeRenderedText); + } else { + toBeRenderedText = this.adaptTextForFakeCommit( + commit2, + toBeRenderedText, + this.options + ); + } + const domProvider = this.createHtmlNode( + commit2, + toBeRenderedText, + this.options === "waiting-for-result" + ); + return domProvider; + } + createHtmlNode(commit2, text2, isWaitingGutter) { + var _a2; + const templateElt = window.createDiv(); + templateElt.innerText = text2; + const { color, daysSinceCommit } = coloringBasedOnCommitAge( + (_a2 = commit2 == null ? void 0 : commit2.author) == null ? void 0 : _a2.epochSeconds, + commit2 == null ? void 0 : commit2.isZeroCommit, + this.settings + ); + templateElt.style.backgroundColor = color; + enrichCommitInfoForContextMenu(commit2, isWaitingGutter, templateElt); + function prepareForDomAttachment() { + const elt = templateElt.cloneNode(true); + attachedGutterElements.add(elt); + if (!isWaitingGutter) + recordRenderedAgeInDays(daysSinceCommit); + return elt; + } + return prepareForDomAttachment; + } + renderNonZeroCommit(commit2) { + const optionalShortHash = this.settings.showCommitHash ? this.renderHash(commit2) : ""; + const optionalAuthorName = this.settings.authorDisplay === "hide" ? "" : `${this.renderAuthorName( + commit2, + this.settings.authorDisplay + )}`; + const optionalAuthoringDate = this.settings.dateTimeFormatOptions === "hide" ? "" : `${this.renderAuthoringDate( + commit2, + this.settings.dateTimeFormatOptions, + this.settings.dateTimeFormatCustomString, + this.settings.dateTimeTimezone + )}`; + const parts = [ + optionalShortHash, + optionalAuthorName, + optionalAuthoringDate + ]; + return parts.filter((x) => x.length >= 1).join(" "); + } + renderHash(nonZeroCommit) { + return nonZeroCommit.hash.substring(0, 6); + } + renderAuthorName(nonZeroCommit, authorDisplay) { + var _a2, _b, _c, _d; + const name = (_b = (_a2 = nonZeroCommit == null ? void 0 : nonZeroCommit.author) == null ? void 0 : _a2.name) != null ? _b : ""; + const words = name.split(" ").filter((word) => word.length >= 1); + let rendered; + switch (authorDisplay) { + case "initials": + rendered = words.map((word) => word[0].toUpperCase()).join(""); + break; + case "first name": + rendered = (_c = words.first()) != null ? _c : VALUE_NOT_FOUND_FALLBACK; + break; + case "last name": + rendered = (_d = words.last()) != null ? _d : VALUE_NOT_FOUND_FALLBACK; + break; + case "full": + rendered = name; + break; + default: + return impossibleBranch(authorDisplay); + } + if (!strictDeepEqual(nonZeroCommit == null ? void 0 : nonZeroCommit.author, nonZeroCommit == null ? void 0 : nonZeroCommit.committer)) { + rendered = rendered + DIFFERING_AUTHOR_COMMITTER_MARKER; + } + return rendered; + } + renderAuthoringDate(nonZeroCommit, dateTimeFormatOptions, dateTimeFormatCustomString, dateTimeTimezone) { + var _a2; + const FALLBACK_COMMIT_DATE = "?"; + if (((_a2 = nonZeroCommit == null ? void 0 : nonZeroCommit.author) == null ? void 0 : _a2.epochSeconds) === void 0) + return FALLBACK_COMMIT_DATE; + let dateTimeFormatting; + switch (dateTimeFormatOptions) { + case "date": + dateTimeFormatting = DATE_FORMAT; + break; + case "datetime": + dateTimeFormatting = DATE_TIME_FORMAT_MINUTES; + break; + case "custom": + dateTimeFormatting = dateTimeFormatCustomString; + break; + case "natural language": + dateTimeFormatting = (time) => { + const diff2 = time.diff((0, import_obsidian10.moment)()); + const addFluentSuffix = true; + return import_obsidian10.moment.duration(diff2).humanize(addFluentSuffix); + }; + break; + default: + return impossibleBranch(dateTimeFormatOptions); + } + let authoringDate = import_obsidian10.moment.unix( + nonZeroCommit.author.epochSeconds + ); + switch (dateTimeTimezone) { + case "viewer-local": + break; + case "author-local": + authoringDate = authoringDate.utcOffset( + nonZeroCommit.author.tz + ); + dateTimeFormatting += " Z"; + break; + case "utc0000": + authoringDate = authoringDate.utc(); + dateTimeFormatting += "[Z]"; + break; + default: + return impossibleBranch(dateTimeTimezone); + } + if (typeof dateTimeFormatting === "string") { + return authoringDate.format(dateTimeFormatting); + } else { + return dateTimeFormatting(authoringDate); + } + } + adaptTextForFakeCommit(commit2, toBeRenderedText, options) { + var _a2, _b, _c, _d; + const original = (_b = (_a2 = getLongestRenderedGutter()) == null ? void 0 : _a2.text) != null ? _b : toBeRenderedText; + const fillCharacter = options !== "waiting-for-result" && commit2.isZeroCommit ? NEW_CHANGE_CHARACTER : UNINTRUSIVE_CHARACTER_FOR_WAITING_RENDERING; + toBeRenderedText = original.replace( + NON_WHITESPACE_REGEXP, + fillCharacter + ); + const desiredTextLength = (_d = (_c = latestSettings.get()) == null ? void 0 : _c.gutterSpacingFallbackLength) != null ? _d : toBeRenderedText.length; + toBeRenderedText = resizeToLength( + toBeRenderedText, + desiredTextLength, + fillCharacter + ); + if (options !== "waiting-for-result" && commit2.isZeroCommit) { + const numberOfLastCharactersToKeep = Math.min( + desiredTextLength, + NEW_CHANGE_NUMBER_OF_CHARACTERS + ); + toBeRenderedText = prefixOfLengthAsWhitespace( + toBeRenderedText, + desiredTextLength - numberOfLastCharactersToKeep + ); + } + return toBeRenderedText; + } +}; +function lineAuthoringGutterMarker(la, startLine, endLine, key2, settings, options) { + const digest = import_js_sha2562.sha256.create(); + digest.update(Object.values(settings).join(",")); + digest.update(`s${startLine}-e${endLine}-k${key2}-o${options}`); + const cacheKey = digest.hex(); + const cached = gutterInstances.get(cacheKey); + if (cached) + return cached; + const result = new LineAuthoringGutter( + la, + startLine, + endLine, + key2, + settings, + options + ); + gutterInstances.set(cacheKey, result); + return result; +} + +// src/lineAuthor/view/gutter/initial.ts +init_polyfill_buffer(); +var import_obsidian11 = require("obsidian"); +function initialSpacingGutter() { + var _a2, _b; + const length = (_b = (_a2 = latestSettings.get()) == null ? void 0 : _a2.gutterSpacingFallbackLength) != null ? _b : DEFAULT_SETTINGS.lineAuthor.gutterSpacingFallbackLength; + return new TextGutter(Array(length).fill("-").join("")); +} +function initialLineAuthoringGutter(settings) { + const { lineAuthoring, ageForInitialRender } = adaptiveInitialColoredWaitingLineAuthoring(settings); + return lineAuthoringGutterMarker( + lineAuthoring, + 1, + 1, + "initialGutter" + ageForInitialRender, + // use a age coloring based cache key + settings, + "waiting-for-result" + ); +} +function adaptiveInitialColoredWaitingLineAuthoring(settings) { + var _a2; + const ageForInitialRender = (_a2 = computeAdaptiveInitialColoringAgeInDays()) != null ? _a2 : maxAgeInDaysFromSettings(settings) * 0.25; + const slightlyOlderAgeForInitialRender = (0, import_obsidian11.moment)().add( + -ageForInitialRender, + "days" + ); + const dummyAuthor = { + name: "", + epochSeconds: momentToEpochSeconds(slightlyOlderAgeForInitialRender), + tz: "+0000" + }; + const dummyCommit = { + hash: "waiting-for-result", + author: dummyAuthor, + committer: dummyAuthor, + isZeroCommit: false + }; + return { + lineAuthoring: { + hashPerLine: [void 0, "waiting-for-result"], + commits: /* @__PURE__ */ new Map([["waiting-for-result", dummyCommit]]) + }, + ageForInitialRender + }; +} + +// src/lineAuthor/view/gutter/untrackedFile.ts +init_polyfill_buffer(); +function newUntrackedFileGutter(key2, settings) { + const dummyLineAuthoring = { + hashPerLine: [void 0, "000000"], + commits: /* @__PURE__ */ new Map([["000000", zeroCommit]]) + }; + return lineAuthoringGutterMarker(dummyLineAuthoring, 1, 1, key2, settings); +} + +// src/lineAuthor/view/view.ts +var UNDISPLAYED = new TextGutter(""); +var lineAuthorGutter = (0, import_view2.gutter)({ + class: "line-author-gutter-container", + markers(view) { + const lineAuthoring = view.state.field(lineAuthorState, false); + return lineAuthoringGutterMarkersRangeSet(view, lineAuthoring); + }, + lineMarkerChange(update2) { + const newLineAuthoringId = laStateDigest( + update2.state.field(lineAuthorState) + ); + const oldLineAuthoringId = laStateDigest( + update2.startState.field(lineAuthorState) + ); + return oldLineAuthoringId !== newLineAuthoringId; + }, + renderEmptyElements: true, + initialSpacer: (view) => { + temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(view); + return initialSpacingGutter(); + }, + updateSpacer: (_sp, update2) => { + var _a2, _b; + temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(update2.view); + return (_b = (_a2 = getLongestRenderedGutter()) == null ? void 0 : _a2.gutter) != null ? _b : initialSpacingGutter(); + } +}); +function lineAuthoringGutterMarkersRangeSet(view, optLA) { + const digest = laStateDigest(optLA); + const doc = view.state.doc; + const lineBlockEndPos = /* @__PURE__ */ new Map(); + for (let line = 1; line <= doc.lines; line++) { + const from = doc.line(line).from; + const to = view.lineBlockAt(from).to; + lineBlockEndPos.set(line, [from, to]); + digest.update([from, to, 0]); + } + const laSettings = latestSettings.get(); + digest.update("s" + Object.values(latestSettings).join(",")); + const cacheKey = digest.hex(); + const cached = gutterMarkersRangeSet.get(cacheKey); + if (cached) + return cached; + const { result, allowCache } = computeLineAuthoringGutterMarkersRangeSet( + doc, + lineBlockEndPos, + laSettings, + optLA + ); + if (allowCache) + gutterMarkersRangeSet.set(cacheKey, result); + return result; +} +function computeLineAuthoringGutterMarkersRangeSet(doc, blocksPerLine, settings, optLA) { + let allowCache = true; + const docLastLine = doc.lines; + const ranges = []; + function add2(from, to, gutter2) { + return ranges.push(gutter2.range(from, to)); + } + const lineFrom = computeLineMappingForUnsavedChanges(docLastLine, optLA); + const emptyDoc = doc.length === 0; + const lastLineIsEmpty = doc.iterLines(docLastLine, docLastLine + 1).next().value === ""; + for (let startLine = 1; startLine <= docLastLine; startLine++) { + const [from, to] = blocksPerLine.get(startLine); + const endLine = doc.lineAt(to).number; + if (emptyDoc) { + add2(from, to, UNDISPLAYED); + continue; + } + if (startLine === docLastLine && lastLineIsEmpty) { + add2(from, to, UNDISPLAYED); + continue; + } + if (optLA === void 0) { + add2(from, to, initialLineAuthoringGutter(settings)); + allowCache = false; + continue; + } + const { key: key2, la } = optLA; + if (la === "untracked") { + add2(from, to, newUntrackedFileGutter(la, settings)); + continue; + } + const lastAuthorLine = la.hashPerLine.length - 1; + const laStartLine = lineFrom[startLine]; + const laEndLine = lineFrom[endLine]; + if (laEndLine && laEndLine > lastAuthorLine) { + add2(from, to, UNDISPLAYED); + } + if (laStartLine !== void 0 && between(1, laStartLine, lastAuthorLine) && laEndLine !== void 0 && between(1, laEndLine, lastAuthorLine)) { + add2( + from, + to, + lineAuthoringGutterMarker( + la, + laStartLine, + laEndLine, + key2, + settings + ) + ); + continue; + } + if (lastAuthorLine < 1) { + add2(from, to, initialLineAuthoringGutter(settings)); + allowCache = false; + continue; + } + const start = Math.clamp(laStartLine != null ? laStartLine : startLine, 1, lastAuthorLine); + const end = Math.clamp(laEndLine != null ? laEndLine : endLine, 1, lastAuthorLine); + add2( + from, + to, + lineAuthoringGutterMarker( + la, + start, + end, + key2 + "computing", + settings, + "waiting-for-result" + ) + ); + } + return { result: import_state3.RangeSet.of( + ranges, + /* sort = */ + true + ), allowCache }; +} +function computeLineMappingForUnsavedChanges(docLastLine, optLA) { + if (!(optLA == null ? void 0 : optLA.lineOffsetsFromUnsavedChanges)) { + return Array.from(new Array(docLastLine + 1), (ln) => ln); + } + const lineFrom = [void 0]; + let cumulativeLineOffset = 0; + for (let ln = 1; ln <= docLastLine; ln++) { + const unsavedChanges = optLA.lineOffsetsFromUnsavedChanges.get(ln); + cumulativeLineOffset += unsavedChanges != null ? unsavedChanges : 0; + lineFrom[ln] = unsavedChanges === void 0 ? ln - cumulativeLineOffset : void 0; + } + return lineFrom; +} +function temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(view) { + const guttersContainers = view.dom.querySelectorAll( + ".cm-gutters" + ); + guttersContainers.forEach((cont) => { + if (!(cont == null ? void 0 : cont.style)) + return; + if (!cont.style.marginLeft) { + cont.style.marginLeft = "unset"; + } + }); +} + +// src/lineAuthor/lineAuthorProvider.ts +var LineAuthorProvider = class { + constructor(plugin) { + this.plugin = plugin; + /** + * Saves all computed line authoring results. + * + * See {@link LineAuthoringId} + */ + this.lineAuthorings = /* @__PURE__ */ new Map(); + } + async trackChanged(file) { + this.trackChangedHelper(file).catch((reason) => { + console.warn("Obsidian Git: Error in trackChanged." + reason); + return Promise.reject(reason); + }); + } + async trackChangedHelper(file) { + if (!file) + return; + if (file.path === void 0) { + console.warn( + "Obsidian Git: Attempted to track change of undefined filepath. Unforeseen situation." + ); + return; + } + this.computeLineAuthorInfo(file.path); + } + destroy() { + this.lineAuthorings.clear(); + eventsPerFilePathSingleton.clear(); + clearViewCache(); + } + async computeLineAuthorInfo(filepath) { + const gitManager = this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager; + const headRevision = await gitManager.submoduleAwareHeadRevisonInContainingDirectory( + filepath + ); + const fileHash = await gitManager.hashObject(filepath); + const key2 = lineAuthoringId(headRevision, fileHash, filepath); + if (key2 === void 0) { + return; + } + if (this.lineAuthorings.has(key2)) { + } else { + const gitAuthorResult = await gitManager.blame( + filepath, + this.plugin.settings.lineAuthor.followMovement, + this.plugin.settings.lineAuthor.ignoreWhitespace + ); + this.lineAuthorings.set(key2, gitAuthorResult); + } + this.notifyComputationResultToSubscribers(filepath, key2); + } + notifyComputationResultToSubscribers(filepath, key2) { + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + filepath, + async (subs) => subs.forEach( + (sub) => sub.notifyLineAuthoring(key2, this.lineAuthorings.get(key2)) + ) + ); + } +}; +var enabledLineAuthorInfoExtensions = import_state4.Prec.high([ + subscribeNewEditor, + lineAuthorState, + lineAuthorGutter +]); + +// src/lineAuthor/lineAuthorIntegration.ts +var LineAuthoringFeature = class { + constructor(plg) { + this.plg = plg; + this.codeMirrorExtensions = []; + this.handleWorkspaceLeaf = (leaf) => { + const obsView = leaf == null ? void 0 : leaf.view; + const file = obsView == null ? void 0 : obsView.file; + if (!this.lineAuthorInfoProvider) { + console.warn( + "Obsidian Git: undefined lineAuthorInfoProvider. Unexpected situation." + ); + return; + } + if (file === void 0 || (obsView == null ? void 0 : obsView.allowNoFile) === true) + return; + this.lineAuthorInfoProvider.trackChanged(file); + }; + } + // ========================= INIT and DE-INIT ========================== + onLoadPlugin() { + this.plg.registerEditorExtension(this.codeMirrorExtensions); + provideSettingsAccess( + () => this.plg.settings.lineAuthor, + (laSettings) => { + this.plg.settings.lineAuthor = laSettings; + this.plg.saveSettings(); + } + ); + } + conditionallyActivateBySettings() { + if (this.plg.settings.lineAuthor.show) { + this.activateFeature(); + } + } + activateFeature() { + try { + if (!this.isAvailableOnCurrentPlatform()) + return; + setTextColorCssBasedOnSetting(this.plg.settings.lineAuthor); + this.lineAuthorInfoProvider = new LineAuthorProvider(this.plg); + this.createEventHandlers(); + this.activateCodeMirrorExtensions(); + console.log(this.plg.manifest.name + ": Enabled line authoring."); + } catch (e) { + console.warn( + "Obsidian Git: Error while loading line authoring feature.", + e + ); + this.deactivateFeature(); + } + } + /** + * Deactivates the feature. This function is very defensive, as it is also + * called to cleanup, if a critical error in the line authoring has occurred. + */ + deactivateFeature() { + var _a2; + this.destroyEventHandlers(); + this.deactivateCodeMirrorExtensions(); + (_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.destroy(); + this.lineAuthorInfoProvider = void 0; + console.log(this.plg.manifest.name + ": Disabled line authoring."); + } + isAvailableOnCurrentPlatform() { + return { + available: this.plg.useSimpleGit && import_obsidian12.Platform.isDesktopApp, + gitManager: this.plg.gitManager instanceof SimpleGit ? this.plg.gitManager : void 0 + }; + } + // ========================= REFRESH ========================== + refreshLineAuthorViews() { + if (this.plg.settings.lineAuthor.show) { + this.deactivateFeature(); + this.activateFeature(); + } + } + // ========================= CODEMIRROR EXTENSIONS ========================== + activateCodeMirrorExtensions() { + this.codeMirrorExtensions.push(enabledLineAuthorInfoExtensions); + this.plg.app.workspace.updateOptions(); + this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf); + } + deactivateCodeMirrorExtensions() { + for (const ext of this.codeMirrorExtensions) { + this.codeMirrorExtensions.remove(ext); + } + this.plg.app.workspace.updateOptions(); + } + // ========================= HANDLERS ========================== + createEventHandlers() { + this.gutterContextMenuEvent = this.createGutterContextMenuHandler(); + this.fileOpenEvent = this.createFileOpenEvent(); + this.workspaceLeafChangeEvent = this.createWorkspaceLeafChangeEvent(); + this.fileModificationEvent = this.createVaultFileModificationHandler(); + this.refreshOnCssChangeEvent = this.createCssRefreshHandler(); + this.fileRenameEvent = this.createFileRenameEvent(); + prepareGutterSearchForContextMenuHandling(); + this.plg.registerEvent(this.gutterContextMenuEvent); + this.plg.registerEvent(this.refreshOnCssChangeEvent); + this.plg.registerEvent(this.fileOpenEvent); + this.plg.registerEvent(this.workspaceLeafChangeEvent); + this.plg.registerEvent(this.fileModificationEvent); + this.plg.registerEvent(this.fileRenameEvent); + } + destroyEventHandlers() { + this.plg.app.workspace.offref(this.refreshOnCssChangeEvent); + this.plg.app.workspace.offref(this.fileOpenEvent); + this.plg.app.workspace.offref(this.workspaceLeafChangeEvent); + this.plg.app.workspace.offref(this.refreshOnCssChangeEvent); + this.plg.app.vault.offref(this.fileRenameEvent); + this.plg.app.workspace.offref(this.gutterContextMenuEvent); + } + createFileOpenEvent() { + return this.plg.app.workspace.on( + "file-open", + (file) => { + var _a2; + return (_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(file); + } + ); + } + createWorkspaceLeafChangeEvent() { + return this.plg.app.workspace.on( + "active-leaf-change", + this.handleWorkspaceLeaf + ); + } + createFileRenameEvent() { + return this.plg.app.vault.on( + "rename", + (file, _old) => { + var _a2; + return file instanceof import_obsidian12.TFile && ((_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(file)); + } + ); + } + createVaultFileModificationHandler() { + return this.plg.app.vault.on( + "modify", + (anyPath) => { + var _a2; + return anyPath instanceof import_obsidian12.TFile && ((_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(anyPath)); + } + ); + } + createCssRefreshHandler() { + return this.plg.app.workspace.on( + "css-change", + () => this.refreshLineAuthorViews() + ); + } + createGutterContextMenuHandler() { + return this.plg.app.workspace.on("editor-menu", handleContextMenu); + } +}; + +// src/promiseQueue.ts +init_polyfill_buffer(); +var PromiseQueue = class { + constructor() { + this.tasks = []; + } + addTask(task) { + this.tasks.push(task); + if (this.tasks.length === 1) { + this.handleTask(); + } + } + async handleTask() { + if (this.tasks.length > 0) { + this.tasks[0]().finally(() => { + this.tasks.shift(); + this.handleTask(); + }); + } + } +}; + +// src/statusBar.ts +init_polyfill_buffer(); +var import_obsidian13 = require("obsidian"); +var StatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.messages = []; + this.base = "obsidian-git-statusbar-"; + this.statusBarEl.setAttribute("aria-label-position", "top"); + addEventListener("git-refresh", this.refreshCommitTimestamp.bind(this)); + } + displayMessage(message, timeout) { + this.messages.push({ + message: `Git: ${message.slice(0, 100)}`, + timeout + }); + this.display(); + } + display() { + if (this.messages.length > 0 && !this.currentMessage) { + this.currentMessage = this.messages.shift(); + this.statusBarEl.addClass(this.base + "message"); + this.statusBarEl.ariaLabel = ""; + this.statusBarEl.setText(this.currentMessage.message); + this.lastMessageTimestamp = Date.now(); + } else if (this.currentMessage) { + const messageAge = Date.now() - this.lastMessageTimestamp; + if (messageAge >= this.currentMessage.timeout) { + this.currentMessage = null; + this.lastMessageTimestamp = null; + } + } else { + this.displayState(); + } + } + displayState() { + if (this.statusBarEl.getText().length > 3 || !this.statusBarEl.hasChildNodes()) { + this.statusBarEl.empty(); + this.iconEl = this.statusBarEl.createDiv(); + this.textEl = this.statusBarEl.createDiv(); + this.textEl.style.float = "right"; + this.textEl.style.marginLeft = "5px"; + this.iconEl.style.float = "left"; + } + switch (this.plugin.state) { + case 0 /* idle */: + this.displayFromNow(); + break; + case 1 /* status */: + this.statusBarEl.ariaLabel = "Checking repository status..."; + (0, import_obsidian13.setIcon)(this.iconEl, "refresh-cw"); + this.statusBarEl.addClass(this.base + "status"); + break; + case 3 /* add */: + this.statusBarEl.ariaLabel = "Adding files..."; + (0, import_obsidian13.setIcon)(this.iconEl, "refresh-w"); + this.statusBarEl.addClass(this.base + "add"); + break; + case 4 /* commit */: + this.statusBarEl.ariaLabel = "Committing changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "git-commit"); + this.statusBarEl.addClass(this.base + "commit"); + break; + case 5 /* push */: + this.statusBarEl.ariaLabel = "Pushing changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "upload"); + this.statusBarEl.addClass(this.base + "push"); + break; + case 2 /* pull */: + this.statusBarEl.ariaLabel = "Pulling changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "download"); + this.statusBarEl.addClass(this.base + "pull"); + break; + case 6 /* conflicted */: + this.statusBarEl.ariaLabel = "You have conflict files..."; + (0, import_obsidian13.setIcon)(this.iconEl, "alert-circle"); + this.statusBarEl.addClass(this.base + "conflict"); + break; + default: + this.statusBarEl.ariaLabel = "Failed on initialization!"; + (0, import_obsidian13.setIcon)(this.iconEl, "alert-triangle"); + this.statusBarEl.addClass(this.base + "failed-init"); + break; + } + } + displayFromNow() { + var _a2; + const timestamp = this.lastCommitTimestamp; + if (timestamp) { + const moment5 = window.moment; + const fromNow = moment5(timestamp).fromNow(); + this.statusBarEl.ariaLabel = `${this.plugin.offlineMode ? "Offline: " : ""}Last Commit: ${fromNow}`; + if ((_a2 = this.unPushedCommits) != null ? _a2 : 0 > 0) { + this.statusBarEl.ariaLabel += ` +(${this.unPushedCommits} unpushed commits)`; + } + } else { + this.statusBarEl.ariaLabel = this.plugin.offlineMode ? "Git is offline" : "Git is ready"; + } + if (this.plugin.offlineMode) { + (0, import_obsidian13.setIcon)(this.iconEl, "globe"); + } else { + (0, import_obsidian13.setIcon)(this.iconEl, "check"); + } + if (this.plugin.settings.changedFilesInStatusBar && this.plugin.cachedStatus) { + this.textEl.setText( + this.plugin.cachedStatus.changed.length.toString() + ); + } + this.statusBarEl.addClass(this.base + "idle"); + } + async refreshCommitTimestamp() { + this.lastCommitTimestamp = await this.plugin.gitManager.getLastCommitTime(); + this.unPushedCommits = await this.plugin.gitManager.getUnpushedCommits(); + } +}; + +// src/ui/modals/changedFilesModal.ts +init_polyfill_buffer(); +var import_obsidian14 = require("obsidian"); +var ChangedFilesModal = class extends import_obsidian14.FuzzySuggestModal { + constructor(plugin, changedFiles) { + super(plugin.app); + this.plugin = plugin; + this.changedFiles = changedFiles; + this.setPlaceholder( + "Not supported files will be opened by default app!" + ); + } + getItems() { + return this.changedFiles; + } + getItemText(item) { + if (item.index == "U" && item.working_dir == "U") { + return `Untracked | ${item.vault_path}`; + } + let working_dir = ""; + let index2 = ""; + if (item.working_dir != " ") + working_dir = `Working dir: ${item.working_dir} `; + if (item.index != " ") + index2 = `Index: ${item.index}`; + return `${working_dir}${index2} | ${item.vault_path}`; + } + onChooseItem(item, _) { + if (this.plugin.app.metadataCache.getFirstLinkpathDest( + item.vault_path, + "" + ) == null) { + this.app.openWithDefaultApp(item.vault_path); + } else { + this.plugin.app.workspace.openLinkText(item.vault_path, "/"); + } + } +}; + +// src/ui/modals/customMessageModal.ts +init_polyfill_buffer(); +var import_obsidian15 = require("obsidian"); +var CustomMessageModal = class extends import_obsidian15.SuggestModal { + constructor(plugin, fromAutoBackup) { + super(plugin.app); + this.fromAutoBackup = fromAutoBackup; + this.resolve = null; + this.plugin = plugin; + this.setPlaceholder( + "Type your message and select optional the version with the added date." + ); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + selectSuggestion(value, evt) { + if (this.resolve) + this.resolve(value); + super.selectSuggestion(value, evt); + } + getSuggestions(query) { + const date = window.moment().format(this.plugin.settings.commitDateFormat); + if (query == "") + query = "..."; + return [query, `${date}: ${query}`, `${query}: ${date}`]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/openInGitHub.ts +init_polyfill_buffer(); +var import_obsidian16 = require("obsidian"); +async function openLineInGitHub(editor, file, manager) { + const data = await getData(manager); + if (data.result === "failure") { + new import_obsidian16.Notice(data.reason); + return; + } + const { isGitHub, branch: branch2, repo, user } = data; + if (isGitHub) { + const path2 = manager.asRepositoryRelativePath(file.path, true); + const from = editor.getCursor("from").line + 1; + const to = editor.getCursor("to").line + 1; + if (from === to) { + window.open( + `https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}` + ); + } else { + window.open( + `https://github.com/${user}/${repo}/blob/${branch2}/${path2}?plain=1#L${from}-L${to}` + ); + } + } else { + new import_obsidian16.Notice("It seems like you are not using GitHub"); + } +} +async function openHistoryInGitHub(file, manager) { + const data = await getData(manager); + if (data.result === "failure") { + new import_obsidian16.Notice(data.reason); + return; + } + const { isGitHub, branch: branch2, repo, user } = data; + const path2 = manager.asRepositoryRelativePath(file.path, true); + if (isGitHub) { + window.open( + `https://github.com/${user}/${repo}/commits/${branch2}/${path2}` + ); + } else { + new import_obsidian16.Notice("It seems like you are not using GitHub"); + } +} +async function getData(manager) { + const branchInfo = await manager.branchInfo(); + const remoteBranch = branchInfo.tracking; + const branch2 = branchInfo.current; + if (remoteBranch == null) { + return { + result: "failure", + reason: "Remote branch is not configured" + }; + } + if (branch2 == null) { + return { + result: "failure", + reason: "Failed to get current branch name" + }; + } + const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); + const remoteUrl = await manager.getConfig( + `remote.${remote}.url` + ); + const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = remoteUrl.match( + /(?:^https:\/\/github\.com\/(.*)\/(.*)\.git$)|(?:^git@github\.com:(.*)\/(.*)\.git$)/ + ); + return { + result: "success", + isGitHub: !!isGitHub, + repo: httpsRepo || sshRepo, + user: httpsUser || sshUser, + branch: branch2 + }; +} + +// src/setting/localStorageSettings.ts +init_polyfill_buffer(); +var LocalStorageSettings = class { + constructor(plugin) { + this.plugin = plugin; + this.prefix = this.plugin.manifest.id + ":"; + } + migrate() { + const keys = [ + "password", + "hostname", + "conflict", + "lastAutoPull", + "lastAutoBackup", + "lastAutoPush", + "gitPath", + "pluginDisabled" + ]; + for (const key2 of keys) { + const old = localStorage.getItem(this.prefix + key2); + if (app.loadLocalStorage(this.prefix + key2) == null && old != null) { + if (old != null) { + app.saveLocalStorage(this.prefix + key2, old); + localStorage.removeItem(this.prefix + key2); + } + } + } + } + getPassword() { + return app.loadLocalStorage(this.prefix + "password"); + } + setPassword(value) { + return app.saveLocalStorage(this.prefix + "password", value); + } + getUsername() { + return app.loadLocalStorage(this.prefix + "username"); + } + setUsername(value) { + return app.saveLocalStorage(this.prefix + "username", value); + } + getHostname() { + return app.loadLocalStorage(this.prefix + "hostname"); + } + setHostname(value) { + return app.saveLocalStorage(this.prefix + "hostname", value); + } + getConflict() { + return app.loadLocalStorage(this.prefix + "conflict"); + } + setConflict(value) { + return app.saveLocalStorage(this.prefix + "conflict", value); + } + getLastAutoPull() { + return app.loadLocalStorage(this.prefix + "lastAutoPull"); + } + setLastAutoPull(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPull", value); + } + getLastAutoBackup() { + return app.loadLocalStorage(this.prefix + "lastAutoBackup"); + } + setLastAutoBackup(value) { + return app.saveLocalStorage(this.prefix + "lastAutoBackup", value); + } + getLastAutoPush() { + return app.loadLocalStorage(this.prefix + "lastAutoPush"); + } + setLastAutoPush(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPush", value); + } + getGitPath() { + return app.loadLocalStorage(this.prefix + "gitPath"); + } + setGitPath(value) { + return app.saveLocalStorage(this.prefix + "gitPath", value); + } + getPATHPaths() { + var _a2, _b; + return (_b = (_a2 = app.loadLocalStorage(this.prefix + "PATHPaths")) == null ? void 0 : _a2.split(":")) != null ? _b : []; + } + setPATHPaths(value) { + return app.saveLocalStorage(this.prefix + "PATHPaths", value.join(":")); + } + getEnvVars() { + var _a2; + return JSON.parse( + (_a2 = app.loadLocalStorage(this.prefix + "envVars")) != null ? _a2 : "[]" + ); + } + setEnvVars(value) { + return app.saveLocalStorage( + this.prefix + "envVars", + JSON.stringify(value) + ); + } + getPluginDisabled() { + return app.loadLocalStorage(this.prefix + "pluginDisabled") == "true"; + } + setPluginDisabled(value) { + return app.saveLocalStorage(this.prefix + "pluginDisabled", `${value}`); + } +}; + +// src/ui/diff/diffView.ts +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff-parser.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/types.js +init_polyfill_buffer(); +var LineType; +(function(LineType2) { + LineType2["INSERT"] = "insert"; + LineType2["DELETE"] = "delete"; + LineType2["CONTEXT"] = "context"; +})(LineType || (LineType = {})); +var OutputFormatType = { + LINE_BY_LINE: "line-by-line", + SIDE_BY_SIDE: "side-by-side" +}; +var LineMatchingType = { + LINES: "lines", + WORDS: "words", + NONE: "none" +}; +var DiffStyleType = { + WORD: "word", + CHAR: "char" +}; + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/utils.js +init_polyfill_buffer(); +var specials = [ + "-", + "[", + "]", + "/", + "{", + "}", + "(", + ")", + "*", + "+", + "?", + ".", + "\\", + "^", + "$", + "|" +]; +var regex = RegExp("[" + specials.join("\\") + "]", "g"); +function escapeForRegExp(str) { + return str.replace(regex, "\\$&"); +} +function unifyPath(path2) { + return path2 ? path2.replace(/\\/g, "/") : path2; +} +function hashCode(text2) { + var i, chr, len; + var hash2 = 0; + for (i = 0, len = text2.length; i < len; i++) { + chr = text2.charCodeAt(i); + hash2 = (hash2 << 5) - hash2 + chr; + hash2 |= 0; + } + return hash2; +} + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff-parser.js +var __spreadArray = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +function getExtension(filename, language) { + var filenameParts = filename.split("."); + return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; +} +function startsWithAny(str, prefixes) { + return prefixes.reduce(function(startsWith, prefix) { + return startsWith || str.startsWith(prefix); + }, false); +} +var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; +function getFilename(line, linePrefix, extraPrefix) { + var prefixes = extraPrefix !== void 0 ? __spreadArray(__spreadArray([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; + var FilenameRegExp = linePrefix ? new RegExp("^".concat(escapeForRegExp(linePrefix), ' "?(.+?)"?$')) : new RegExp('^"?(.+?)"?$'); + var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; + var matchingPrefix = prefixes.find(function(p) { + return filename.indexOf(p) === 0; + }); + var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); +} +function getSrcFilename(line, srcPrefix) { + return getFilename(line, "---", srcPrefix); +} +function getDstFilename(line, dstPrefix) { + return getFilename(line, "+++", dstPrefix); +} +function parse(diffInput, config) { + if (config === void 0) { + config = {}; + } + var files = []; + var currentFile = null; + var currentBlock = null; + var oldLine = null; + var oldLine2 = null; + var newLine = null; + var possibleOldName = null; + var possibleNewName = null; + var oldFileNameHeader = "--- "; + var newFileNameHeader = "+++ "; + var hunkHeaderPrefix = "@@"; + var oldMode = /^old mode (\d{6})/; + var newMode = /^new mode (\d{6})/; + var deletedFileMode = /^deleted file mode (\d{6})/; + var newFileMode = /^new file mode (\d{6})/; + var copyFrom = /^copy from "?(.+)"?/; + var copyTo = /^copy to "?(.+)"?/; + var renameFrom = /^rename from "?(.+)"?/; + var renameTo = /^rename to "?(.+)"?/; + var similarityIndex = /^similarity index (\d+)%/; + var dissimilarityIndex = /^dissimilarity index (\d+)%/; + var index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + var binaryFiles = /^Binary files (.*) and (.*) differ/; + var binaryDiff = /^GIT binary patch/; + var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + var combinedNewFile = /^new file mode (\d{6})/; + var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + var diffLines2 = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); + function saveBlock() { + if (currentBlock !== null && currentFile !== null) { + currentFile.blocks.push(currentBlock); + currentBlock = null; + } + } + function saveFile() { + if (currentFile !== null) { + if (!currentFile.oldName && possibleOldName !== null) { + currentFile.oldName = possibleOldName; + } + if (!currentFile.newName && possibleNewName !== null) { + currentFile.newName = possibleNewName; + } + if (currentFile.newName) { + files.push(currentFile); + currentFile = null; + } + } + possibleOldName = null; + possibleNewName = null; + } + function startFile() { + saveBlock(); + saveFile(); + currentFile = { + blocks: [], + deletedLines: 0, + addedLines: 0 + }; + } + function startBlock(line) { + saveBlock(); + var values; + if (currentFile !== null) { + if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { + currentFile.isCombined = false; + oldLine = parseInt(values[1], 10); + newLine = parseInt(values[2], 10); + } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { + currentFile.isCombined = true; + oldLine = parseInt(values[1], 10); + oldLine2 = parseInt(values[2], 10); + newLine = parseInt(values[3], 10); + } else { + if (line.startsWith(hunkHeaderPrefix)) { + console.error("Failed to parse lines, starting in 0!"); + } + oldLine = 0; + newLine = 0; + currentFile.isCombined = false; + } + } + currentBlock = { + lines: [], + oldStartLine: oldLine, + oldStartLine2: oldLine2, + newStartLine: newLine, + header: line + }; + } + function createLine(line) { + if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) + return; + var currentLine = { + content: line + }; + var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + if (startsWithAny(line, addedPrefixes)) { + currentFile.addedLines++; + currentLine.type = LineType.INSERT; + currentLine.oldNumber = void 0; + currentLine.newNumber = newLine++; + } else if (startsWithAny(line, deletedPrefixes)) { + currentFile.deletedLines++; + currentLine.type = LineType.DELETE; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = void 0; + } else { + currentLine.type = LineType.CONTEXT; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = newLine++; + } + currentBlock.lines.push(currentLine); + } + function existHunkHeader(line, lineIdx) { + var idx = lineIdx; + while (idx < diffLines2.length - 3) { + if (line.startsWith("diff")) { + return false; + } + if (diffLines2[idx].startsWith(oldFileNameHeader) && diffLines2[idx + 1].startsWith(newFileNameHeader) && diffLines2[idx + 2].startsWith(hunkHeaderPrefix)) { + return true; + } + idx++; + } + return false; + } + diffLines2.forEach(function(line, lineIndex) { + if (!line || line.startsWith("*")) { + return; + } + var values; + var prevLine = diffLines2[lineIndex - 1]; + var nxtLine = diffLines2[lineIndex + 1]; + var afterNxtLine = diffLines2[lineIndex + 2]; + if (line.startsWith("diff --git") || line.startsWith("diff --combined")) { + startFile(); + var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + if (values = gitDiffStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isGitDiff = true; + return; + } + if (line.startsWith("Binary files") && !(currentFile === null || currentFile === void 0 ? void 0 : currentFile.isGitDiff)) { + startFile(); + var unixDiffBinaryStart = /^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/; + if (values = unixDiffBinaryStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isBinary = true; + return; + } + if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { + startFile(); + } + if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { + return; + } + if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { + currentFile.isTooBig = true; + currentFile.addedLines = 0; + currentFile.deletedLines = 0; + currentFile.blocks = []; + currentBlock = null; + var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + startBlock(message); + return; + } + if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { + if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { + currentFile.oldName = values; + currentFile.language = getExtension(currentFile.oldName, currentFile.language); + return; + } + if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { + currentFile.newName = values; + currentFile.language = getExtension(currentFile.newName, currentFile.language); + return; + } + } + if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { + startBlock(line); + return; + } + if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { + createLine(line); + return; + } + var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + if (values = oldMode.exec(line)) { + currentFile.oldMode = values[1]; + } else if (values = newMode.exec(line)) { + currentFile.newMode = values[1]; + } else if (values = deletedFileMode.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } else if (values = newFileMode.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = copyFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isCopy = true; + } else if (values = copyTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isCopy = true; + } else if (values = renameFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isRename = true; + } else if (values = renameTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isRename = true; + } else if (values = binaryFiles.exec(line)) { + currentFile.isBinary = true; + currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); + currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); + startBlock("Binary file"); + } else if (binaryDiff.test(line)) { + currentFile.isBinary = true; + startBlock(line); + } else if (values = similarityIndex.exec(line)) { + currentFile.unchangedPercentage = parseInt(values[1], 10); + } else if (values = dissimilarityIndex.exec(line)) { + currentFile.changedPercentage = parseInt(values[1], 10); + } else if (values = index2.exec(line)) { + currentFile.checksumBefore = values[1]; + currentFile.checksumAfter = values[2]; + values[3] && (currentFile.mode = values[3]); + } else if (values = combinedIndex.exec(line)) { + currentFile.checksumBefore = [values[2], values[3]]; + currentFile.checksumAfter = values[1]; + } else if (values = combinedMode.exec(line)) { + currentFile.oldMode = [values[2], values[3]]; + currentFile.newMode = values[1]; + } else if (values = combinedNewFile.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = combinedDeletedFile.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } + }); + saveBlock(); + saveFile(); + return files; +} + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/file-list-renderer.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/render-utils.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/rematch.js +init_polyfill_buffer(); +function levenshtein(a, b) { + if (a.length === 0) { + return b.length; + } + if (b.length === 0) { + return a.length; + } + var matrix = []; + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + return matrix[b.length][a.length]; +} +function newDistanceFn(str) { + return function(x, y) { + var xValue = str(x).trim(); + var yValue = str(y).trim(); + var lev = levenshtein(xValue, yValue); + return lev / (xValue.length + yValue.length); + }; +} +function newMatcherFn(distance2) { + function findBestMatch(a, b, cache) { + if (cache === void 0) { + cache = /* @__PURE__ */ new Map(); + } + var bestMatchDist = Infinity; + var bestMatch; + for (var i = 0; i < a.length; ++i) { + for (var j = 0; j < b.length; ++j) { + var cacheKey = JSON.stringify([a[i], b[j]]); + var md = void 0; + if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { + md = distance2(a[i], b[j]); + cache.set(cacheKey, md); + } + if (md < bestMatchDist) { + bestMatchDist = md; + bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; + } + } + } + return bestMatch; + } + function group(a, b, level, cache) { + if (level === void 0) { + level = 0; + } + if (cache === void 0) { + cache = /* @__PURE__ */ new Map(); + } + var bm = findBestMatch(a, b, cache); + if (!bm || a.length + b.length < 3) { + return [[a, b]]; + } + var a1 = a.slice(0, bm.indexA); + var b1 = b.slice(0, bm.indexB); + var aMatch = [a[bm.indexA]]; + var bMatch = [b[bm.indexB]]; + var tailA = bm.indexA + 1; + var tailB = bm.indexB + 1; + var a2 = a.slice(tailA); + var b2 = b.slice(tailB); + var group1 = group(a1, b1, level + 1, cache); + var groupMatch = group(aMatch, bMatch, level + 1, cache); + var group2 = group(a2, b2, level + 1, cache); + var result = groupMatch; + if (bm.indexA > 0 || bm.indexB > 0) { + result = group1.concat(result); + } + if (a.length > tailA || b.length > tailB) { + result = result.concat(group2); + } + return result; + } + return group; +} + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/render-utils.js +var __assign = function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var CSSLineClass = { + INSERTS: "d2h-ins", + DELETES: "d2h-del", + CONTEXT: "d2h-cntx", + INFO: "d2h-info", + INSERT_CHANGES: "d2h-ins d2h-change", + DELETE_CHANGES: "d2h-del d2h-change" +}; +var defaultRenderConfig = { + matching: LineMatchingType.NONE, + matchWordsThreshold: 0.25, + maxLineLengthHighlight: 1e4, + diffStyle: DiffStyleType.WORD +}; +var separator = "/"; +var distance = newDistanceFn(function(change) { + return change.value; +}); +var matcher = newMatcherFn(distance); +function isDevNullName(name) { + return name.indexOf("dev/null") !== -1; +} +function removeInsElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); +} +function removeDelElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); +} +function toCSSClass(lineType) { + switch (lineType) { + case LineType.CONTEXT: + return CSSLineClass.CONTEXT; + case LineType.INSERT: + return CSSLineClass.INSERTS; + case LineType.DELETE: + return CSSLineClass.DELETES; + } +} +function prefixLength(isCombined) { + return isCombined ? 2 : 1; +} +function escapeForHtml(str) { + return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); +} +function deconstructLine(line, isCombined, escape) { + if (escape === void 0) { + escape = true; + } + var indexToSplit = prefixLength(isCombined); + return { + prefix: line.substring(0, indexToSplit), + content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) + }; +} +function filenameDiff(file) { + var oldFilename = unifyPath(file.oldName); + var newFilename = unifyPath(file.newName); + if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { + var prefixPaths = []; + var suffixPaths = []; + var oldFilenameParts = oldFilename.split(separator); + var newFilenameParts = newFilename.split(separator); + var oldFilenamePartsSize = oldFilenameParts.length; + var newFilenamePartsSize = newFilenameParts.length; + var i = 0; + var j = oldFilenamePartsSize - 1; + var k = newFilenamePartsSize - 1; + while (i < j && i < k) { + if (oldFilenameParts[i] === newFilenameParts[i]) { + prefixPaths.push(newFilenameParts[i]); + i += 1; + } else { + break; + } + } + while (j > i && k > i) { + if (oldFilenameParts[j] === newFilenameParts[k]) { + suffixPaths.unshift(newFilenameParts[k]); + j -= 1; + k -= 1; + } else { + break; + } + } + var finalPrefix = prefixPaths.join(separator); + var finalSuffix = suffixPaths.join(separator); + var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + if (finalPrefix.length && finalSuffix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } else if (finalPrefix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; + } else if (finalSuffix.length) { + return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } + return oldFilename + " \u2192 " + newFilename; + } else if (!isDevNullName(newFilename)) { + return newFilename; + } else { + return oldFilename; + } +} +function getHtmlId(file) { + return "d2h-".concat(hashCode(filenameDiff(file)).toString().slice(-6)); +} +function getFileIcon(file) { + var templateName = "file-changed"; + if (file.isRename) { + templateName = "file-renamed"; + } else if (file.isCopy) { + templateName = "file-renamed"; + } else if (file.isNew) { + templateName = "file-added"; + } else if (file.isDeleted) { + templateName = "file-deleted"; + } else if (file.newName !== file.oldName) { + templateName = "file-renamed"; + } + return templateName; +} +function diffHighlight(diffLine1, diffLine2, isCombined, config) { + if (config === void 0) { + config = {}; + } + var _a2 = __assign(__assign({}, defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; + var line1 = deconstructLine(diffLine1, isCombined, false); + var line2 = deconstructLine(diffLine2, isCombined, false); + if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { + return { + oldLine: { + prefix: line1.prefix, + content: escapeForHtml(line1.content) + }, + newLine: { + prefix: line2.prefix, + content: escapeForHtml(line2.content) + } + }; + } + var diff2 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); + var changedWords = []; + if (diffStyle === "word" && matching === "words") { + var removed = diff2.filter(function(element2) { + return element2.removed; + }); + var added = diff2.filter(function(element2) { + return element2.added; + }); + var chunks = matcher(added, removed); + chunks.forEach(function(chunk) { + if (chunk[0].length === 1 && chunk[1].length === 1) { + var dist = distance(chunk[0][0], chunk[1][0]); + if (dist < matchWordsThreshold) { + changedWords.push(chunk[0][0]); + changedWords.push(chunk[1][0]); + } + } + }); + } + var highlightedLine = diff2.reduce(function(highlightedLine2, part) { + var elemType = part.added ? "ins" : part.removed ? "del" : null; + var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + var escapedValue = escapeForHtml(part.value); + return elemType !== null ? "".concat(highlightedLine2, "<").concat(elemType).concat(addClass, ">").concat(escapedValue, "") : "".concat(highlightedLine2).concat(escapedValue); + }, ""); + return { + oldLine: { + prefix: line1.prefix, + content: removeInsElements(highlightedLine) + }, + newLine: { + prefix: line2.prefix, + content: removeDelElements(highlightedLine) + } + }; +} + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/file-list-renderer.js +var baseTemplatesPath = "file-summary"; +var iconsBaseTemplatesPath = "icon"; +function render(diffFiles, hoganUtils) { + var files = diffFiles.map(function(file) { + return hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) + }); + }).join("\n"); + return hoganUtils.render(baseTemplatesPath, "wrapper", { + filesNumber: diffFiles.length, + files + }); +} + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/line-by-line-renderer.js +init_polyfill_buffer(); +var __assign2 = function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); +}; +var defaultLineByLineRendererConfig = __assign2(__assign2({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath = "generic"; +var baseTemplatesPath2 = "line-by-line"; +var iconsBaseTemplatesPath2 = "icon"; +var tagsBaseTemplatesPath = "tag"; +var LineByLineRenderer = function() { + function LineByLineRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign2(__assign2({}, defaultLineByLineRendererConfig), config); + } + LineByLineRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); + }; + LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + LineByLineRenderer2.prototype.generateEmptyDiff = function() { + return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-line", + CSSLineClass + }); + }; + LineByLineRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass, + blockHeader: file.isTooBig ? block.header : escapeForHtml(block.header), + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line" + }); + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file, file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + lines += left2; + lines += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + lines += _this.generateSingleLineHtml(file, { + type: CSSLineClass.CONTEXT, + prefix, + content, + oldNumber: line.oldNumber, + newNumber: line.newNumber + }); + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file, file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + lines += left; + lines += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return lines; + }).join("\n"); + }; + LineByLineRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + LineByLineRenderer2.prototype.processChangedLines = function(file, isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign2(__assign2({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign2(__assign2({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(file, preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + LineByLineRenderer2.prototype.generateLineHtml = function(file, oldLine, newLine) { + return { + left: this.generateSingleLineHtml(file, oldLine), + right: this.generateSingleLineHtml(file, newLine) + }; + }; + LineByLineRenderer2.prototype.generateSingleLineHtml = function(file, line) { + if (line === void 0) + return ""; + var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { + oldNumber: line.oldNumber || "", + newNumber: line.newNumber || "" + }); + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: line.type, + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line", + prefix: line.prefix === " " ? " " : line.prefix, + content: line.content, + lineNumber: lineNumberHtml, + line, + file + }); + }; + return LineByLineRenderer2; +}(); +var line_by_line_renderer_default = LineByLineRenderer; + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/side-by-side-renderer.js +init_polyfill_buffer(); +var __assign3 = function() { + __assign3 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign3.apply(this, arguments); +}; +var defaultSideBySideRendererConfig = __assign3(__assign3({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath2 = "generic"; +var baseTemplatesPath3 = "side-by-side"; +var iconsBaseTemplatesPath3 = "icon"; +var tagsBaseTemplatesPath2 = "tag"; +var SideBySideRenderer = function() { + function SideBySideRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign3(__assign3({}, defaultSideBySideRendererConfig), config); + } + SideBySideRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath2, "wrapper", { content: diffsHtml }); + }; + SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + SideBySideRenderer2.prototype.generateEmptyDiff = function() { + return { + right: "", + left: this.hoganUtils.render(genericTemplatesPath2, "empty-diff", { + contentClass: "d2h-code-side-line", + CSSLineClass + }) + }; + }; + SideBySideRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher2 = newMatcherFn(newDistanceFn(function(e) { + return deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var fileHtml = { + left: _this.makeHeaderHtml(block.header, file), + right: _this.makeHeaderHtml("") + }; + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + var _b2 = _this.generateLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.oldNumber + }, { + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.newNumber + }), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + fileHtml.left += left; + fileHtml.right += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return fileHtml; + }).reduce(function(accomulated, html2) { + return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; + }, { left: "", right: "" }); + }; + SideBySideRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + }; + SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { + return this.hoganUtils.render(genericTemplatesPath2, "block-header", { + CSSLineClass, + blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : escapeForHtml(blockHeader), + lineClass: "d2h-code-side-linenumber", + contentClass: "d2h-code-side-line" + }); + }; + SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.oldLine.prefix, + content: diff2.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : __assign3(__assign3({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + prefix: diff2.newLine.prefix, + content: diff2.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : __assign3(__assign3({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleHtml(oldLine), + right: this.generateSingleHtml(newLine) + }; + }; + SideBySideRenderer2.prototype.generateSingleHtml = function(line) { + var lineClass = "d2h-code-side-linenumber"; + var contentClass = "d2h-code-side-line"; + return this.hoganUtils.render(genericTemplatesPath2, "line", { + type: (line === null || line === void 0 ? void 0 : line.type) || "".concat(CSSLineClass.CONTEXT, " d2h-emptyplaceholder"), + lineClass: line !== void 0 ? lineClass : "".concat(lineClass, " d2h-code-side-emptyplaceholder"), + contentClass: line !== void 0 ? contentClass : "".concat(contentClass, " d2h-code-side-emptyplaceholder"), + prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, + content: line === null || line === void 0 ? void 0 : line.content, + lineNumber: line === null || line === void 0 ? void 0 : line.number + }); + }; + return SideBySideRenderer2; +}(); +var side_by_side_renderer_default = SideBySideRenderer; + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/hoganjs-utils.js +init_polyfill_buffer(); +var Hogan3 = __toESM(require_hogan()); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html-templates.js +init_polyfill_buffer(); +var Hogan2 = __toESM(require_hogan()); +var defaultTemplates = {}; +defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
  • '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("addedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("deletedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
  • "); + return t.fl(); +}, partials: { "'); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' Files changed ('); + t.b(t.v(t.f("filesNumber", c, p, 0))); + t.b(")"); + t.b("\n" + i); + t.b(' hide'); + t.b("\n" + i); + t.b(' show'); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
      '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("files", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + if (t.s(t.f("blockHeader", c, p, 1), c, p, 0, 156, 173, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(t2.t(t2.f("blockHeader", c2, p2, 0))); + }); + c.pop(); + } + if (!t.s(t.f("blockHeader", c, p, 1), c, p, 1, 0, 0, "")) { + t.b(" "); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" File without changes"); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(''); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileDiffName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(t.rp(""); + t.b("\n" + i); + t.b('"); + return t.fl(); +}, partials: { ""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("lineNumber", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("prefix", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('  '); + t.b("\n" + i); + } + ; + if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("content", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('
    '); + t.b("\n" + i); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("content", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("diffs", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b(t.v(t.f("oldNumber", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b(t.v(t.f("newNumber", c, p, 0))); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.left", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.right", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('ADDED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('CHANGED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('DELETED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('RENAMED'); + return t.fl(); +}, partials: {}, subs: {} }); + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/hoganjs-utils.js +var __assign4 = function() { + __assign4 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign4.apply(this, arguments); +}; +var HoganJsUtils = function() { + function HoganJsUtils2(_a2) { + var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; + var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { + var _b2; + var name = _a3[0], templateString = _a3[1]; + var compiledTemplate = Hogan3.compile(templateString, { asString: false }); + return __assign4(__assign4({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); + }, {}); + this.preCompiledTemplates = __assign4(__assign4(__assign4({}, defaultTemplates), compiledTemplates), compiledRawTemplates); + } + HoganJsUtils2.compile = function(templateString) { + return Hogan3.compile(templateString, { asString: false }); + }; + HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent2) { + var templateKey = this.templateKey(namespace, view); + try { + var template = this.preCompiledTemplates[templateKey]; + return template.render(params, partials, indent2); + } catch (e) { + throw new Error("Could not find template to render '".concat(templateKey, "'")); + } + }; + HoganJsUtils2.prototype.template = function(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + }; + HoganJsUtils2.prototype.templateKey = function(namespace, view) { + return "".concat(namespace, "-").concat(view); + }; + return HoganJsUtils2; +}(); +var hoganjs_utils_default = HoganJsUtils; + +// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html.js +var __assign5 = function() { + __assign5 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign5.apply(this, arguments); +}; +var defaultDiff2HtmlConfig = __assign5(__assign5(__assign5({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); +function html(diffInput, configuration) { + if (configuration === void 0) { + configuration = {}; + } + var config = __assign5(__assign5({}, defaultDiff2HtmlConfig), configuration); + var diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; + var hoganUtils = new hoganjs_utils_default(config); + var fileList = config.drawFileList ? render(diffJson, hoganUtils) : ""; + var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_default(hoganUtils, config).render(diffJson); + return fileList + diffOutput; +} + +// src/ui/diff/diffView.ts +var import_obsidian17 = require("obsidian"); +var DiffView = class extends import_obsidian17.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.gettingDiff = false; + this.gitRefreshBind = this.refresh.bind(this); + this.gitViewRefreshBind = this.refresh.bind(this); + this.parser = new DOMParser(); + this.navigation = true; + addEventListener("git-refresh", this.gitRefreshBind); + addEventListener("git-view-refresh", this.gitViewRefreshBind); + } + getViewType() { + return DIFF_VIEW_CONFIG.type; + } + getDisplayText() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) != null) { + let fileName = this.state.file.split("/").last(); + if (fileName == null ? void 0 : fileName.endsWith(".md")) + fileName = fileName.slice(0, -3); + return DIFF_VIEW_CONFIG.name + ` (${fileName})`; + } + return DIFF_VIEW_CONFIG.name; + } + getIcon() { + return DIFF_VIEW_CONFIG.icon; + } + async setState(state, result) { + this.state = state; + await this.refresh(); + return; + } + getState() { + return this.state; + } + onClose() { + removeEventListener("git-refresh", this.gitRefreshBind); + removeEventListener("git-view-refresh", this.gitViewRefreshBind); + return super.onClose(); + } + onOpen() { + this.refresh(); + return super.onOpen(); + } + async refresh() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) && !this.gettingDiff && this.plugin.gitManager) { + this.gettingDiff = true; + try { + let diff2 = await this.plugin.gitManager.getDiffString( + this.state.file, + this.state.staged, + this.state.hash + ); + this.contentEl.empty(); + if (!diff2) { + if (this.plugin.gitManager instanceof SimpleGit && await this.plugin.gitManager.isTracked( + this.state.file + )) { + diff2 = [ + `--- ${this.state.file}`, + `+++ ${this.state.file}`, + "" + ].join("\n"); + } else { + const content = await this.app.vault.adapter.read( + this.plugin.gitManager.getVaultPath(this.state.file) + ); + const header = `--- /dev/null ++++ ${this.state.file} +@@ -0,0 +1,${content.split("\n").length} @@`; + diff2 = [ + ...header.split("\n"), + ...content.split("\n").map((line) => `+${line}`) + ].join("\n"); + } + } + const diffEl = this.parser.parseFromString(html(diff2), "text/html").querySelector(".d2h-file-diff"); + this.contentEl.append(diffEl); + } finally { + this.gettingDiff = false; + } + } + } +}; + +// src/ui/history/historyView.ts +init_polyfill_buffer(); +var import_obsidian20 = require("obsidian"); + +// src/ui/history/historyView.svelte +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/animations.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/utils.js +init_polyfill_buffer(); +function noop() { +} +var identity = (x) => x; +function run(fn) { + return fn(); +} +function blank_object() { + return /* @__PURE__ */ Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === "function"; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function"; +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/environment.js +init_polyfill_buffer(); +var is_client = typeof window !== "undefined"; +var now = is_client ? () => window.performance.now() : () => Date.now(); +var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/loop.js +init_polyfill_buffer(); +var tasks = /* @__PURE__ */ new Set(); +function run_tasks(now2) { + tasks.forEach((task) => { + if (!task.c(now2)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); +} +function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise((fulfill) => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/style_manager.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dom.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/globals.js +init_polyfill_buffer(); +var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : ( + // @ts-ignore Node typings have this + global +); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +var ResizeObserverSingleton = class _ResizeObserverSingleton { + /** @param {ResizeObserverOptions} options */ + constructor(options) { + /** + * @private + * @readonly + * @type {WeakMap} + */ + __publicField(this, "_listeners", "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0); + /** + * @private + * @type {ResizeObserver} + */ + __publicField(this, "_observer"); + /** @type {ResizeObserverOptions} */ + __publicField(this, "options"); + this.options = options; + } + /** + * @param {Element} element + * @param {import('./private.js').Listener} listener + * @returns {() => void} + */ + observe(element2, listener) { + this._listeners.set(element2, listener); + this._getObserver().observe(element2, this.options); + return () => { + this._listeners.delete(element2); + this._observer.unobserve(element2); + }; + } + /** + * @private + */ + _getObserver() { + var _a2; + return (_a2 = this._observer) != null ? _a2 : this._observer = new ResizeObserver((entries) => { + var _a3; + for (const entry of entries) { + _ResizeObserverSingleton.entries.set(entry.target, entry); + (_a3 = this._listeners.get(entry.target)) == null ? void 0 : _a3(entry); + } + }); + } +}; +ResizeObserverSingleton.entries = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0; + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dom.js +var is_hydrating = false; +function start_hydrating() { + is_hydrating = true; +} +function end_hydrating() { + is_hydrating = false; +} +function append2(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element("style"); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) + return document; + const root2 = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root2 && /** @type {ShadowRoot} */ + root2.host) { + return ( + /** @type {ShadowRoot} */ + root2 + ); + } + return node.ownerDocument; +} +function append_empty_stylesheet(node) { + const style_element = element("style"); + style_element.textContent = "/* empty */"; + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; +} +function append_stylesheet(node, style) { + append2( + /** @type {Document} */ + node.head || node, + style + ); + return style.sheet; +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + if (node.parentNode) { + node.parentNode.removeChild(node); + } +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(" "); +} +function empty() { + return text(""); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function children(element2) { + return Array.from(element2.childNodes); +} +function set_data(text2, data) { + data = "" + data; + if (text2.data === data) + return; + text2.data = /** @type {string} */ + data; +} +function set_input_value(input, value) { + input.value = value == null ? "" : value; +} +function set_style(node, key2, value, important) { + if (value == null) { + node.style.removeProperty(key2); + } else { + node.style.setProperty(key2, value, important ? "important" : ""); + } +} +function toggle_class(element2, name, toggle) { + element2.classList.toggle(name, !!toggle); +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + return new CustomEvent(type, { detail, bubbles, cancelable }); +} +function get_custom_elements_slots(element2) { + const result = {}; + element2.childNodes.forEach( + /** @param {Element} node */ + (node) => { + result[node.slot || "default"] = true; + } + ); + return result; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/style_manager.js +var managed_styles = /* @__PURE__ */ new Map(); +var active = 0; +function hash(str) { + let hash2 = 5381; + let i = str.length; + while (i--) + hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i); + return hash2 >>> 0; +} +function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; +} +function create_rule(node, a, b, duration, delay2, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = "{\n"; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}} +`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}} +}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ""; + node.style.animation = `${animation ? `${animation}, ` : ""}${name} ${duration}ms linear ${delay2}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || "").split(", "); + const next = previous.filter( + name ? (anim) => anim.indexOf(name) < 0 : (anim) => anim.indexOf("__svelte") === -1 + // remove all Svelte animations + ); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(", "); + active -= deleted; + if (!active) + clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) + return; + managed_styles.forEach((info) => { + const { ownerNode } = info.stylesheet; + if (ownerNode) + detach(ownerNode); + }); + managed_styles.clear(); + }); +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/await_block.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/transitions.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/scheduler.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/lifecycle.js +init_polyfill_buffer(); +var current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error("Function called outside component initialization"); + return current_component; +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} +function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + callbacks.slice().forEach((fn) => fn.call(this, event)); + } +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/scheduler.js +var dirty_components = []; +var binding_callbacks = []; +var render_callbacks = []; +var flush_callbacks = []; +var resolved_promise = /* @__PURE__ */ Promise.resolve(); +var update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +var seen_callbacks = /* @__PURE__ */ new Set(); +var flushidx = 0; +function flush() { + if (flushidx !== 0) { + return; + } + const saved_component = current_component; + do { + try { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + } catch (e) { + dirty_components.length = 0; + flushidx = 0; + throw e; + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +function flush_render_callbacks(fns) { + const filtered = []; + const targets = []; + render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c)); + targets.forEach((c) => c()); + render_callbacks = filtered; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/transitions.js +var promise; +function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? "intro" : "outro"}${kind}`)); +} +var outroing = /* @__PURE__ */ new Set(); +var outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros + // parent group + }; +} +function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; +} +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} +function transition_out(block, local, detach2, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach2) + block.d(1); + callback(); + } + }); + block.o(local); + } else if (callback) { + callback(); + } +} +var null_transition = { duration: 0 }; +function create_bidirectional_transition(node, fn, params, intro) { + const options = { direction: "both" }; + let config = fn(node, params, options); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + let original_inert_value; + function clear_animation() { + if (animation_name) + delete_rule(node, animation_name); + } + function init3(program, duration) { + const d = ( + /** @type {Program['d']} */ + program.b - t + ); + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { + delay: delay2 = 0, + duration = 300, + easing = identity, + tick: tick2 = noop, + css + } = config || null_transition; + const program = { + start: now() + delay2, + b + }; + if (!b) { + program.group = outros; + outros.r += 1; + } + if ("inert" in node) { + if (b) { + if (original_inert_value !== void 0) { + node.inert = original_inert_value; + } + } else { + original_inert_value = /** @type {HTMLElement} */ + node.inert; + node.inert = true; + } + } + if (running_program || pending_program) { + pending_program = program; + } else { + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay2, easing, css); + } + if (b) + tick2(0, 1); + running_program = init3(program, duration); + add_render_callback(() => dispatch(node, b, "start")); + loop((now2) => { + if (pending_program && now2 > pending_program.start) { + running_program = init3(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, "start"); + if (css) { + clear_animation(); + animation_name = create_rule( + node, + t, + running_program.b, + running_program.duration, + 0, + easing, + config.css + ); + } + } + if (running_program) { + if (now2 >= running_program.end) { + tick2(t = running_program.b, 1 - t); + dispatch(node, running_program.b, "end"); + if (!pending_program) { + if (running_program.b) { + clear_animation(); + } else { + if (!--running_program.group.r) + run_all(running_program.group.c); + } + } + running_program = null; + } else if (now2 >= running_program.start) { + const p = now2 - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick2(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait().then(() => { + const opts = { direction: b ? "in" : "out" }; + config = config(opts); + go(b); + }); + } else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/each.js +init_polyfill_buffer(); +function ensure_array_like(array_like_or_iterator) { + return (array_like_or_iterator == null ? void 0 : array_like_or_iterator.length) !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/spread.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ssr.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/boolean_attributes.js +init_polyfill_buffer(); +var _boolean_attributes = ( + /** @type {const} */ + [ + "allowfullscreen", + "allowpaymentrequest", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "hidden", + "inert", + "ismap", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected" + ] +); +var boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/utils/names.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/Component.js +init_polyfill_buffer(); +function create_component(block) { + block && block.c(); +} +function mount_component(component, target, anchor) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } else { + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + flush_render_callbacks($$.after_update); + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[i / 31 | 0] |= 1 << i % 31; +} +function init2(component, options, instance10, create_fragment10, not_equal, props, append_styles2, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles2 && append_styles2($$.root); + let ready = false; + $$.ctx = instance10 ? instance10(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) : []; + $$.update(); + ready = true; + run_all($$.before_update); + $$.fragment = create_fragment10 ? create_fragment10($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + start_hydrating(); + const nodes = children(options.target); + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } else { + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor); + end_hydrating(); + flush(); + } + set_current_component(parent_component); +} +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + constructor($$componentCtor, $$slots, use_shadow_dom) { + super(); + __publicField(this, "$$componentCtor"); + __publicField(this, "$$slots"); + __publicField(this, "$$component"); + __publicField(this, "$$connected", false); + __publicField(this, "$$data", {}); + __publicField(this, "$$reflecting", false); + /** @type {Record} */ + __publicField(this, "$$props_definition", {}); + /** @type {Record} */ + __publicField(this, "$$listeners", {}); + /** @type {Map} */ + __publicField(this, "$$listener_unsubscribe_fns", /* @__PURE__ */ new Map()); + this.$$componentCtor = $$componentCtor; + this.$$slots = $$slots; + if (use_shadow_dom) { + this.attachShadow({ mode: "open" }); + } + } + addEventListener(type, listener, options) { + this.$$listeners[type] = this.$$listeners[type] || []; + this.$$listeners[type].push(listener); + if (this.$$component) { + const unsub = this.$$component.$on(type, listener); + this.$$listener_unsubscribe_fns.set(listener, unsub); + } + super.addEventListener(type, listener, options); + } + removeEventListener(type, listener, options) { + super.removeEventListener(type, listener, options); + if (this.$$component) { + const unsub = this.$$listener_unsubscribe_fns.get(listener); + if (unsub) { + unsub(); + this.$$listener_unsubscribe_fns.delete(listener); + } + } + } + async connectedCallback() { + this.$$connected = true; + if (!this.$$component) { + let create_slot = function(name) { + return () => { + let node; + const obj = { + c: function create() { + node = document.createElement("slot"); + if (name !== "default") { + node.setAttribute("name", name); + } + }, + /** + * @param {HTMLElement} target + * @param {HTMLElement} [anchor] + */ + m: function mount(target, anchor) { + insert(target, node, anchor); + }, + d: function destroy(detaching) { + if (detaching) { + detach(node); + } + } + }; + return obj; + }; + }; + await Promise.resolve(); + if (!this.$$connected) { + return; + } + const $$slots = {}; + const existing_slots = get_custom_elements_slots(this); + for (const name of this.$$slots) { + if (name in existing_slots) { + $$slots[name] = [create_slot(name)]; + } + } + for (const attribute of this.attributes) { + const name = this.$$get_prop_name(attribute.name); + if (!(name in this.$$data)) { + this.$$data[name] = get_custom_element_value( + name, + attribute.value, + this.$$props_definition, + "toProp" + ); + } + } + this.$$component = new this.$$componentCtor({ + target: this.shadowRoot || this, + props: { + ...this.$$data, + $$slots, + $$scope: { + ctx: [] + } + } + }); + for (const type in this.$$listeners) { + for (const listener of this.$$listeners[type]) { + const unsub = this.$$component.$on(type, listener); + this.$$listener_unsubscribe_fns.set(listener, unsub); + } + } + this.$$listeners = {}; + } + } + // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte + // and setting attributes through setAttribute etc, this is helpful + attributeChangedCallback(attr2, _oldValue, newValue) { + var _a2; + if (this.$$reflecting) + return; + attr2 = this.$$get_prop_name(attr2); + this.$$data[attr2] = get_custom_element_value( + attr2, + newValue, + this.$$props_definition, + "toProp" + ); + (_a2 = this.$$component) == null ? void 0 : _a2.$set({ [attr2]: this.$$data[attr2] }); + } + disconnectedCallback() { + this.$$connected = false; + Promise.resolve().then(() => { + if (!this.$$connected) { + this.$$component.$destroy(); + this.$$component = void 0; + } + }); + } + $$get_prop_name(attribute_name) { + return Object.keys(this.$$props_definition).find( + (key2) => this.$$props_definition[key2].attribute === attribute_name || !this.$$props_definition[key2].attribute && key2.toLowerCase() === attribute_name + ) || attribute_name; + } + }; +} +function get_custom_element_value(prop, value, props_definition, transform) { + var _a2; + const type = (_a2 = props_definition[prop]) == null ? void 0 : _a2.type; + value = type === "Boolean" && typeof value !== "boolean" ? value != null : value; + if (!transform || !props_definition[prop]) { + return value; + } else if (transform === "toAttribute") { + switch (type) { + case "Object": + case "Array": + return value == null ? null : JSON.stringify(value); + case "Boolean": + return value ? "" : null; + case "Number": + return value == null ? null : value; + default: + return value; + } + } else { + switch (type) { + case "Object": + case "Array": + return value && JSON.parse(value); + case "Boolean": + return value; + case "Number": + return value != null ? +value : value; + default: + return value; + } + } +} +var SvelteComponent = class { + constructor() { + /** + * ### PRIVATE API + * + * Do not use, may change at any time + * + * @type {any} + */ + __publicField(this, "$$"); + /** + * ### PRIVATE API + * + * Do not use, may change at any time + * + * @type {any} + */ + __publicField(this, "$$set"); + } + /** @returns {void} */ + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + /** + * @template {Extract} K + * @param {K} type + * @param {((e: Events[K]) => void) | null | undefined} callback + * @returns {() => void} + */ + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) + callbacks.splice(index2, 1); + }; + } + /** + * @param {Partial} props + * @returns {void} + */ + $set(props) { + if (this.$$set && !is_empty(props)) { + this.$$.skip_bound = true; + this.$$set(props); + this.$$.skip_bound = false; + } + } +}; + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dev.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/version.js +init_polyfill_buffer(); +var PUBLIC_VERSION = "4"; + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/disclose-version/index.js +init_polyfill_buffer(); +if (typeof window !== "undefined") + (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(PUBLIC_VERSION); + +// node_modules/.pnpm/tslib@2.6.0/node_modules/tslib/tslib.es6.mjs +init_polyfill_buffer(); +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +// src/ui/history/historyView.svelte +var import_obsidian19 = require("obsidian"); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/index.js +init_polyfill_buffer(); + +// src/ui/history/components/logComponent.svelte +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/transition/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/easing/index.js +init_polyfill_buffer(); +function cubicOut(t) { + const f = t - 1; + return f * f * f + 1; +} + +// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/transition/index.js +function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const primary_property = axis === "y" ? "height" : "width"; + const primary_property_value = parseFloat(style[primary_property]); + const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"]; + const capitalized_secondary_properties = secondary_properties.map( + (e) => `${e[0].toUpperCase()}${e.slice(1)}` + ); + const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]); + const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]); + const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]); + const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]); + const border_width_start_value = parseFloat( + style[`border${capitalized_secondary_properties[0]}Width`] + ); + const border_width_end_value = parseFloat( + style[`border${capitalized_secondary_properties[1]}Width`] + ); + return { + delay: delay2, + duration, + easing, + css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;` + }; +} + +// src/ui/history/components/logFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian18 = require("obsidian"); +function add_css(target) { + append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); +} +function create_if_block(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[7](div); + if (!mounted) { + dispose = [ + listen(div, "auxclick", stop_propagation( + /*open*/ + ctx[4] + )), + listen(div, "click", stop_propagation( + /*open*/ + ctx[4] + )) + ]; + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[7](null); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment(ctx) { + let main; + let div3; + let div0; + let t0_value = getDisplayPath( + /*diff*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div2; + let div1; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*diff*/ + ctx[0].vault_path + ) + ); + let t2; + let span; + let t3_value = ( + /*diff*/ + ctx[0].status + "" + ); + let t3; + let span_data_type_value; + let div3_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block(ctx); + return { + c() { + main = element("main"); + div3 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div2 = element("div"); + div1 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + span = element("span"); + t3 = text(t3_value); + attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div1, "class", "buttons"); + attr(span, "class", "type"); + attr(span, "data-type", span_data_type_value = /*diff*/ + ctx[0].status); + attr(div2, "class", "git-tools"); + attr(div3, "class", "tree-item-self is-clickable nav-file-title"); + attr( + div3, + "aria-label-position", + /*side*/ + ctx[3] + ); + attr(div3, "aria-label", div3_aria_label_value = /*diff*/ + ctx[0].vault_path); + attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div3); + append2(div3, div0); + append2(div0, t0); + append2(div3, t1); + append2(div3, div2); + append2(div2, div1); + if (if_block) + if_block.m(div1, null); + append2(div2, t2); + append2(div2, span); + append2(span, t3); + if (!mounted) { + dispose = [ + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[5] + )), + listen(main, "auxclick", stop_propagation( + /*showDiff*/ + ctx[5] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[6] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & /*diff*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*diff*/ + ctx2[0].vault_path + ) + "")) + set_data(t0, t0_value); + if (dirty & /*view, diff*/ + 3) + show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*diff*/ + ctx2[0].vault_path + ); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block(ctx2); + if_block.c(); + if_block.m(div1, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*diff*/ + 1 && t3_value !== (t3_value = /*diff*/ + ctx2[0].status + "")) + set_data(t3, t3_value); + if (dirty & /*diff*/ + 1 && span_data_type_value !== (span_data_type_value = /*diff*/ + ctx2[0].status)) { + attr(span, "data-type", span_data_type_value); + } + if (dirty & /*side*/ + 8) { + attr( + div3, + "aria-label-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*diff*/ + 1 && div3_aria_label_value !== (div3_aria_label_value = /*diff*/ + ctx2[0].vault_path)) { + attr(div3, "aria-label", div3_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) + if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function instance($$self, $$props, $$invalidate) { + let side; + let { diff: diff2 } = $$props; + let { view } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian18.setIcon)(b, b.getAttr("data-icon"))), 0); + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(diff2.vault_path); + if (file instanceof import_obsidian18.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + file: diff2.path, + staged: false, + hash: diff2.hash + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("diff" in $$props2) + $$invalidate(0, diff2 = $$props2.diff); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: + $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [diff2, view, buttons, side, open, showDiff, focus_handler, div_binding]; +} +var LogFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance, create_fragment, safe_not_equal, { diff: 0, view: 1 }, add_css); + } +}; +var logFileComponent_default = LogFileComponent; + +// src/ui/history/components/logTreeComponent.svelte +init_polyfill_buffer(); +function add_css2(target) { + append_styles(target, "svelte-1lnl15d", "main.svelte-1lnl15d .nav-folder-title-content.svelte-1lnl15d{display:flex;align-items:center}"); +} +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + return child_ctx; +} +function create_else_block(ctx) { + let div4; + let div3; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2_value = ( + /*entity*/ + ctx[8].title + "" + ); + let t2; + let div3_aria_label_value; + let t3; + let t4; + let current; + let mounted; + let dispose; + function click_handler() { + return ( + /*click_handler*/ + ctx[7]( + /*entity*/ + ctx[8] + ) + ); + } + let if_block = !/*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] && create_if_block_1(ctx); + return { + c() { + div4 = element("div"); + div3 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + div1.innerHTML = ``; + t1 = space(); + div2 = element("div"); + t2 = text(t2_value); + t3 = space(); + if (if_block) + if_block.c(); + t4 = space(); + attr(div0, "data-icon", "folder"); + set_style(div0, "padding-right", "5px"); + set_style(div0, "display", "flex"); + attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + attr(div2, "class", "tree-item-inner nav-folder-title-content svelte-1lnl15d"); + attr(div3, "class", "tree-item-self is-clickable nav-folder-title"); + attr( + div3, + "aria-label-position", + /*side*/ + ctx[5] + ); + attr(div3, "aria-label", div3_aria_label_value = /*entity*/ + ctx[8].vaultPath); + attr(div4, "class", "tree-item nav-folder"); + toggle_class( + div4, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + }, + m(target, anchor) { + insert(target, div4, anchor); + append2(div4, div3); + append2(div3, div0); + append2(div3, t0); + append2(div3, div1); + append2(div3, t1); + append2(div3, div2); + append2(div2, t2); + append2(div4, t3); + if (if_block) + if_block.m(div4, null); + append2(div4, t4); + current = true; + if (!mounted) { + dispose = listen(div3, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 17) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + } + if ((!current || dirty & /*hierarchy*/ + 1) && t2_value !== (t2_value = /*entity*/ + ctx[8].title + "")) + set_data(t2, t2_value); + if (!current || dirty & /*side*/ + 32) { + attr( + div3, + "aria-label-position", + /*side*/ + ctx[5] + ); + } + if (!current || dirty & /*hierarchy*/ + 1 && div3_aria_label_value !== (div3_aria_label_value = /*entity*/ + ctx[8].vaultPath)) { + attr(div3, "aria-label", div3_aria_label_value); + } + if (!/*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ]) { + if (if_block) { + if_block.p(ctx, dirty); + if (dirty & /*closed, hierarchy*/ + 17) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_1(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div4, t4); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (!current || dirty & /*closed, hierarchy*/ + 17) { + toggle_class( + div4, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div4); + } + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block2(ctx) { + let div; + let logfilecomponent; + let t; + let current; + logfilecomponent = new logFileComponent_default({ + props: { + diff: ( + /*entity*/ + ctx[8].data + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + div = element("div"); + create_component(logfilecomponent.$$.fragment); + t = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(logfilecomponent, div, null); + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + const logfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + logfilecomponent_changes.diff = /*entity*/ + ctx2[8].data; + if (dirty & /*view*/ + 4) + logfilecomponent_changes.view = /*view*/ + ctx2[2]; + logfilecomponent.$set(logfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(logfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(logfilecomponent); + } + }; +} +function create_if_block_1(ctx) { + let div; + let logtreecomponent; + let div_transition; + let current; + logtreecomponent = new LogTreeComponent({ + props: { + hierarchy: ( + /*entity*/ + ctx[8] + ), + plugin: ( + /*plugin*/ + ctx[1] + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + div = element("div"); + create_component(logtreecomponent.$$.fragment); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(logtreecomponent, div, null); + current = true; + }, + p(ctx2, dirty) { + const logtreecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + logtreecomponent_changes.hierarchy = /*entity*/ + ctx2[8]; + if (dirty & /*plugin*/ + 2) + logtreecomponent_changes.plugin = /*plugin*/ + ctx2[1]; + if (dirty & /*view*/ + 4) + logtreecomponent_changes.view = /*view*/ + ctx2[2]; + logtreecomponent.$set(logtreecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(logtreecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(logtreecomponent.$$.fragment, local); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(logtreecomponent); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_each_block(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block2, create_else_block]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*entity*/ + ctx2[8].data + ) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(if_block_anchor); + } + if_blocks[current_block_type_index].d(detaching); + } + }; +} +function create_fragment2(ctx) { + let main; + let current; + let each_value = ensure_array_like( + /*hierarchy*/ + ctx[0].children + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-1lnl15d"); + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx[3] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(main, null); + } + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & /*hierarchy, view, closed, plugin, side, fold*/ + 119) { + each_value = ensure_array_like( + /*hierarchy*/ + ctx2[0].children + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (!current || dirty & /*topLevel*/ + 8) { + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx2[3] + ); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + destroy_each(each_blocks, detaching); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let side; + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + function fold(item) { + $$invalidate(4, closed[item.title] = !closed[item.title], closed); + } + const click_handler = (entity) => fold(entity); + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) + $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) + $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(2, view = $$props2.view); + if ("topLevel" in $$props2) + $$invalidate(3, topLevel = $$props2.topLevel); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 4) { + $: + $$invalidate(5, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [hierarchy, plugin, view, topLevel, closed, side, fold, click_handler]; +} +var LogTreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2( + this, + options, + instance2, + create_fragment2, + safe_not_equal, + { + hierarchy: 0, + plugin: 1, + view: 2, + topLevel: 3 + }, + add_css2 + ); + } +}; +var logTreeComponent_default = LogTreeComponent; + +// src/ui/history/components/logComponent.svelte +function add_css3(target) { + append_styles(target, "svelte-1t6egnt", ".git-ref.svelte-1t6egnt{color:var(--text-accent)}"); +} +function get_each_context2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + return child_ctx; +} +function create_if_block_2(ctx) { + let div; + let t_value = ( + /*log*/ + ctx[0].refs.join(", ") + "" + ); + let t; + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "git-ref svelte-1t6egnt"); + }, + m(target, anchor) { + insert(target, div, anchor); + append2(div, t); + }, + p(ctx2, dirty) { + if (dirty & /*log*/ + 1 && t_value !== (t_value = /*log*/ + ctx2[0].refs.join(", ") + "")) + set_data(t, t_value); + }, + d(detaching) { + if (detaching) { + detach(div); + } + } + }; +} +function create_if_block3(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_12, create_else_block2]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[2] + ) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block2(ctx) { + let each_1_anchor; + let current; + let each_value = ensure_array_like( + /*log*/ + ctx[0].diff.files + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty & /*view, log*/ + 3) { + each_value = ensure_array_like( + /*log*/ + ctx2[0].diff.files + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context2(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_12(ctx) { + let logtreecomponent; + let current; + logtreecomponent = new logTreeComponent_default({ + props: { + hierarchy: ( + /*logsHierarchy*/ + ctx[6] + ), + plugin: ( + /*plugin*/ + ctx[3] + ), + view: ( + /*view*/ + ctx[1] + ), + topLevel: true + } + }); + return { + c() { + create_component(logtreecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logtreecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logtreecomponent_changes = {}; + if (dirty & /*logsHierarchy*/ + 64) + logtreecomponent_changes.hierarchy = /*logsHierarchy*/ + ctx2[6]; + if (dirty & /*plugin*/ + 8) + logtreecomponent_changes.plugin = /*plugin*/ + ctx2[3]; + if (dirty & /*view*/ + 2) + logtreecomponent_changes.view = /*view*/ + ctx2[1]; + logtreecomponent.$set(logtreecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(logtreecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logtreecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logtreecomponent, detaching); + } + }; +} +function create_each_block2(ctx) { + let logfilecomponent; + let current; + logfilecomponent = new logFileComponent_default({ + props: { + view: ( + /*view*/ + ctx[1] + ), + diff: ( + /*file*/ + ctx[8] + ) + } + }); + return { + c() { + create_component(logfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logfilecomponent_changes = {}; + if (dirty & /*view*/ + 2) + logfilecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty & /*log*/ + 1) + logfilecomponent_changes.diff = /*file*/ + ctx2[8]; + logfilecomponent.$set(logfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(logfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logfilecomponent, detaching); + } + }; +} +function create_fragment3(ctx) { + let main; + let div4; + let div3; + let div0; + let t0; + let div2; + let t1; + let div1; + let t2_value = ( + /*log*/ + ctx[0].message + "" + ); + let t2; + let div1_aria_label_value; + let t3; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*log*/ + ctx[0].refs.length > 0 && create_if_block_2(ctx) + ); + let if_block1 = !/*isCollapsed*/ + ctx[4] && create_if_block3(ctx); + return { + c() { + main = element("main"); + div4 = element("div"); + div3 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div2 = element("div"); + if (if_block0) + if_block0.c(); + t1 = space(); + div1 = element("div"); + t2 = text(t2_value); + t3 = space(); + if (if_block1) + if_block1.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx[4] + ); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(div1, "aria-label", div1_aria_label_value = /*log*/ + ctx[0].message); + attr( + div1, + "aria-label-position", + /*side*/ + ctx[5] + ); + attr(div3, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div4, "class", "tree-item nav-folder"); + toggle_class( + div4, + "is-collapsed", + /*isCollapsed*/ + ctx[4] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div4); + append2(div4, div3); + append2(div3, div0); + append2(div3, t0); + append2(div3, div2); + if (if_block0) + if_block0.m(div2, null); + append2(div2, t1); + append2(div2, div1); + append2(div1, t2); + append2(div4, t3); + if (if_block1) + if_block1.m(div4, null); + current = true; + if (!mounted) { + dispose = listen( + div3, + "click", + /*click_handler*/ + ctx[7] + ); + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (!current || dirty & /*isCollapsed*/ + 16) { + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx2[4] + ); + } + if ( + /*log*/ + ctx2[0].refs.length > 0 + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_2(ctx2); + if_block0.c(); + if_block0.m(div2, t1); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if ((!current || dirty & /*log*/ + 1) && t2_value !== (t2_value = /*log*/ + ctx2[0].message + "")) + set_data(t2, t2_value); + if (!current || dirty & /*log*/ + 1 && div1_aria_label_value !== (div1_aria_label_value = /*log*/ + ctx2[0].message)) { + attr(div1, "aria-label", div1_aria_label_value); + } + if (!current || dirty & /*side*/ + 32) { + attr( + div1, + "aria-label-position", + /*side*/ + ctx2[5] + ); + } + if (!/*isCollapsed*/ + ctx2[4]) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty & /*isCollapsed*/ + 16) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block3(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div4, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty & /*isCollapsed*/ + 16) { + toggle_class( + div4, + "is-collapsed", + /*isCollapsed*/ + ctx2[4] + ); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block0) + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + dispose(); + } + }; +} +function instance3($$self, $$props, $$invalidate) { + let logsHierarchy; + let side; + let { log: log2 } = $$props; + let { view } = $$props; + let { showTree } = $$props; + let { plugin } = $$props; + let isCollapsed = true; + const click_handler = () => $$invalidate(4, isCollapsed = !isCollapsed); + $$self.$$set = ($$props2) => { + if ("log" in $$props2) + $$invalidate(0, log2 = $$props2.log); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("showTree" in $$props2) + $$invalidate(2, showTree = $$props2.showTree); + if ("plugin" in $$props2) + $$invalidate(3, plugin = $$props2.plugin); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*plugin, log*/ + 9) { + $: + $$invalidate(6, logsHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(log2.diff.files) + }); + } + if ($$self.$$.dirty & /*view*/ + 2) { + $: + $$invalidate(5, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [log2, view, showTree, plugin, isCollapsed, side, logsHierarchy, click_handler]; +} +var LogComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance3, create_fragment3, safe_not_equal, { log: 0, view: 1, showTree: 2, plugin: 3 }, add_css3); + } +}; +var logComponent_default = LogComponent; + +// src/ui/history/historyView.svelte +function get_each_context3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[11] = list[i]; + return child_ctx; +} +function create_if_block4(ctx) { + let div1; + let div0; + let current; + let each_value = ensure_array_like( + /*logs*/ + ctx[6] + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + div1 = element("div"); + div0 = element("div"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(div0, "class", "tree-item-children nav-folder-children"); + attr(div1, "class", "tree-item nav-folder mod-root"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append2(div1, div0); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(div0, null); + } + } + current = true; + }, + p(ctx2, dirty) { + if (dirty & /*view, showTree, logs, plugin*/ + 71) { + each_value = ensure_array_like( + /*logs*/ + ctx2[6] + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context3(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block3(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(div0, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div1); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_each_block3(ctx) { + let logcomponent; + let current; + logcomponent = new logComponent_default({ + props: { + view: ( + /*view*/ + ctx[1] + ), + showTree: ( + /*showTree*/ + ctx[2] + ), + log: ( + /*log*/ + ctx[11] + ), + plugin: ( + /*plugin*/ + ctx[0] + ) + } + }); + return { + c() { + create_component(logcomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logcomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logcomponent_changes = {}; + if (dirty & /*view*/ + 2) + logcomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty & /*showTree*/ + 4) + logcomponent_changes.showTree = /*showTree*/ + ctx2[2]; + if (dirty & /*logs*/ + 64) + logcomponent_changes.log = /*log*/ + ctx2[11]; + if (dirty & /*plugin*/ + 1) + logcomponent_changes.plugin = /*plugin*/ + ctx2[0]; + logcomponent.$set(logcomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(logcomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logcomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logcomponent, detaching); + } + }; +} +function create_fragment4(ctx) { + let main; + let div3; + let div2; + let div0; + let t0; + let div1; + let t1; + let div4; + let current; + let mounted; + let dispose; + let if_block = ( + /*logs*/ + ctx[6] && create_if_block4(ctx) + ); + return { + c() { + main = element("main"); + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div4 = element("div"); + if (if_block) + if_block.c(); + attr(div0, "id", "layoutChange"); + attr(div0, "class", "clickable-icon nav-action-button"); + attr(div0, "aria-label", "Change Layout"); + attr(div1, "id", "refresh"); + attr(div1, "class", "clickable-icon nav-action-button"); + attr(div1, "data-icon", "refresh-cw"); + attr(div1, "aria-label", "Refresh"); + set_style(div1, "margin", "1px"); + toggle_class( + div1, + "loading", + /*loading*/ + ctx[4] + ); + attr(div2, "class", "nav-buttons-container"); + attr(div3, "class", "nav-header"); + attr(div4, "class", "nav-files-container"); + set_style(div4, "position", "relative"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div3); + append2(div3, div2); + append2(div2, div0); + ctx[7](div0); + append2(div2, t0); + append2(div2, div1); + ctx[9](div1); + append2(main, t1); + append2(main, div4); + if (if_block) + if_block.m(div4, null); + current = true; + if (!mounted) { + dispose = [ + listen( + div0, + "click", + /*click_handler*/ + ctx[8] + ), + listen(div1, "click", triggerRefresh) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (!current || dirty & /*loading*/ + 16) { + toggle_class( + div1, + "loading", + /*loading*/ + ctx2[4] + ); + } + if ( + /*logs*/ + ctx2[6] + ) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & /*logs*/ + 64) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block4(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div4, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + ctx[7](null); + ctx[9](null); + if (if_block) + if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function triggerRefresh() { + dispatchEvent(new CustomEvent("git-refresh")); +} +function instance4($$self, $$props, $$invalidate) { + let { plugin } = $$props; + let { view } = $$props; + let loading; + let buttons = []; + let logs; + let showTree = plugin.settings.treeStructure; + let layoutBtn; + addEventListener("git-view-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout( + () => { + buttons.forEach((btn) => (0, import_obsidian19.setIcon)(btn, btn.getAttr("data-icon"), 16)); + (0, import_obsidian19.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + }, + 0 + ); + }); + onDestroy(() => { + removeEventListener("git-view-refresh", refresh); + }); + function refresh() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(4, loading = true); + const isSimpleGit = plugin.gitManager instanceof SimpleGit; + $$invalidate(6, logs = yield plugin.gitManager.log(void 0, false, isSimpleGit ? 50 : 10)); + $$invalidate(4, loading = false); + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(3, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(2, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(5, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) + $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*layoutBtn, showTree*/ + 12) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian19.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + } + } + } + }; + return [ + plugin, + view, + showTree, + layoutBtn, + loading, + buttons, + logs, + div0_binding, + click_handler, + div1_binding + ]; +} +var HistoryView = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance4, create_fragment4, safe_not_equal, { plugin: 0, view: 1 }); + } +}; +var historyView_default = HistoryView; + +// src/ui/history/historyView.ts +var HistoryView2 = class extends import_obsidian20.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return HISTORY_VIEW_CONFIG.type; + } + getDisplayText() { + return HISTORY_VIEW_CONFIG.name; + } + getIcon() { + return HISTORY_VIEW_CONFIG.icon; + } + onClose() { + return super.onClose(); + } + onOpen() { + this._view = new historyView_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/ui/modals/branchModal.ts +init_polyfill_buffer(); +var import_obsidian21 = require("obsidian"); +var BranchModal = class extends import_obsidian21.FuzzySuggestModal { + constructor(branches) { + super(app); + this.branches = branches; + this.setPlaceholder("Select branch to checkout"); + } + getItems() { + return this.branches; + } + getItemText(item) { + return item; + } + onChooseItem(item, evt) { + this.resolve(item); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + async onClose() { + await new Promise((resolve) => setTimeout(resolve, 10)); + if (this.resolve) + this.resolve(void 0); + } +}; + +// src/ui/modals/ignoreModal.ts +init_polyfill_buffer(); +var import_obsidian22 = require("obsidian"); +var IgnoreModal = class extends import_obsidian22.Modal { + constructor(app2, content) { + super(app2); + this.content = content; + this.resolve = null; + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText("Edit .gitignore"); + const div = contentEl.createDiv(); + const text2 = div.createEl("textarea", { + text: this.content, + cls: ["obsidian-git-textarea"], + attr: { rows: 10, cols: 30, wrap: "off" } + }); + div.createEl("button", { + cls: ["mod-cta", "obsidian-git-center-button"], + text: "Save" + }).addEventListener("click", async () => { + this.resolve(text2.value); + this.close(); + }); + } + onClose() { + const { contentEl } = this; + this.resolve(void 0); + contentEl.empty(); + } +}; + +// src/ui/sourceControl/sourceControl.ts +init_polyfill_buffer(); +var import_obsidian29 = require("obsidian"); + +// src/ui/sourceControl/sourceControl.svelte +init_polyfill_buffer(); +var import_obsidian28 = require("obsidian"); + +// src/ui/modals/discardModal.ts +init_polyfill_buffer(); +var import_obsidian23 = require("obsidian"); +var DiscardModal = class extends import_obsidian23.Modal { + constructor(app2, deletion, filename) { + super(app2); + this.deletion = deletion; + this.filename = filename; + this.resolve = null; + } + myOpen() { + this.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText(`${this.deletion ? "Delete" : "Discard"} this file?`); + contentEl.createEl("p").setText( + `Do you really want to ${this.deletion ? "delete" : "discard the changes of"} "${this.filename}"` + ); + const div = contentEl.createDiv({ cls: "modal-button-container" }); + const discard = div.createEl("button", { + cls: "mod-warning", + text: this.deletion ? "Delete" : "Discard" + }); + discard.addEventListener("click", async () => { + if (this.resolve) + this.resolve(true); + this.close(); + }); + discard.addEventListener("keypress", async () => { + if (this.resolve) + this.resolve(true); + this.close(); + }); + const close = div.createEl("button", { + text: "Cancel" + }); + close.addEventListener("click", () => { + if (this.resolve) + this.resolve(false); + return this.close(); + }); + close.addEventListener("keypress", () => { + if (this.resolve) + this.resolve(false); + return this.close(); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +}; + +// src/ui/sourceControl/components/fileComponent.svelte +init_polyfill_buffer(); +var import_obsidian25 = require("obsidian"); + +// node_modules/.pnpm/obsidian-community-lib@2.0.2_@codemirror+state@6.2.1_@codemirror+view@6.14.0/node_modules/obsidian-community-lib/dist/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/obsidian-community-lib@2.0.2_@codemirror+state@6.2.1_@codemirror+view@6.14.0/node_modules/obsidian-community-lib/dist/utils.js +init_polyfill_buffer(); +var feather = __toESM(require_feather()); +var import_obsidian24 = require("obsidian"); +function hoverPreview(event, view, to) { + const targetEl = event.target; + app.workspace.trigger("hover-link", { + event, + source: view.getViewType(), + hoverParent: view, + targetEl, + linktext: to + }); +} + +// src/ui/sourceControl/components/fileComponent.svelte +function add_css4(target) { + append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); +} +function create_if_block5(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[11](div); + if (!mounted) { + dispose = [ + listen(div, "auxclick", stop_propagation( + /*open*/ + ctx[5] + )), + listen(div, "click", stop_propagation( + /*open*/ + ctx[5] + )) + ]; + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[11](null); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment5(ctx) { + let main; + let div6; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div5; + let div3; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx[0].vault_path + ) + ); + let t2; + let div1; + let t3; + let div2; + let t4; + let div4; + let t5_value = ( + /*change*/ + ctx[0].working_dir + "" + ); + let t5; + let div4_data_type_value; + let div6_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block5(ctx); + return { + c() { + main = element("main"); + div6 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div5 = element("div"); + div3 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div2 = element("div"); + t4 = space(); + div4 = element("div"); + t5 = text(t5_value); + attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div1, "data-icon", "undo"); + attr(div1, "aria-label", "Discard"); + attr(div1, "class", "clickable-icon"); + attr(div2, "data-icon", "plus"); + attr(div2, "aria-label", "Stage"); + attr(div2, "class", "clickable-icon"); + attr(div3, "class", "buttons"); + attr(div4, "class", "type"); + attr(div4, "data-type", div4_data_type_value = /*change*/ + ctx[0].working_dir); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-file-title"); + attr( + div6, + "aria-label-position", + /*side*/ + ctx[3] + ); + attr(div6, "aria-label", div6_aria_label_value = /*change*/ + ctx[0].vault_path); + attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div6); + append2(div6, div0); + append2(div0, t0); + append2(div6, t1); + append2(div6, div5); + append2(div5, div3); + if (if_block) + if_block.m(div3, null); + append2(div3, t2); + append2(div3, div1); + ctx[12](div1); + append2(div3, t3); + append2(div3, div2); + ctx[13](div2); + append2(div5, t4); + append2(div5, div4); + append2(div4, t5); + if (!mounted) { + dispose = [ + listen(div1, "click", stop_propagation( + /*discard*/ + ctx[8] + )), + listen(div2, "click", stop_propagation( + /*stage*/ + ctx[6] + )), + listen( + main, + "mouseover", + /*hover*/ + ctx[4] + ), + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[7] + )), + listen(main, "auxclick", stop_propagation( + /*showDiff*/ + ctx[7] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[10] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) + set_data(t0, t0_value); + if (dirty & /*view, change*/ + 3) + show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx2[0].vault_path + ); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block5(ctx2); + if_block.c(); + if_block.m(div3, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*change*/ + 1 && t5_value !== (t5_value = /*change*/ + ctx2[0].working_dir + "")) + set_data(t5, t5_value); + if (dirty & /*change*/ + 1 && div4_data_type_value !== (div4_data_type_value = /*change*/ + ctx2[0].working_dir)) { + attr(div4, "data-type", div4_data_type_value); + } + if (dirty & /*side*/ + 8) { + attr( + div6, + "aria-label-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*change*/ + 1 && div6_aria_label_value !== (div6_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div6, "aria-label", div6_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) + if_block.d(); + ctx[12](null); + ctx[13](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance5($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian25.setIcon)(b, b.getAttr("data-icon"))), 0); + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + console.log(event); + if (file instanceof import_obsidian25.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function stage() { + manager.stage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: false } + }); + } + function discard() { + const deleteFile = change.working_dir == "U"; + new DiscardModal(view.app, deleteFile, change.vault_path).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + if (deleteFile) { + view.app.vault.adapter.remove(change.vault_path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } else { + manager.discard(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(9, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: + $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + stage, + showDiff, + discard, + manager, + focus_handler, + div_binding, + div1_binding, + div2_binding + ]; +} +var FileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance5, create_fragment5, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css4); + } +}; +var fileComponent_default = FileComponent; + +// src/ui/sourceControl/components/pulledFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian26 = require("obsidian"); +function add_css5(target) { + append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); +} +function create_fragment6(ctx) { + let main; + let div2; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div1; + let span; + let t2_value = ( + /*change*/ + ctx[0].working_dir + "" + ); + let t2; + let span_data_type_value; + let div2_aria_label_value; + let mounted; + let dispose; + return { + c() { + main = element("main"); + div2 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div1 = element("div"); + span = element("span"); + t2 = text(t2_value); + attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(span, "class", "type"); + attr(span, "data-type", span_data_type_value = /*change*/ + ctx[0].working_dir); + attr(div1, "class", "git-tools"); + attr(div2, "class", "tree-item-self is-clickable nav-file-title"); + attr( + div2, + "aria-label-position", + /*side*/ + ctx[1] + ); + attr(div2, "aria-label", div2_aria_label_value = /*change*/ + ctx[0].vault_path); + attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div2); + append2(div2, div0); + append2(div0, t0); + append2(div2, t1); + append2(div2, div1); + append2(div1, span); + append2(span, t2); + if (!mounted) { + dispose = [ + listen( + main, + "mouseover", + /*hover*/ + ctx[2] + ), + listen(main, "click", stop_propagation( + /*open*/ + ctx[3] + )), + listen(main, "auxclick", stop_propagation( + /*open*/ + ctx[3] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[5] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) + set_data(t0, t0_value); + if (dirty & /*change*/ + 1 && t2_value !== (t2_value = /*change*/ + ctx2[0].working_dir + "")) + set_data(t2, t2_value); + if (dirty & /*change*/ + 1 && span_data_type_value !== (span_data_type_value = /*change*/ + ctx2[0].working_dir)) { + attr(span, "data-type", span_data_type_value); + } + if (dirty & /*side*/ + 2) { + attr( + div2, + "aria-label-position", + /*side*/ + ctx2[1] + ); + } + if (dirty & /*change*/ + 1 && div2_aria_label_value !== (div2_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div2, "aria-label", div2_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + mounted = false; + run_all(dispose); + } + }; +} +function instance6($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian26.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(4, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 16) { + $: + $$invalidate(1, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [change, side, hover, open, view, focus_handler]; +} +var PulledFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance6, create_fragment6, safe_not_equal, { change: 0, view: 4 }, add_css5); + } +}; +var pulledFileComponent_default = PulledFileComponent; + +// src/ui/sourceControl/components/stagedFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian27 = require("obsidian"); +function add_css6(target) { + append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); +} +function create_if_block6(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[10](div); + if (!mounted) { + dispose = listen(div, "click", stop_propagation( + /*open*/ + ctx[5] + )); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[10](null); + mounted = false; + dispose(); + } + }; +} +function create_fragment7(ctx) { + let main; + let div5; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div4; + let div2; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx[0].vault_path + ) + ); + let t2; + let div1; + let t3; + let div3; + let t4_value = ( + /*change*/ + ctx[0].index + "" + ); + let t4; + let div3_data_type_value; + let div5_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block6(ctx); + return { + c() { + main = element("main"); + div5 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div4 = element("div"); + div2 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div3 = element("div"); + t4 = text(t4_value); + attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div1, "data-icon", "minus"); + attr(div1, "aria-label", "Unstage"); + attr(div1, "class", "clickable-icon"); + attr(div2, "class", "buttons"); + attr(div3, "class", "type"); + attr(div3, "data-type", div3_data_type_value = /*change*/ + ctx[0].index); + attr(div4, "class", "git-tools"); + attr(div5, "class", "tree-item-self is-clickable nav-file-title"); + attr( + div5, + "aria-label-position", + /*side*/ + ctx[3] + ); + attr(div5, "aria-label", div5_aria_label_value = /*change*/ + ctx[0].vault_path); + attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div5); + append2(div5, div0); + append2(div0, t0); + append2(div5, t1); + append2(div5, div4); + append2(div4, div2); + if (if_block) + if_block.m(div2, null); + append2(div2, t2); + append2(div2, div1); + ctx[11](div1); + append2(div4, t3); + append2(div4, div3); + append2(div3, t4); + if (!mounted) { + dispose = [ + listen(div1, "click", stop_propagation( + /*unstage*/ + ctx[7] + )), + listen( + main, + "mouseover", + /*hover*/ + ctx[4] + ), + listen( + main, + "focus", + /*focus_handler*/ + ctx[9] + ), + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[6] + )), + listen(main, "auxclick", stop_propagation( + /*showDiff*/ + ctx[6] + )) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) + set_data(t0, t0_value); + if (dirty & /*view, change*/ + 3) + show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx2[0].vault_path + ); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block6(ctx2); + if_block.c(); + if_block.m(div2, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*change*/ + 1 && t4_value !== (t4_value = /*change*/ + ctx2[0].index + "")) + set_data(t4, t4_value); + if (dirty & /*change*/ + 1 && div3_data_type_value !== (div3_data_type_value = /*change*/ + ctx2[0].index)) { + attr(div3, "data-type", div3_data_type_value); + } + if (dirty & /*side*/ + 8) { + attr( + div5, + "aria-label-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*change*/ + 1 && div5_aria_label_value !== (div5_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div5, "aria-label", div5_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) + if_block.d(); + ctx[11](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance7($$self, $$props, $$invalidate) { + let formattedPath; + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian27.setIcon)(b, b.getAttr("data-icon"), 16)), 0); + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian27.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: true } + }); + } + function unstage() { + manager.unstage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(8, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*change*/ + 1) { + $: + formattedPath = change.vault_path; + } + if ($$self.$$.dirty & /*view*/ + 2) { + $: + $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + showDiff, + unstage, + manager, + focus_handler, + div_binding, + div1_binding + ]; +} +var StagedFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance7, create_fragment7, safe_not_equal, { change: 0, view: 1, manager: 8 }, add_css6); + } +}; +var stagedFileComponent_default = StagedFileComponent; + +// src/ui/sourceControl/components/treeComponent.svelte +init_polyfill_buffer(); +function add_css7(target) { + append_styles(target, "svelte-1lnl15d", "main.svelte-1lnl15d .nav-folder-title-content.svelte-1lnl15d{display:flex;align-items:center}"); +} +function get_each_context4(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[15] = list[i]; + return child_ctx; +} +function create_else_block3(ctx) { + let div7; + let div6; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2_value = ( + /*entity*/ + ctx[15].title + "" + ); + let t2; + let t3; + let div5; + let div4; + let t4; + let div3; + let div6_aria_label_value; + let t5; + let t6; + let current; + let mounted; + let dispose; + function select_block_type_2(ctx2, dirty) { + if ( + /*fileType*/ + ctx2[3] == 0 /* staged */ + ) + return create_if_block_5; + return create_else_block_1; + } + let current_block_type = select_block_type_2(ctx, -1); + let if_block0 = current_block_type(ctx); + let if_block1 = !/*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] && create_if_block_4(ctx); + function click_handler_3() { + return ( + /*click_handler_3*/ + ctx[14]( + /*entity*/ + ctx[15] + ) + ); + } + return { + c() { + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + div1.innerHTML = ``; + t1 = space(); + div2 = element("div"); + t2 = text(t2_value); + t3 = space(); + div5 = element("div"); + div4 = element("div"); + if_block0.c(); + t4 = space(); + div3 = element("div"); + t5 = space(); + if (if_block1) + if_block1.c(); + t6 = space(); + attr(div0, "data-icon", "folder"); + set_style(div0, "padding-right", "5px"); + set_style(div0, "display", "flex"); + attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + attr(div2, "class", "tree-item-inner nav-folder-title-content svelte-1lnl15d"); + set_style(div3, "width", "11px"); + attr(div4, "class", "buttons"); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title"); + attr( + div6, + "aria-label-position", + /*side*/ + ctx[6] + ); + attr(div6, "aria-label", div6_aria_label_value = /*entity*/ + ctx[15].vaultPath); + attr(div7, "class", "tree-item nav-folder"); + toggle_class( + div7, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + }, + m(target, anchor) { + insert(target, div7, anchor); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t1); + append2(div6, div2); + append2(div2, t2); + append2(div6, t3); + append2(div6, div5); + append2(div5, div4); + if_block0.m(div4, null); + append2(div4, t4); + append2(div4, div3); + append2(div7, t5); + if (if_block1) + if_block1.m(div7, null); + append2(div7, t6); + current = true; + if (!mounted) { + dispose = listen(div7, "click", click_handler_3); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 33) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + } + if ((!current || dirty & /*hierarchy*/ + 1) && t2_value !== (t2_value = /*entity*/ + ctx[15].title + "")) + set_data(t2, t2_value); + if (current_block_type === (current_block_type = select_block_type_2(ctx, dirty)) && if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); + if (if_block0) { + if_block0.c(); + if_block0.m(div4, t4); + } + } + if (!current || dirty & /*side*/ + 64) { + attr( + div6, + "aria-label-position", + /*side*/ + ctx[6] + ); + } + if (!current || dirty & /*hierarchy*/ + 1 && div6_aria_label_value !== (div6_aria_label_value = /*entity*/ + ctx[15].vaultPath)) { + attr(div6, "aria-label", div6_aria_label_value); + } + if (!/*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ]) { + if (if_block1) { + if_block1.p(ctx, dirty); + if (dirty & /*closed, hierarchy*/ + 33) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_4(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div7, t6); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty & /*closed, hierarchy*/ + 33) { + toggle_class( + div7, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div7); + } + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block7(ctx) { + let div; + let current_block_type_index; + let if_block; + let t; + let current; + const if_block_creators = [create_if_block_13, create_if_block_22, create_if_block_3]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if ( + /*fileType*/ + ctx2[3] == 0 /* staged */ + ) + return 0; + if ( + /*fileType*/ + ctx2[3] == 1 /* changed */ + ) + return 1; + if ( + /*fileType*/ + ctx2[3] == 2 /* pulled */ + ) + return 2; + return -1; + } + if (~(current_block_type_index = select_block_type_1(ctx, -1))) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + return { + c() { + div = element("div"); + if (if_block) + if_block.c(); + t = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + if (~current_block_type_index) { + if_blocks[current_block_type_index].m(div, null); + } + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } + } else { + if (if_block) { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + } + if (~current_block_type_index) { + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, t); + } else { + if_block = null; + } + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if (~current_block_type_index) { + if_blocks[current_block_type_index].d(); + } + } + }; +} +function create_else_block_1(ctx) { + let div0; + let t; + let div1; + let mounted; + let dispose; + function click_handler_1() { + return ( + /*click_handler_1*/ + ctx[12]( + /*entity*/ + ctx[15] + ) + ); + } + function click_handler_2() { + return ( + /*click_handler_2*/ + ctx[13]( + /*entity*/ + ctx[15] + ) + ); + } + return { + c() { + div0 = element("div"); + div0.innerHTML = ``; + t = space(); + div1 = element("div"); + div1.innerHTML = ``; + attr(div0, "data-icon", "undo"); + attr(div0, "aria-label", "Discard"); + attr(div0, "class", "clickable-icon"); + attr(div1, "data-icon", "plus"); + attr(div1, "aria-label", "Stage"); + attr(div1, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div0, anchor); + insert(target, t, anchor); + insert(target, div1, anchor); + if (!mounted) { + dispose = [ + listen(div0, "click", stop_propagation(click_handler_1)), + listen(div1, "click", stop_propagation(click_handler_2)) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) { + detach(div0); + detach(t); + detach(div1); + } + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_5(ctx) { + let div; + let mounted; + let dispose; + function click_handler() { + return ( + /*click_handler*/ + ctx[11]( + /*entity*/ + ctx[15] + ) + ); + } + return { + c() { + div = element("div"); + div.innerHTML = ``; + attr(div, "data-icon", "minus"); + attr(div, "aria-label", "Unstage"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen(div, "click", stop_propagation(click_handler)); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) { + detach(div); + } + mounted = false; + dispose(); + } + }; +} +function create_if_block_4(ctx) { + let div; + let treecomponent; + let div_transition; + let current; + treecomponent = new TreeComponent({ + props: { + hierarchy: ( + /*entity*/ + ctx[15] + ), + plugin: ( + /*plugin*/ + ctx[1] + ), + view: ( + /*view*/ + ctx[2] + ), + fileType: ( + /*fileType*/ + ctx[3] + ) + } + }); + return { + c() { + div = element("div"); + create_component(treecomponent.$$.fragment); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(treecomponent, div, null); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + treecomponent_changes.hierarchy = /*entity*/ + ctx2[15]; + if (dirty & /*plugin*/ + 2) + treecomponent_changes.plugin = /*plugin*/ + ctx2[1]; + if (dirty & /*view*/ + 4) + treecomponent_changes.view = /*view*/ + ctx2[2]; + if (dirty & /*fileType*/ + 8) + treecomponent_changes.fileType = /*fileType*/ + ctx2[3]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(treecomponent); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_if_block_3(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[15].data + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + pulledfilecomponent_changes.change = /*entity*/ + ctx2[15].data; + if (dirty & /*view*/ + 4) + pulledfilecomponent_changes.view = /*view*/ + ctx2[2]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_if_block_22(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[15].data + ), + manager: ( + /*plugin*/ + ctx[1].gitManager + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + filecomponent_changes.change = /*entity*/ + ctx2[15].data; + if (dirty & /*plugin*/ + 2) + filecomponent_changes.manager = /*plugin*/ + ctx2[1].gitManager; + if (dirty & /*view*/ + 4) + filecomponent_changes.view = /*view*/ + ctx2[2]; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_13(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[15].data + ), + manager: ( + /*plugin*/ + ctx[1].gitManager + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) + stagedfilecomponent_changes.change = /*entity*/ + ctx2[15].data; + if (dirty & /*plugin*/ + 2) + stagedfilecomponent_changes.manager = /*plugin*/ + ctx2[1].gitManager; + if (dirty & /*view*/ + 4) + stagedfilecomponent_changes.view = /*view*/ + ctx2[2]; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_each_block4(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block7, create_else_block3]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*entity*/ + ctx2[15].data + ) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(if_block_anchor); + } + if_blocks[current_block_type_index].d(detaching); + } + }; +} +function create_fragment8(ctx) { + let main; + let current; + let each_value = ensure_array_like( + /*hierarchy*/ + ctx[0].children + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block4(get_each_context4(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-1lnl15d"); + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx[4] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(main, null); + } + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & /*hierarchy, plugin, view, fileType, FileType, closed, fold, side, unstage, stage, discard*/ + 2031) { + each_value = ensure_array_like( + /*hierarchy*/ + ctx2[0].children + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context4(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block4(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (!current || dirty & /*topLevel*/ + 16) { + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx2[4] + ); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + destroy_each(each_blocks, detaching); + } + }; +} +function instance8($$self, $$props, $$invalidate) { + let side; + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { fileType } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + function stage(path2) { + plugin.gitManager.stageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function unstage(path2) { + plugin.gitManager.unstageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function discard(item) { + new DiscardModal(view.app, false, item.vaultPath).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.gitManager.discardAll({ + dir: item.path, + status: plugin.cachedStatus + }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + }); + } + function fold(item) { + $$invalidate(5, closed[item.title] = !closed[item.title], closed); + } + const click_handler = (entity) => unstage(entity.path); + const click_handler_1 = (entity) => discard(entity); + const click_handler_2 = (entity) => stage(entity.path); + const click_handler_3 = (entity) => fold(entity); + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) + $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) + $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(2, view = $$props2.view); + if ("fileType" in $$props2) + $$invalidate(3, fileType = $$props2.fileType); + if ("topLevel" in $$props2) + $$invalidate(4, topLevel = $$props2.topLevel); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 4) { + $: + $$invalidate(6, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + hierarchy, + plugin, + view, + fileType, + topLevel, + closed, + side, + stage, + unstage, + discard, + fold, + click_handler, + click_handler_1, + click_handler_2, + click_handler_3 + ]; +} +var TreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2( + this, + options, + instance8, + create_fragment8, + safe_not_equal, + { + hierarchy: 0, + plugin: 1, + view: 2, + fileType: 3, + topLevel: 4 + }, + add_css7 + ); + } +}; +var treeComponent_default = TreeComponent; + +// src/ui/sourceControl/sourceControl.svelte +function add_css8(target) { + append_styles(target, "svelte-48bivb", `.commit-msg-input.svelte-48bivb.svelte-48bivb{width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field)}.git-commit-msg.svelte-48bivb.svelte-48bivb{position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto}main.svelte-48bivb .git-tools .files-count.svelte-48bivb{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}.git-commit-msg-clear-button.svelte-48bivb.svelte-48bivb{position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out}.git-commit-msg-clear-button.svelte-48bivb.svelte-48bivb:after{content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}`); +} +function get_each_context5(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[40] = list[i]; + return child_ctx; +} +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[40] = list[i]; + return child_ctx; +} +function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[45] = list[i]; + return child_ctx; +} +function create_if_block_8(ctx) { + let div; + let div_aria_label_value; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "class", "git-commit-msg-clear-button svelte-48bivb"); + attr(div, "aria-label", div_aria_label_value = "Clear"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen( + div, + "click", + /*click_handler_1*/ + ctx[33] + ); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + mounted = false; + dispose(); + } + }; +} +function create_if_block8(ctx) { + let div18; + let div17; + let div7; + let div6; + let div0; + let t0; + let div1; + let t2; + let div5; + let div3; + let div2; + let t3; + let div4; + let t4_value = ( + /*status*/ + ctx[6].staged.length + "" + ); + let t4; + let t5; + let t6; + let div16; + let div15; + let div8; + let t7; + let div9; + let t9; + let div14; + let div12; + let div10; + let t10; + let div11; + let t11; + let div13; + let t12_value = ( + /*status*/ + ctx[6].changed.length + "" + ); + let t12; + let t13; + let t14; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*stagedOpen*/ + ctx[13] && create_if_block_6(ctx) + ); + let if_block1 = ( + /*changesOpen*/ + ctx[12] && create_if_block_42(ctx) + ); + let if_block2 = ( + /*lastPulledFiles*/ + ctx[7].length > 0 && create_if_block_14(ctx) + ); + return { + c() { + div18 = element("div"); + div17 = element("div"); + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Staged Changes"; + t2 = space(); + div5 = element("div"); + div3 = element("div"); + div2 = element("div"); + div2.innerHTML = ``; + t3 = space(); + div4 = element("div"); + t4 = text(t4_value); + t5 = space(); + if (if_block0) + if_block0.c(); + t6 = space(); + div16 = element("div"); + div15 = element("div"); + div8 = element("div"); + div8.innerHTML = ``; + t7 = space(); + div9 = element("div"); + div9.textContent = "Changes"; + t9 = space(); + div14 = element("div"); + div12 = element("div"); + div10 = element("div"); + div10.innerHTML = ``; + t10 = space(); + div11 = element("div"); + div11.innerHTML = ``; + t11 = space(); + div13 = element("div"); + t12 = text(t12_value); + t13 = space(); + if (if_block1) + if_block1.c(); + t14 = space(); + if (if_block2) + if_block2.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx[13]); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(div2, "data-icon", "minus"); + attr(div2, "aria-label", "Unstage"); + attr(div2, "class", "clickable-icon"); + attr(div3, "class", "buttons"); + attr(div4, "class", "files-count svelte-48bivb"); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div7, "class", "staged tree-item nav-folder"); + toggle_class(div7, "is-collapsed", !/*stagedOpen*/ + ctx[13]); + attr(div8, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx[12]); + attr(div9, "class", "tree-item-inner nav-folder-title-content"); + attr(div10, "data-icon", "undo"); + attr(div10, "aria-label", "Discard"); + attr(div10, "class", "clickable-icon"); + attr(div11, "data-icon", "plus"); + attr(div11, "aria-label", "Stage"); + attr(div11, "class", "clickable-icon"); + attr(div12, "class", "buttons"); + attr(div13, "class", "files-count svelte-48bivb"); + attr(div14, "class", "git-tools"); + attr(div15, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div16, "class", "changes nav-folder"); + toggle_class(div16, "is-collapsed", !/*changesOpen*/ + ctx[12]); + attr(div17, "class", "tree-item-children nav-folder-children"); + attr(div18, "class", "tree-item nav-folder mod-root"); + }, + m(target, anchor) { + insert(target, div18, anchor); + append2(div18, div17); + append2(div17, div7); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t2); + append2(div6, div5); + append2(div5, div3); + append2(div3, div2); + ctx[34](div2); + append2(div5, t3); + append2(div5, div4); + append2(div4, t4); + append2(div7, t5); + if (if_block0) + if_block0.m(div7, null); + append2(div17, t6); + append2(div17, div16); + append2(div16, div15); + append2(div15, div8); + append2(div15, t7); + append2(div15, div9); + append2(div15, t9); + append2(div15, div14); + append2(div14, div12); + append2(div12, div10); + append2(div12, t10); + append2(div12, div11); + ctx[36](div11); + append2(div14, t11); + append2(div14, div13); + append2(div13, t12); + append2(div16, t13); + if (if_block1) + if_block1.m(div16, null); + append2(div17, t14); + if (if_block2) + if_block2.m(div17, null); + current = true; + if (!mounted) { + dispose = [ + listen(div2, "click", stop_propagation( + /*unstageAll*/ + ctx[19] + )), + listen( + div6, + "click", + /*click_handler_2*/ + ctx[35] + ), + listen(div10, "click", stop_propagation( + /*discard*/ + ctx[22] + )), + listen(div11, "click", stop_propagation( + /*stageAll*/ + ctx[18] + )), + listen( + div15, + "click", + /*click_handler_3*/ + ctx[37] + ) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (!current || dirty[0] & /*stagedOpen*/ + 8192) { + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx2[13]); + } + if ((!current || dirty[0] & /*status*/ + 64) && t4_value !== (t4_value = /*status*/ + ctx2[6].staged.length + "")) + set_data(t4, t4_value); + if ( + /*stagedOpen*/ + ctx2[13] + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + if (dirty[0] & /*stagedOpen*/ + 8192) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_6(ctx2); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(div7, null); + } + } else if (if_block0) { + group_outros(); + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*stagedOpen*/ + 8192) { + toggle_class(div7, "is-collapsed", !/*stagedOpen*/ + ctx2[13]); + } + if (!current || dirty[0] & /*changesOpen*/ + 4096) { + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx2[12]); + } + if ((!current || dirty[0] & /*status*/ + 64) && t12_value !== (t12_value = /*status*/ + ctx2[6].changed.length + "")) + set_data(t12, t12_value); + if ( + /*changesOpen*/ + ctx2[12] + ) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & /*changesOpen*/ + 4096) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_42(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div16, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*changesOpen*/ + 4096) { + toggle_class(div16, "is-collapsed", !/*changesOpen*/ + ctx2[12]); + } + if ( + /*lastPulledFiles*/ + ctx2[7].length > 0 + ) { + if (if_block2) { + if_block2.p(ctx2, dirty); + if (dirty[0] & /*lastPulledFiles*/ + 128) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_14(ctx2); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(div17, null); + } + } else if (if_block2) { + group_outros(); + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block0); + transition_in(if_block1); + transition_in(if_block2); + current = true; + }, + o(local) { + transition_out(if_block0); + transition_out(if_block1); + transition_out(if_block2); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div18); + } + ctx[34](null); + if (if_block0) + if_block0.d(); + ctx[36](null); + if (if_block1) + if_block1.d(); + if (if_block2) + if_block2.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_6(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_7, create_else_block_2]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block_2(ctx) { + let each_1_anchor; + let current; + let each_value_2 = ensure_array_like( + /*status*/ + ctx[6].staged + ); + let each_blocks = []; + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*status, view, plugin*/ + 67) { + each_value_2 = ensure_array_like( + /*status*/ + ctx2[6].staged + ); + let i; + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx2, each_value_2, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_2.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_2.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_7(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*stagedHierarchy*/ + ctx[10] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 0 /* staged */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*stagedHierarchy*/ + 1024) + treecomponent_changes.hierarchy = /*stagedHierarchy*/ + ctx2[10]; + if (dirty[0] & /*plugin*/ + 1) + treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) + treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_2(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ( + /*stagedFile*/ + ctx[45] + ), + view: ( + /*view*/ + ctx[1] + ), + manager: ( + /*plugin*/ + ctx[0].gitManager + ) + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty[0] & /*status*/ + 64) + stagedfilecomponent_changes.change = /*stagedFile*/ + ctx2[45]; + if (dirty[0] & /*view*/ + 2) + stagedfilecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty[0] & /*plugin*/ + 1) + stagedfilecomponent_changes.manager = /*plugin*/ + ctx2[0].gitManager; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_if_block_42(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_52, create_else_block_12]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) + return 0; + return 1; + } + current_block_type_index = select_block_type_1(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block_12(ctx) { + let each_1_anchor; + let current; + let each_value_1 = ensure_array_like( + /*status*/ + ctx[6].changed + ); + let each_blocks = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*status, view, plugin*/ + 67) { + each_value_1 = ensure_array_like( + /*status*/ + ctx2[6].changed + ); + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_52(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*changeHierarchy*/ + ctx[9] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 1 /* changed */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*changeHierarchy*/ + 512) + treecomponent_changes.hierarchy = /*changeHierarchy*/ + ctx2[9]; + if (dirty[0] & /*plugin*/ + 1) + treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) + treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_1(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ( + /*change*/ + ctx[40] + ), + view: ( + /*view*/ + ctx[1] + ), + manager: ( + /*plugin*/ + ctx[0].gitManager + ) + } + }); + filecomponent.$on("git-refresh", triggerRefresh2); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty[0] & /*status*/ + 64) + filecomponent_changes.change = /*change*/ + ctx2[40]; + if (dirty[0] & /*view*/ + 2) + filecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty[0] & /*plugin*/ + 1) + filecomponent_changes.manager = /*plugin*/ + ctx2[0].gitManager; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_14(ctx) { + let div3; + let div2; + let div0; + let t0; + let div1; + let t2; + let span; + let t3_value = ( + /*lastPulledFiles*/ + ctx[7].length + "" + ); + let t3; + let t4; + let current; + let mounted; + let dispose; + let if_block = ( + /*lastPulledFilesOpen*/ + ctx[14] && create_if_block_23(ctx) + ); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Recently Pulled Files"; + t2 = space(); + span = element("span"); + t3 = text(t3_value); + t4 = space(); + if (if_block) + if_block.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(span, "class", "tree-item-flair"); + attr(div2, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div3, "class", "pulled nav-folder"); + toggle_class(div3, "is-collapsed", !/*lastPulledFilesOpen*/ + ctx[14]); + }, + m(target, anchor) { + insert(target, div3, anchor); + append2(div3, div2); + append2(div2, div0); + append2(div2, t0); + append2(div2, div1); + append2(div2, t2); + append2(div2, span); + append2(span, t3); + append2(div3, t4); + if (if_block) + if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen( + div2, + "click", + /*click_handler_4*/ + ctx[38] + ); + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & /*lastPulledFiles*/ + 128) && t3_value !== (t3_value = /*lastPulledFiles*/ + ctx2[7].length + "")) + set_data(t3, t3_value); + if ( + /*lastPulledFilesOpen*/ + ctx2[14] + ) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty[0] & /*lastPulledFilesOpen*/ + 16384) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_23(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*lastPulledFilesOpen*/ + 16384) { + toggle_class(div3, "is-collapsed", !/*lastPulledFilesOpen*/ + ctx2[14]); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div3); + } + if (if_block) + if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block_23(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_32, create_else_block4]; + const if_blocks = []; + function select_block_type_2(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) + return 0; + return 1; + } + current_block_type_index = select_block_type_2(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_2(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) + return; + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block4(ctx) { + let each_1_anchor; + let current; + let each_value = ensure_array_like( + /*lastPulledFiles*/ + ctx[7] + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block5(get_each_context5(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*lastPulledFiles, view*/ + 130) { + each_value = ensure_array_like( + /*lastPulledFiles*/ + ctx2[7] + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context5(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block5(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_32(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*lastPulledFilesHierarchy*/ + ctx[11] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 2 /* pulled */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*lastPulledFilesHierarchy*/ + 2048) + treecomponent_changes.hierarchy = /*lastPulledFilesHierarchy*/ + ctx2[11]; + if (dirty[0] & /*plugin*/ + 1) + treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) + treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block5(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ( + /*change*/ + ctx[40] + ), + view: ( + /*view*/ + ctx[1] + ) + } + }); + pulledfilecomponent.$on("git-refresh", triggerRefresh2); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty[0] & /*lastPulledFiles*/ + 128) + pulledfilecomponent_changes.change = /*change*/ + ctx2[40]; + if (dirty[0] & /*view*/ + 2) + pulledfilecomponent_changes.view = /*view*/ + ctx2[1]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_fragment9(ctx) { + let main; + let div9; + let div8; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2; + let div3; + let t3; + let div4; + let t4; + let div5; + let t5; + let div6; + let t6; + let div7; + let t7; + let div10; + let textarea; + let t8; + let t9; + let div11; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*commitMessage*/ + ctx[2] && create_if_block_8(ctx) + ); + let if_block1 = ( + /*status*/ + ctx[6] && /*stagedHierarchy*/ + ctx[10] && /*changeHierarchy*/ + ctx[9] && create_if_block8(ctx) + ); + return { + c() { + main = element("main"); + div9 = element("div"); + div8 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div2 = element("div"); + t2 = space(); + div3 = element("div"); + t3 = space(); + div4 = element("div"); + t4 = space(); + div5 = element("div"); + t5 = space(); + div6 = element("div"); + t6 = space(); + div7 = element("div"); + t7 = space(); + div10 = element("div"); + textarea = element("textarea"); + t8 = space(); + if (if_block0) + if_block0.c(); + t9 = space(); + div11 = element("div"); + if (if_block1) + if_block1.c(); + attr(div0, "id", "backup-btn"); + attr(div0, "data-icon", "arrow-up-circle"); + attr(div0, "class", "clickable-icon nav-action-button"); + attr(div0, "aria-label", "Backup"); + attr(div1, "id", "commit-btn"); + attr(div1, "data-icon", "check"); + attr(div1, "class", "clickable-icon nav-action-button"); + attr(div1, "aria-label", "Commit"); + attr(div2, "id", "stage-all"); + attr(div2, "class", "clickable-icon nav-action-button"); + attr(div2, "data-icon", "plus-circle"); + attr(div2, "aria-label", "Stage all"); + attr(div3, "id", "unstage-all"); + attr(div3, "class", "clickable-icon nav-action-button"); + attr(div3, "data-icon", "minus-circle"); + attr(div3, "aria-label", "Unstage all"); + attr(div4, "id", "push"); + attr(div4, "class", "clickable-icon nav-action-button"); + attr(div4, "data-icon", "upload"); + attr(div4, "aria-label", "Push"); + attr(div5, "id", "pull"); + attr(div5, "class", "clickable-icon nav-action-button"); + attr(div5, "data-icon", "download"); + attr(div5, "aria-label", "Pull"); + attr(div6, "id", "layoutChange"); + attr(div6, "class", "clickable-icon nav-action-button"); + attr(div6, "aria-label", "Change Layout"); + attr(div7, "id", "refresh"); + attr(div7, "class", "clickable-icon nav-action-button"); + attr(div7, "data-icon", "refresh-cw"); + attr(div7, "aria-label", "Refresh"); + set_style(div7, "margin", "1px"); + toggle_class( + div7, + "loading", + /*loading*/ + ctx[5] + ); + attr(div8, "class", "nav-buttons-container"); + attr(div9, "class", "nav-header"); + attr( + textarea, + "rows", + /*rows*/ + ctx[15] + ); + attr(textarea, "class", "commit-msg-input svelte-48bivb"); + attr(textarea, "spellcheck", "true"); + attr(textarea, "placeholder", "Commit Message"); + attr(div10, "class", "git-commit-msg svelte-48bivb"); + attr(div11, "class", "nav-files-container"); + set_style(div11, "position", "relative"); + attr(main, "class", "svelte-48bivb"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div9); + append2(div9, div8); + append2(div8, div0); + ctx[23](div0); + append2(div8, t0); + append2(div8, div1); + ctx[24](div1); + append2(div8, t1); + append2(div8, div2); + ctx[25](div2); + append2(div8, t2); + append2(div8, div3); + ctx[26](div3); + append2(div8, t3); + append2(div8, div4); + ctx[27](div4); + append2(div8, t4); + append2(div8, div5); + ctx[28](div5); + append2(div8, t5); + append2(div8, div6); + ctx[29](div6); + append2(div8, t6); + append2(div8, div7); + ctx[31](div7); + append2(main, t7); + append2(main, div10); + append2(div10, textarea); + set_input_value( + textarea, + /*commitMessage*/ + ctx[2] + ); + append2(div10, t8); + if (if_block0) + if_block0.m(div10, null); + append2(main, t9); + append2(main, div11); + if (if_block1) + if_block1.m(div11, null); + current = true; + if (!mounted) { + dispose = [ + listen( + div0, + "click", + /*backup*/ + ctx[17] + ), + listen( + div1, + "click", + /*commit*/ + ctx[16] + ), + listen( + div2, + "click", + /*stageAll*/ + ctx[18] + ), + listen( + div3, + "click", + /*unstageAll*/ + ctx[19] + ), + listen( + div4, + "click", + /*push*/ + ctx[20] + ), + listen( + div5, + "click", + /*pull*/ + ctx[21] + ), + listen( + div6, + "click", + /*click_handler*/ + ctx[30] + ), + listen(div7, "click", triggerRefresh2), + listen( + textarea, + "input", + /*textarea_input_handler*/ + ctx[32] + ) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (!current || dirty[0] & /*loading*/ + 32) { + toggle_class( + div7, + "loading", + /*loading*/ + ctx2[5] + ); + } + if (!current || dirty[0] & /*rows*/ + 32768) { + attr( + textarea, + "rows", + /*rows*/ + ctx2[15] + ); + } + if (dirty[0] & /*commitMessage*/ + 4) { + set_input_value( + textarea, + /*commitMessage*/ + ctx2[2] + ); + } + if ( + /*commitMessage*/ + ctx2[2] + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_8(ctx2); + if_block0.c(); + if_block0.m(div10, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if ( + /*status*/ + ctx2[6] && /*stagedHierarchy*/ + ctx2[10] && /*changeHierarchy*/ + ctx2[9] + ) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & /*status, stagedHierarchy, changeHierarchy*/ + 1600) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block8(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div11, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + ctx[23](null); + ctx[24](null); + ctx[25](null); + ctx[26](null); + ctx[27](null); + ctx[28](null); + ctx[29](null); + ctx[31](null); + if (if_block0) + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function triggerRefresh2() { + dispatchEvent(new CustomEvent("git-refresh")); +} +function instance9($$self, $$props, $$invalidate) { + let rows; + let { plugin } = $$props; + let { view } = $$props; + let loading; + let status2; + let lastPulledFiles = []; + let commitMessage = plugin.settings.commitMessage; + let buttons = []; + let changeHierarchy; + let stagedHierarchy; + let lastPulledFilesHierarchy; + let changesOpen = true; + let stagedOpen = true; + let lastPulledFilesOpen = true; + let showTree = plugin.settings.treeStructure; + let layoutBtn; + addEventListener("git-view-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout( + () => { + buttons.forEach((btn) => (0, import_obsidian28.setIcon)(btn, btn.getAttr("data-icon"), 16)); + (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + }, + 0 + ); + }); + onDestroy(() => { + removeEventListener("git-view-refresh", refresh); + }); + function commit2() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(5, loading = true); + if (status2) { + if (yield plugin.hasTooBigFiles(status2.staged)) { + plugin.setState(0 /* idle */); + return false; + } + plugin.promiseQueue.addTask(() => plugin.gitManager.commit(commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + plugin.setUpAutoBackup(); + }).finally(triggerRefresh2)); + } + }); + } + function backup() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(5, loading = true); + if (status2) { + plugin.promiseQueue.addTask(() => plugin.createBackup(false, false, commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + }).finally(triggerRefresh2)); + } + }); + } + function refresh() { + return __awaiter(this, void 0, void 0, function* () { + if (!plugin.gitReady) { + $$invalidate(6, status2 = void 0); + return; + } + $$invalidate(6, status2 = plugin.cachedStatus); + if (plugin.lastPulledFiles && plugin.lastPulledFiles != lastPulledFiles) { + $$invalidate(7, lastPulledFiles = plugin.lastPulledFiles); + $$invalidate(11, lastPulledFilesHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(lastPulledFiles) + }); + } + if (status2) { + const sort = (a, b) => { + return a.vault_path.split("/").last().localeCompare(getDisplayPath(b.vault_path)); + }; + status2.changed.sort(sort); + status2.staged.sort(sort); + if (status2.changed.length + status2.staged.length > 500) { + $$invalidate(6, status2 = void 0); + if (!plugin.loading) { + plugin.displayError("Too many changes to display"); + } + } else { + $$invalidate(9, changeHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.changed) + }); + $$invalidate(10, stagedHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.staged) + }); + } + } else { + $$invalidate(9, changeHierarchy = void 0); + $$invalidate(10, stagedHierarchy = void 0); + } + $$invalidate(5, loading = plugin.loading); + }); + } + function stageAll() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.gitManager.stageAll({ status: status2 }).finally(triggerRefresh2)); + } + function unstageAll() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.gitManager.unstageAll({ status: status2 }).finally(triggerRefresh2)); + } + function push2() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.push().finally(triggerRefresh2)); + } + function pull2() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.pullChangesFromRemote().finally(triggerRefresh2)); + } + function discard() { + new DiscardModal(view.app, false, plugin.gitManager.getVaultPath("/")).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.promiseQueue.addTask(() => plugin.gitManager.discardAll({ status: plugin.cachedStatus }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + })); + } + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[5] = $$value; + $$invalidate(8, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(8, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(8, buttons); + }); + } + function div3_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(8, buttons); + }); + } + function div4_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[3] = $$value; + $$invalidate(8, buttons); + }); + } + function div5_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[4] = $$value; + $$invalidate(8, buttons); + }); + } + function div6_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(4, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(3, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div7_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(8, buttons); + }); + } + function textarea_input_handler() { + commitMessage = this.value; + $$invalidate(2, commitMessage); + } + const click_handler_1 = () => $$invalidate(2, commitMessage = ""); + function div2_binding_1($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[8] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_2 = () => $$invalidate(13, stagedOpen = !stagedOpen); + function div11_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[9] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_3 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_4 = () => $$invalidate(14, lastPulledFilesOpen = !lastPulledFilesOpen); + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) + $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty[0] & /*layoutBtn, showTree*/ + 24) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + } + } + } + if ($$self.$$.dirty[0] & /*commitMessage*/ + 4) { + $: + $$invalidate(15, rows = (commitMessage.match(/\n/g) || []).length + 1 || 1); + } + }; + return [ + plugin, + view, + commitMessage, + showTree, + layoutBtn, + loading, + status2, + lastPulledFiles, + buttons, + changeHierarchy, + stagedHierarchy, + lastPulledFilesHierarchy, + changesOpen, + stagedOpen, + lastPulledFilesOpen, + rows, + commit2, + backup, + stageAll, + unstageAll, + push2, + pull2, + discard, + div0_binding, + div1_binding, + div2_binding, + div3_binding, + div4_binding, + div5_binding, + div6_binding, + click_handler, + div7_binding, + textarea_input_handler, + click_handler_1, + div2_binding_1, + click_handler_2, + div11_binding, + click_handler_3, + click_handler_4 + ]; +} +var SourceControl = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance9, create_fragment9, safe_not_equal, { plugin: 0, view: 1 }, add_css8, [-1, -1]); + } +}; +var sourceControl_default = SourceControl; + +// src/ui/sourceControl/sourceControl.ts +var GitView = class extends import_obsidian29.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return SOURCE_CONTROL_VIEW_CONFIG.type; + } + getDisplayText() { + return SOURCE_CONTROL_VIEW_CONFIG.name; + } + getIcon() { + return SOURCE_CONTROL_VIEW_CONFIG.icon; + } + onClose() { + return super.onClose(); + } + onOpen() { + this._view = new sourceControl_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/ui/statusBar/branchStatusBar.ts +init_polyfill_buffer(); +var BranchStatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.statusBarEl.addClass("mod-clickable"); + this.statusBarEl.onClickEvent((e) => { + this.plugin.switchBranch(); + }); + } + async display() { + if (this.plugin.gitReady) { + const branchInfo = await this.plugin.gitManager.branchInfo(); + if (branchInfo.current != void 0) { + this.statusBarEl.setText(branchInfo.current); + } else { + this.statusBarEl.empty(); + } + } else { + this.statusBarEl.empty(); + } + } +}; + +// src/main.ts +var ObsidianGit = class extends import_obsidian30.Plugin { + constructor() { + super(...arguments); + this.gitReady = false; + this.promiseQueue = new PromiseQueue(); + this.conflictOutputFile = "conflict-files-obsidian-git.md"; + this.offlineMode = false; + this.loading = false; + this.lineAuthoringFeature = new LineAuthoringFeature(this); + } + setState(state) { + var _a2; + this.state = state; + (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + } + async updateCachedStatus() { + this.cachedStatus = await this.gitManager.status(); + return this.cachedStatus; + } + async refresh() { + const gitView = this.app.workspace.getLeavesOfType( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + const historyView = this.app.workspace.getLeavesOfType( + HISTORY_VIEW_CONFIG.type + ); + if (this.settings.changedFilesInStatusBar || gitView.length > 0 || historyView.length > 0) { + this.loading = true; + dispatchEvent(new CustomEvent("git-view-refresh")); + await this.updateCachedStatus(); + this.loading = false; + dispatchEvent(new CustomEvent("git-view-refresh")); + } + } + async refreshUpdatedHead() { + this.lineAuthoringFeature.refreshLineAuthorViews(); + } + async onload() { + console.log("loading " + this.manifest.name + " plugin"); + pluginRef.plugin = this; + this.localStorage = new LocalStorageSettings(this); + this.localStorage.migrate(); + await this.loadSettings(); + this.migrateSettings(); + this.settingsTab = new ObsidianGitSettingsTab(this.app, this); + this.addSettingTab(this.settingsTab); + if (!this.localStorage.getPluginDisabled()) { + this.loadPlugin(); + } + } + async loadPlugin() { + addEventListener("git-refresh", this.refresh.bind(this)); + addEventListener("git-head-update", this.refreshUpdatedHead.bind(this)); + this.registerView(SOURCE_CONTROL_VIEW_CONFIG.type, (leaf) => { + return new GitView(leaf, this); + }); + this.registerView(HISTORY_VIEW_CONFIG.type, (leaf) => { + return new HistoryView2(leaf, this); + }); + this.registerView(DIFF_VIEW_CONFIG.type, (leaf) => { + return new DiffView(leaf, this); + }); + this.lineAuthoringFeature.onLoadPlugin(); + this.app.workspace.registerHoverLinkSource( + SOURCE_CONTROL_VIEW_CONFIG.type, + { + display: "Git View", + defaultMod: true + } + ); + this.setRefreshDebouncer(); + this.addCommand({ + id: "edit-gitignore", + name: "Edit .gitignore", + callback: async () => { + const path2 = this.gitManager.getVaultPath(".gitignore"); + if (!await this.app.vault.adapter.exists(path2)) { + this.app.vault.adapter.write(path2, ""); + } + const content = await this.app.vault.adapter.read(path2); + const modal = new IgnoreModal(this.app, content); + const res = await modal.open(); + if (res !== void 0) { + await this.app.vault.adapter.write(path2, res); + this.refresh(); + } + } + }); + this.addCommand({ + id: "open-git-view", + name: "Open source control view", + callback: async () => { + const leafs = this.app.workspace.getLeavesOfType( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + let leaf; + if (leafs.length === 0) { + leaf = this.app.workspace.getRightLeaf(false); + await leaf.setViewState({ + type: SOURCE_CONTROL_VIEW_CONFIG.type + }); + } else { + leaf = leafs.first(); + } + this.app.workspace.revealLeaf(leaf); + dispatchEvent(new CustomEvent("git-refresh")); + } + }); + this.addCommand({ + id: "open-history-view", + name: "Open history view", + callback: async () => { + const leafs = this.app.workspace.getLeavesOfType( + HISTORY_VIEW_CONFIG.type + ); + let leaf; + if (leafs.length === 0) { + leaf = this.app.workspace.getRightLeaf(false); + await leaf.setViewState({ + type: HISTORY_VIEW_CONFIG.type + }); + } else { + leaf = leafs.first(); + } + this.app.workspace.revealLeaf(leaf); + dispatchEvent(new CustomEvent("git-refresh")); + } + }); + this.addCommand({ + id: "open-diff-view", + name: "Open diff view", + checkCallback: (checking) => { + var _a2; + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + (_a2 = getNewLeaf()) == null ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + staged: false, + file: this.gitManager.asRepositoryRelativePath( + file.path, + true + ) + } + }); + } + } + }); + this.addCommand({ + id: "view-file-on-github", + name: "Open file on GitHub", + editorCallback: (editor, { file }) => { + if (file) + return openLineInGitHub(editor, file, this.gitManager); + } + }); + this.addCommand({ + id: "view-history-on-github", + name: "Open file history on GitHub", + editorCallback: (_, { file }) => { + if (file) + return openHistoryInGitHub(file, this.gitManager); + } + }); + this.addCommand({ + id: "pull", + name: "Pull", + callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) + }); + this.addCommand({ + id: "switch-to-remote-branch", + name: "Switch to remote branch", + callback: () => this.promiseQueue.addTask(() => this.switchRemoteBranch()) + }); + this.addCommand({ + id: "add-to-gitignore", + name: "Add file to gitignore", + checkCallback: (checking) => { + const file = app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + app.vault.adapter.append( + this.gitManager.getVaultPath(".gitignore"), + "\n" + this.gitManager.asRepositoryRelativePath( + file.path, + true + ) + ).then(() => { + this.refresh(); + }); + } + } + }); + this.addCommand({ + id: "push", + name: "Create backup", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) + }); + this.addCommand({ + id: "backup-and-close", + name: "Create backup and close", + callback: () => this.promiseQueue.addTask(async () => { + await this.createBackup(false); + window.close(); + }) + }); + this.addCommand({ + id: "commit-push-specified-message", + name: "Create backup with specific message", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false, true)) + }); + this.addCommand({ + id: "commit", + name: "Commit all changes", + callback: () => this.promiseQueue.addTask( + () => this.commit({ fromAutoBackup: false }) + ) + }); + this.addCommand({ + id: "commit-specified-message", + name: "Commit all changes with specific message", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true + }) + ) + }); + this.addCommand({ + id: "commit-staged", + name: "Commit staged", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: false, + onlyStaged: true + }) + ) + }); + this.addCommand({ + id: "commit-staged-specified-message", + name: "Commit staged with specific message", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true, + onlyStaged: true + }) + ) + }); + this.addCommand({ + id: "push2", + name: "Push", + callback: () => this.promiseQueue.addTask(() => this.push()) + }); + this.addCommand({ + id: "stage-current-file", + name: "Stage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.stageFile(file)); + } + } + }); + this.addCommand({ + id: "unstage-current-file", + name: "Unstage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.unstageFile(file)); + } + } + }); + this.addCommand({ + id: "edit-remotes", + name: "Edit remotes", + callback: async () => this.editRemotes() + }); + this.addCommand({ + id: "remove-remote", + name: "Remove remote", + callback: async () => this.removeRemote() + }); + this.addCommand({ + id: "delete-repo", + name: "CAUTION: Delete repository", + callback: async () => { + const repoExists = await this.app.vault.adapter.exists( + `${this.settings.basePath}/.git` + ); + if (repoExists) { + const modal = new GeneralModal({ + options: ["NO", "YES"], + placeholder: "Do you really want to delete the repository (.git directory)? This action cannot be undone.", + onlySelection: true + }); + const shouldDelete = await modal.open() === "YES"; + if (shouldDelete) { + await this.app.vault.adapter.rmdir( + `${this.settings.basePath}/.git`, + true + ); + new import_obsidian30.Notice( + "Successfully deleted repository. Reloading plugin..." + ); + this.unloadPlugin(); + this.init(); + } + } else { + new import_obsidian30.Notice("No repository found"); + } + } + }); + this.addCommand({ + id: "init-repo", + name: "Initialize a new repo", + callback: async () => this.createNewRepo() + }); + this.addCommand({ + id: "clone-repo", + name: "Clone an existing remote repo", + callback: async () => this.cloneNewRepo() + }); + this.addCommand({ + id: "list-changed-files", + name: "List changed files", + callback: async () => { + if (!await this.isAllInitialized()) + return; + const status2 = await this.gitManager.status(); + this.setState(0 /* idle */); + if (status2.changed.length + status2.staged.length > 500) { + this.displayError("Too many changes to display"); + return; + } + new ChangedFilesModal(this, status2.changed).open(); + } + }); + this.addCommand({ + id: "switch-branch", + name: "Switch branch", + callback: () => { + this.switchBranch(); + } + }); + this.addCommand({ + id: "create-branch", + name: "Create new branch", + callback: () => { + this.createBranch(); + } + }); + this.addCommand({ + id: "delete-branch", + name: "Delete branch", + callback: () => { + this.deleteBranch(); + } + }); + this.addCommand({ + id: "discard-all", + name: "CAUTION: Discard all changes", + callback: async () => { + if (!await this.isAllInitialized()) + return false; + const modal = new GeneralModal({ + options: ["NO", "YES"], + placeholder: "Do you want to discard all changes to tracked files? This action cannot be undone.", + onlySelection: true + }); + const shouldDiscardAll = await modal.open() === "YES"; + if (shouldDiscardAll) { + this.promiseQueue.addTask(() => this.discardAll()); + } + } + }); + this.addCommand({ + id: "toggle-line-author-info", + name: "Toggle line author information", + callback: () => { + var _a2; + return (_a2 = this.settingsTab) == null ? void 0 : _a2.configureLineAuthorShowStatus( + !this.settings.lineAuthor.show + ); + } + }); + this.registerEvent( + this.app.workspace.on("file-menu", (menu, file, source) => { + this.handleFileMenu(menu, file, source); + }) + ); + if (this.settings.showStatusBar) { + const statusBarEl = this.addStatusBarItem(); + this.statusBar = new StatusBar(statusBarEl, this); + this.registerInterval( + window.setInterval(() => { + var _a2; + return (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + }, 1e3) + ); + } + if (import_obsidian30.Platform.isDesktop && this.settings.showBranchStatusBar) { + const branchStatusBarEl = this.addStatusBarItem(); + this.branchBar = new BranchStatusBar(branchStatusBarEl, this); + this.registerInterval( + window.setInterval(() => { + var _a2; + return (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + }, 6e4) + ); + } + this.app.workspace.onLayoutReady(() => this.init()); + } + setRefreshDebouncer() { + var _a2; + (_a2 = this.debRefresh) == null ? void 0 : _a2.cancel(); + this.debRefresh = (0, import_obsidian30.debounce)( + () => { + if (this.settings.refreshSourceControl) { + this.refresh(); + } + }, + this.settings.refreshSourceControlTimer, + true + ); + } + async showNotices() { + const length = 1e4; + if (this.manifest.id === "obsidian-git" && import_obsidian30.Platform.isDesktopApp && !this.settings.showedMobileNotice) { + new import_obsidian30.Notice( + "Obsidian Git is now available on mobile! Please read the plugin's README for more information.", + length + ); + this.settings.showedMobileNotice = true; + await this.saveSettings(); + } + if (this.manifest.id === "obsidian-git-isomorphic") { + new import_obsidian30.Notice( + "Obsidian Git Mobile is now deprecated. Please uninstall it and install Obsidian Git instead.", + length + ); + } + } + handleFileMenu(menu, file, source) { + if (!this.settings.showFileMenu) + return; + if (source !== "file-explorer-context-menu") { + return; + } + if (!file) { + return; + } + if (!this.gitReady) + return; + menu.addItem((item) => { + item.setTitle(`Git: Stage`).setIcon("plus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian30.TFile) { + await this.gitManager.stage(file.path, true); + } else { + await this.gitManager.stageAll({ + dir: this.gitManager.asRepositoryRelativePath( + file.path, + true + ) + }); + } + this.displayMessage(`Staged ${file.path}`); + }); + }); + }); + menu.addItem((item) => { + item.setTitle(`Git: Unstage`).setIcon("minus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian30.TFile) { + await this.gitManager.unstage(file.path, true); + } else { + await this.gitManager.unstageAll({ + dir: this.gitManager.asRepositoryRelativePath( + file.path, + true + ) + }); + } + this.displayMessage(`Unstaged ${file.path}`); + }); + }); + }); + } + async migrateSettings() { + if (this.settings.mergeOnPull != void 0) { + this.settings.syncMethod = this.settings.mergeOnPull ? "merge" : "rebase"; + this.settings.mergeOnPull = void 0; + await this.saveSettings(); + } + if (this.settings.autoCommitMessage === void 0) { + this.settings.autoCommitMessage = this.settings.commitMessage; + await this.saveSettings(); + } + if (this.settings.gitPath != void 0) { + this.localStorage.setGitPath(this.settings.gitPath); + this.settings.gitPath = void 0; + await this.saveSettings(); + } + if (this.settings.username != void 0) { + this.localStorage.setPassword(this.settings.username); + this.settings.username = void 0; + await this.saveSettings(); + } + } + unloadPlugin() { + this.gitReady = false; + dispatchEvent(new CustomEvent("git-refresh")); + this.lineAuthoringFeature.deactivateFeature(); + this.clearAutoPull(); + this.clearAutoPush(); + this.clearAutoBackup(); + removeEventListener("git-refresh", this.refresh.bind(this)); + removeEventListener( + "git-head-update", + this.refreshUpdatedHead.bind(this) + ); + this.app.metadataCache.offref(this.modifyEvent); + this.app.metadataCache.offref(this.deleteEvent); + this.app.metadataCache.offref(this.createEvent); + this.app.metadataCache.offref(this.renameEvent); + this.debRefresh.cancel(); + } + async onunload() { + this.app.workspace.unregisterHoverLinkSource( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + this.unloadPlugin(); + console.log("unloading " + this.manifest.name + " plugin"); + } + async loadSettings() { + let data = await this.loadData(); + if (data == void 0) { + data = { showedMobileNotice: true }; + } + this.settings = mergeSettingsByPriority(DEFAULT_SETTINGS, data); + } + async saveSettings() { + var _a2; + (_a2 = this.settingsTab) == null ? void 0 : _a2.beforeSaveSettings(); + await this.saveData(this.settings); + } + saveLastAuto(date, mode) { + if (mode === "backup") { + this.localStorage.setLastAutoBackup(date.toString()); + } else if (mode === "pull") { + this.localStorage.setLastAutoPull(date.toString()); + } else if (mode === "push") { + this.localStorage.setLastAutoPush(date.toString()); + } + } + loadLastAuto() { + var _a2, _b, _c; + return { + backup: new Date((_a2 = this.localStorage.getLastAutoBackup()) != null ? _a2 : ""), + pull: new Date((_b = this.localStorage.getLastAutoPull()) != null ? _b : ""), + push: new Date((_c = this.localStorage.getLastAutoPush()) != null ? _c : "") + }; + } + get useSimpleGit() { + return import_obsidian30.Platform.isDesktopApp; + } + async init() { + var _a2; + this.showNotices(); + try { + if (this.useSimpleGit) { + this.gitManager = new SimpleGit(this); + await this.gitManager.setGitInstance(); + } else { + this.gitManager = new IsomorphicGit(this); + } + const result = await this.gitManager.checkRequirements(); + switch (result) { + case "missing-git": + this.displayError("Cannot run git command"); + break; + case "missing-repo": + new import_obsidian30.Notice( + "Can't find a valid git repository. Please create one via the given command or clone an existing repo.", + 1e4 + ); + break; + case "valid": + this.gitReady = true; + this.setState(0 /* idle */); + this.modifyEvent = this.app.vault.on("modify", () => { + this.debRefresh(); + }); + this.deleteEvent = this.app.vault.on("delete", () => { + this.debRefresh(); + }); + this.createEvent = this.app.vault.on("create", () => { + this.debRefresh(); + }); + this.renameEvent = this.app.vault.on("rename", () => { + this.debRefresh(); + }); + this.registerEvent(this.modifyEvent); + this.registerEvent(this.deleteEvent); + this.registerEvent(this.createEvent); + this.registerEvent(this.renameEvent); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + this.lineAuthoringFeature.conditionallyActivateBySettings(); + dispatchEvent(new CustomEvent("git-refresh")); + if (this.settings.autoPullOnBoot) { + this.promiseQueue.addTask( + () => this.pullChangesFromRemote() + ); + } + this.setUpAutos(); + break; + default: + console.log( + "Something weird happened. The 'checkRequirements' result is " + result + ); + } + } catch (error) { + this.displayError(error); + console.error(error); + } + } + async createNewRepo() { + await this.gitManager.init(); + new import_obsidian30.Notice("Initialized new repo"); + await this.init(); + } + async cloneNewRepo() { + const modal = new GeneralModal({ placeholder: "Enter remote URL" }); + const url = await modal.open(); + if (url) { + const confirmOption = "Vault Root"; + let dir = await new GeneralModal({ + options: this.gitManager instanceof IsomorphicGit ? [confirmOption] : [], + placeholder: "Enter directory for clone. It needs to be empty or not existent.", + allowEmpty: this.gitManager instanceof IsomorphicGit + }).open(); + if (dir !== void 0) { + if (dir === confirmOption) { + dir = "."; + } + dir = (0, import_obsidian30.normalizePath)(dir); + if (dir === "/") { + dir = "."; + } + if (dir === ".") { + const modal2 = new GeneralModal({ + options: ["NO", "YES"], + placeholder: `Does your remote repo contain a ${app.vault.configDir} directory at the root?`, + onlySelection: true + }); + const containsConflictDir = await modal2.open(); + if (containsConflictDir === void 0) { + new import_obsidian30.Notice("Aborted clone"); + return; + } else if (containsConflictDir === "YES") { + const confirmOption2 = "DELETE ALL YOUR LOCAL CONFIG AND PLUGINS"; + const modal3 = new GeneralModal({ + options: ["Abort clone", confirmOption2], + placeholder: `To avoid conflicts, the local ${app.vault.configDir} directory needs to be deleted.`, + onlySelection: true + }); + const shouldDelete = await modal3.open() === confirmOption2; + if (shouldDelete) { + await this.app.vault.adapter.rmdir( + app.vault.configDir, + true + ); + } else { + new import_obsidian30.Notice("Aborted clone"); + return; + } + } + } + const depth = await new GeneralModal({ + placeholder: "Specify depth of clone. Leave empty for full clone.", + allowEmpty: true + }).open(); + let depthInt = void 0; + if (depth !== "") { + depthInt = parseInt(depth); + if (isNaN(depthInt)) { + new import_obsidian30.Notice("Invalid depth. Aborting clone."); + return; + } + } + new import_obsidian30.Notice(`Cloning new repo into "${dir}"`); + const oldBase = this.settings.basePath; + const customDir = dir && dir !== "."; + if (customDir) { + this.settings.basePath = dir; + } + try { + await this.gitManager.clone(url, dir, depthInt); + } catch (error) { + this.settings.basePath = oldBase; + this.saveSettings(); + throw error; + } + new import_obsidian30.Notice("Cloned new repo."); + new import_obsidian30.Notice("Please restart Obsidian"); + if (customDir) { + this.saveSettings(); + } + } + } + } + /** + * Retries to call `this.init()` if necessary, otherwise returns directly + * @returns true if `this.gitManager` is ready to be used, false if not. + */ + async isAllInitialized() { + if (!this.gitReady) { + await this.init(); + } + return this.gitReady; + } + ///Used for command + async pullChangesFromRemote() { + if (!await this.isAllInitialized()) + return; + const filesUpdated = await this.pull(); + this.setUpAutoBackup(); + if (!filesUpdated) { + this.displayMessage("Everything is up-to-date"); + } + if (this.gitManager instanceof SimpleGit) { + const status2 = await this.gitManager.status(); + if (status2.conflicted.length > 0) { + this.displayError( + `You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}` + ); + this.handleConflict(status2.conflicted); + } + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + } + async createBackup(fromAutoBackup, requestCustomMessage = false, commitMessage) { + if (!await this.isAllInitialized()) + return; + if (this.settings.syncMethod == "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + if (!await this.commit({ + fromAutoBackup, + requestCustomMessage, + commitMessage + })) + return; + if (!this.settings.disablePush) { + if (await this.gitManager.canPush()) { + if (this.settings.syncMethod != "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + await this.push(); + } else { + this.displayMessage("No changes to push"); + } + } + this.setState(0 /* idle */); + } + // Returns true if commit was successfully + async commit({ + fromAutoBackup, + requestCustomMessage = false, + onlyStaged = false, + commitMessage + }) { + if (!await this.isAllInitialized()) + return false; + let hadConflict = this.localStorage.getConflict() === "true"; + let changedFiles; + let status2; + let unstagedFiles; + if (this.gitManager instanceof SimpleGit) { + this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + if (status2.conflicted.length == 0) { + this.localStorage.setConflict("false"); + hadConflict = false; + } + if (fromAutoBackup && status2.conflicted.length > 0) { + this.displayError( + `Did not commit, because you have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}. Please resolve them and commit per command.` + ); + this.handleConflict(status2.conflicted); + return false; + } + changedFiles = [...status2.changed, ...status2.staged]; + } else if (fromAutoBackup && hadConflict) { + this.setState(6 /* conflicted */); + this.displayError( + `Did not commit, because you have conflicts. Please resolve them and commit per command.` + ); + return false; + } else if (hadConflict) { + await this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + changedFiles = [...status2.changed, ...status2.staged]; + } else { + if (onlyStaged) { + changedFiles = await this.gitManager.getStagedFiles(); + } else { + unstagedFiles = await this.gitManager.getUnstagedFiles(); + changedFiles = unstagedFiles.map(({ filepath }) => ({ + vault_path: this.gitManager.getVaultPath(filepath) + })); + } + } + if (await this.hasTooBigFiles(changedFiles)) { + this.setState(0 /* idle */); + return false; + } + if (changedFiles.length !== 0 || hadConflict) { + let cmtMessage = commitMessage != null ? commitMessage : commitMessage = fromAutoBackup ? this.settings.autoCommitMessage : this.settings.commitMessage; + if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { + if (!this.settings.disablePopups && fromAutoBackup) { + new import_obsidian30.Notice( + "Auto backup: Please enter a custom commit message. Leave empty to abort" + ); + } + const tempMessage = await new CustomMessageModal( + this, + true + ).open(); + if (tempMessage != void 0 && tempMessage != "" && tempMessage != "...") { + cmtMessage = tempMessage; + } else { + this.setState(0 /* idle */); + return false; + } + } + let committedFiles; + if (onlyStaged) { + committedFiles = await this.gitManager.commit(cmtMessage); + } else { + committedFiles = await this.gitManager.commitAll({ + message: cmtMessage, + status: status2, + unstagedFiles + }); + } + if (this.gitManager instanceof SimpleGit) { + if ((await this.updateCachedStatus()).conflicted.length == 0) { + this.localStorage.setConflict("false"); + } + } + let roughly = false; + if (committedFiles === void 0) { + roughly = true; + committedFiles = changedFiles.length; + } + this.setUpAutoBackup(); + this.displayMessage( + `Committed${roughly ? " approx." : ""} ${committedFiles} ${committedFiles == 1 ? "file" : "files"}` + ); + } else { + this.displayMessage("No changes to commit"); + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async hasTooBigFiles(files) { + const branchInfo = await this.gitManager.branchInfo(); + const remote = branchInfo.tracking ? splitRemoteBranch(branchInfo.tracking)[0] : null; + if (remote) { + const remoteUrl = await this.gitManager.getRemoteUrl(remote); + if (remoteUrl == null ? void 0 : remoteUrl.includes("github.com")) { + const tooBigFiles = files.filter((f) => { + const file = this.app.vault.getAbstractFileByPath( + f.vault_path + ); + if (file instanceof import_obsidian30.TFile) { + return file.stat.size >= 1e8; + } + return false; + }); + if (tooBigFiles.length > 0) { + this.displayError( + `Did not commit, because following files are too big: ${tooBigFiles.map( + (e) => e.vault_path + )}. Please remove them.` + ); + return true; + } + } + } + return false; + } + async push() { + if (!await this.isAllInitialized()) + return false; + if (!await this.remotesAreSet()) { + return false; + } + const hadConflict = this.localStorage.getConflict() === "true"; + if (this.gitManager instanceof SimpleGit) + await this.mayDeleteConflictFile(); + let status2; + if (this.gitManager instanceof SimpleGit && (status2 = await this.updateCachedStatus()).conflicted.length > 0) { + this.displayError( + `Cannot push. You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}` + ); + this.handleConflict(status2.conflicted); + return false; + } else if (this.gitManager instanceof IsomorphicGit && hadConflict) { + this.displayError(`Cannot push. You have conflicts`); + this.setState(6 /* conflicted */); + return false; + } + { + console.log("Pushing...."); + const pushedFiles = await this.gitManager.push(); + console.log("Pushed!", pushedFiles); + if (pushedFiles > 0) { + this.displayMessage( + `Pushed ${pushedFiles} ${pushedFiles == 1 ? "file" : "files"} to remote` + ); + } else { + this.displayMessage(`No changes to push`); + } + this.offlineMode = false; + this.setState(0 /* idle */); + dispatchEvent(new CustomEvent("git-refresh")); + return true; + } + } + /// Used for internals + /// Returns whether the pull added a commit or not. + async pull() { + if (!await this.remotesAreSet()) { + return false; + } + const pulledFiles = await this.gitManager.pull() || []; + this.offlineMode = false; + if (pulledFiles.length > 0) { + this.displayMessage( + `Pulled ${pulledFiles.length} ${pulledFiles.length == 1 ? "file" : "files"} from remote` + ); + this.lastPulledFiles = pulledFiles; + } + return pulledFiles.length != 0; + } + async mayDeleteConflictFile() { + const file = this.app.vault.getAbstractFileByPath( + this.conflictOutputFile + ); + if (file) { + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.view instanceof import_obsidian30.MarkdownView && leaf.view.file.path == file.path) { + leaf.detach(); + } + }); + await this.app.vault.delete(file); + } + } + async stageFile(file) { + if (!await this.isAllInitialized()) + return false; + await this.gitManager.stage(file.path, true); + this.displayMessage(`Staged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async unstageFile(file) { + if (!await this.isAllInitialized()) + return false; + await this.gitManager.unstage(file.path, true); + this.displayMessage(`Unstaged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async switchBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const branchInfo = await this.gitManager.branchInfo(); + const selectedBranch = await new BranchModal( + branchInfo.branches + ).open(); + if (selectedBranch != void 0) { + await this.gitManager.checkout(selectedBranch); + this.displayMessage(`Switched to ${selectedBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return selectedBranch; + } + } + async switchRemoteBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const selectedBranch = await this.selectRemoteBranch() || ""; + const [remote, branch2] = splitRemoteBranch(selectedBranch); + if (branch2 != void 0 && remote != void 0) { + await this.gitManager.checkout(branch2, remote); + this.displayMessage(`Switched to ${selectedBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return selectedBranch; + } + } + async createBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const newBranch = await new GeneralModal({ + placeholder: "Create new branch" + }).open(); + if (newBranch != void 0) { + await this.gitManager.createBranch(newBranch); + this.displayMessage(`Created new branch ${newBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return newBranch; + } + } + async deleteBranch() { + var _a2; + if (!await this.isAllInitialized()) + return; + const branchInfo = await this.gitManager.branchInfo(); + if (branchInfo.current) + branchInfo.branches.remove(branchInfo.current); + const branch2 = await new GeneralModal({ + options: branchInfo.branches, + placeholder: "Delete branch", + onlySelection: true + }).open(); + if (branch2 != void 0) { + let force = false; + const merged = await this.gitManager.branchIsMerged(branch2); + if (!merged) { + const forceAnswer = await new GeneralModal({ + options: ["YES", "NO"], + placeholder: "This branch isn't merged into HEAD. Force delete?", + onlySelection: true + }).open(); + if (forceAnswer !== "YES") { + return; + } + force = forceAnswer === "YES"; + } + await this.gitManager.deleteBranch(branch2, force); + this.displayMessage(`Deleted branch ${branch2}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return branch2; + } + } + async remotesAreSet() { + if (!(await this.gitManager.branchInfo()).tracking) { + new import_obsidian30.Notice("No upstream branch is set. Please select one."); + const remoteBranch = await this.selectRemoteBranch(); + if (remoteBranch == void 0) { + this.displayError("Aborted. No upstream-branch is set!", 1e4); + this.setState(0 /* idle */); + return false; + } else { + await this.gitManager.updateUpstreamBranch(remoteBranch); + return true; + } + } + return true; + } + async setUpAutoBackup() { + if (this.settings.setLastSaveToLastCommit) { + this.clearAutoBackup(); + const lastCommitDate = await this.gitManager.getLastCommitTime(); + if (lastCommitDate) { + this.localStorage.setLastAutoBackup(lastCommitDate.toString()); + } + } + if (!this.timeoutIDBackup && !this.onFileModifyEventRef) { + const lastAutos = await this.loadLastAuto(); + if (this.settings.autoSaveInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff2 = this.settings.autoSaveInterval - Math.round( + (now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60 + ); + this.startAutoBackup(diff2 <= 0 ? 0 : diff2); + } + } + } + async setUpAutos() { + this.setUpAutoBackup(); + const lastAutos = await this.loadLastAuto(); + if (this.settings.differentIntervalCommitAndPush && this.settings.autoPushInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff2 = this.settings.autoPushInterval - Math.round( + (now2.getTime() - lastAutos.push.getTime()) / 1e3 / 60 + ); + this.startAutoPush(diff2 <= 0 ? 0 : diff2); + } + if (this.settings.autoPullInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff2 = this.settings.autoPullInterval - Math.round( + (now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60 + ); + this.startAutoPull(diff2 <= 0 ? 0 : diff2); + } + } + async discardAll() { + await this.gitManager.discardAll({ + status: this.cachedStatus + }); + new import_obsidian30.Notice( + "All local changes have been discarded. New files remain untouched." + ); + } + clearAutos() { + this.clearAutoBackup(); + this.clearAutoPush(); + this.clearAutoPull(); + } + startAutoBackup(minutes) { + let time = (minutes != null ? minutes : this.settings.autoSaveInterval) * 6e4; + if (this.settings.autoBackupAfterFileChange) { + if (minutes === 0) { + this.doAutoBackup(); + } else { + this.onFileModifyEventRef = this.app.vault.on( + "modify", + () => this.autoBackupDebouncer() + ); + this.autoBackupDebouncer = (0, import_obsidian30.debounce)( + () => this.doAutoBackup(), + time, + true + ); + } + } else { + if (time > 2147483647) + time = 2147483647; + this.timeoutIDBackup = window.setTimeout( + () => this.doAutoBackup(), + time + ); + } + } + // This is used for both auto backup and commit + doAutoBackup() { + this.promiseQueue.addTask(() => { + if (this.settings.differentIntervalCommitAndPush) { + return this.commit({ fromAutoBackup: true }); + } else { + return this.createBackup(true); + } + }); + this.saveLastAuto(/* @__PURE__ */ new Date(), "backup"); + this.saveSettings(); + this.startAutoBackup(); + } + startAutoPull(minutes) { + let time = (minutes != null ? minutes : this.settings.autoPullInterval) * 6e4; + if (time > 2147483647) + time = 2147483647; + this.timeoutIDPull = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + this.saveLastAuto(/* @__PURE__ */ new Date(), "pull"); + this.saveSettings(); + this.startAutoPull(); + }, time); + } + startAutoPush(minutes) { + let time = (minutes != null ? minutes : this.settings.autoPushInterval) * 6e4; + if (time > 2147483647) + time = 2147483647; + this.timeoutIDPush = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.push()); + this.saveLastAuto(/* @__PURE__ */ new Date(), "push"); + this.saveSettings(); + this.startAutoPush(); + }, time); + } + clearAutoBackup() { + var _a2; + let wasActive = false; + if (this.timeoutIDBackup) { + window.clearTimeout(this.timeoutIDBackup); + this.timeoutIDBackup = void 0; + wasActive = true; + } + if (this.onFileModifyEventRef) { + (_a2 = this.autoBackupDebouncer) == null ? void 0 : _a2.cancel(); + this.app.vault.offref(this.onFileModifyEventRef); + this.onFileModifyEventRef = void 0; + wasActive = true; + } + return wasActive; + } + clearAutoPull() { + if (this.timeoutIDPull) { + window.clearTimeout(this.timeoutIDPull); + this.timeoutIDPull = void 0; + return true; + } + return false; + } + clearAutoPush() { + if (this.timeoutIDPush) { + window.clearTimeout(this.timeoutIDPush); + this.timeoutIDPush = void 0; + return true; + } + return false; + } + async handleConflict(conflicted) { + this.setState(6 /* conflicted */); + this.localStorage.setConflict("true"); + let lines; + if (conflicted !== void 0) { + lines = [ + "# Conflicts", + "Please resolve them and commit them using the commands `Obsidian Git: Commit all changes` followed by `Obsidian Git: Push`", + "(This file will automatically be deleted before commit)", + "[[#Additional Instructions]] available below file list", + "", + ...conflicted.map((e) => { + const file = this.app.vault.getAbstractFileByPath(e); + if (file instanceof import_obsidian30.TFile) { + const link = this.app.metadataCache.fileToLinktext( + file, + "/" + ); + return `- [[${link}]]`; + } else { + return `- Not a file: ${e}`; + } + }), + ` +# Additional Instructions +I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. + +\`\`\`diff +<<<<<<< HEAD + File changes in local repository +======= + File changes in remote repository +>>>>>>> origin/main +\`\`\`` + ]; + } + this.writeAndOpenFile(lines == null ? void 0 : lines.join("\n")); + } + async editRemotes() { + if (!await this.isAllInitialized()) + return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select or create a new remote by typing its name and selecting it" + }); + const remoteName = await nameModal.open(); + if (remoteName) { + const oldUrl = await this.gitManager.getRemoteUrl(remoteName); + const urlModal = new GeneralModal({ initialValue: oldUrl }); + const remoteURL = await urlModal.open(); + if (remoteURL) { + await this.gitManager.setRemote(remoteName, remoteURL); + return remoteName; + } + } + } + async selectRemoteBranch() { + let remotes = await this.gitManager.getRemotes(); + let selectedRemote; + if (remotes.length === 0) { + selectedRemote = await this.editRemotes(); + if (selectedRemote == void 0) { + remotes = await this.gitManager.getRemotes(); + } + } + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select or create a new remote by typing its name and selecting it" + }); + const remoteName = selectedRemote != null ? selectedRemote : await nameModal.open(); + if (remoteName) { + this.displayMessage("Fetching remote branches"); + await this.gitManager.fetch(remoteName); + const branches = await this.gitManager.getRemoteBranches( + remoteName + ); + const branchModal = new GeneralModal({ + options: branches, + placeholder: "Select or create a new remote branch by typing its name and selecting it" + }); + return await branchModal.open(); + } + } + async removeRemote() { + if (!await this.isAllInitialized()) + return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select a remote" + }); + const remoteName = await nameModal.open(); + if (remoteName) { + this.gitManager.removeRemote(remoteName); + } + } + async writeAndOpenFile(text2) { + if (text2 !== void 0) { + await this.app.vault.adapter.write(this.conflictOutputFile, text2); + } + let fileIsAlreadyOpened = false; + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.getDisplayText() != "" && this.conflictOutputFile.startsWith(leaf.getDisplayText())) { + fileIsAlreadyOpened = true; + } + }); + if (!fileIsAlreadyOpened) { + this.app.workspace.openLinkText(this.conflictOutputFile, "/", true); + } + } + // region: displaying / formatting messages + displayMessage(message, timeout = 4 * 1e3) { + var _a2; + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + if (!this.settings.disablePopups) { + new import_obsidian30.Notice(message, 5 * 1e3); + } + console.log(`git obsidian message: ${message}`); + } + displayError(message, timeout = 10 * 1e3) { + var _a2; + if (message instanceof Errors.UserCanceledError) { + new import_obsidian30.Notice("Aborted"); + return; + } + message = message.toString(); + new import_obsidian30.Notice(message, timeout); + console.log(`git obsidian error: ${message}`); + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + } +}; +/*! Bundled license information: + +ieee754/index.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) + +buffer/index.js: + (*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +crc-32/crc32.js: + (*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com *) + +js-sha256/src/sha256.js: + (** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + *) + +feather-icons/dist/feather.js: + (*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + *) +*/ diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json new file mode 100644 index 0000000..edb53f6 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -0,0 +1,9 @@ +{ + "id": "obsidian-git", + "name": "Obsidian Git", + "description": "Backup your vault with Git.", + "isDesktopOnly": false, + "fundingUrl": "https://ko-fi.com/vinzent", + "js": "main.js", + "version": "2.20.7" +} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css new file mode 100644 index 0000000..39cdb13 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/styles.css @@ -0,0 +1,507 @@ +@keyframes loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.workspace-leaf-content[data-type='git-view'] .view-content { + padding: 0; +} + +.workspace-leaf-content[data-type='git-history-view'] .view-content { + padding: 0; +} + +.loading>svg { + animation: 2s linear infinite loading; + transform-origin: 50% 50%; + display: inline-block; +} + +.obsidian-git-center { + margin: auto; + text-align: center; + width: 50%; +} + +.obsidian-git-textarea { + display: block; + margin-left: auto; + margin-right: auto; +} + +.obsidian-git-center-button { + display: block; + margin: 20px auto; +} + +.tooltip.mod-left { + overflow-wrap: break-word; +} + +.tooltip.mod-right { + overflow-wrap: break-word; +} +.git-tools { + display: flex; + margin-left: auto; +} +.git-tools .type { + padding-left: var(--size-2-1); + display: flex; + align-items: center; + justify-content: center; + width: 11px; +} + +.git-tools .type[data-type="M"] { + color: orange; +} +.git-tools .type[data-type="D"] { + color: red; +} +.git-tools .buttons { + display: flex; +} +.git-tools .buttons > * { + padding: 0 0; + height: auto; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { + display: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header { + background-color: var(--background-primary); + border-bottom: 1px solid var(--interactive-accent); + font-family: var(--font-monospace); + height: 35px; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header, +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + font-size: 14px; + margin-left: auto; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { + border: 1px solid #b4e2b4; + border-radius: 5px 0 0 5px; + color: #399839; + padding: 2px; + text-align: right; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { + border: 1px solid #e9aeae; + border-radius: 0 5px 5px 0; + color: #c33; + margin-left: 1px; + padding: 2px; + text-align: left; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 15px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + margin-bottom: 1em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { + -webkit-box-pack: end; + -ms-flex-pack: end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + cursor: pointer; + display: none; + font-size: 12px; + justify-content: flex-end; + padding: 4px 8px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { + background-color: #c8e1ff; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { + margin: 0 4px 0 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { + border-collapse: collapse; + font-family: Menlo, Consolas, monospace; + font-size: 13px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { + overflow-y: hidden; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { + display: inline-block; + margin-bottom: -8px; + margin-right: -4px; + overflow-x: scroll; + overflow-y: hidden; + width: 50%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { + padding: 0 8em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + padding: 0 4.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { + word-wrap: normal; + background: none; + display: inline-block; + padding: 0; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + vertical-align: middle; + white-space: pre; + width: 100%; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { + background-color: #ffb6ba; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del { + background-color: #8d232881; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + border-radius: 0.2em; + display: inline-block; + margin-top: -1px; + text-decoration: none; + vertical-align: middle; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + background-color: #97f295; + text-align: left; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + background-color: #1d921996; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { + word-wrap: normal; + background: none; + display: inline; + padding: 0; + white-space: pre; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1 { + float: left; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1, +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + padding: 0 0.5em; + text-overflow: ellipsis; + width: 3.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + float: right; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + position: absolute; + text-align: right; + width: 7.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + overflow: hidden; + padding: 0 0.5em; + position: absolute; + text-align: right; + text-overflow: ellipsis; + width: 4em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr { + position: relative; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + direction: rtl; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #fee8e9; + border-color: #e9aeae; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: #dfd; + border-color: #b4e2b4; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #521b1d83; + border-color: #691d1d73; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: rgba(30, 71, 30, 0.5); + border-color: #13501381; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-info { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); + color: var(--text-normal); +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { + background-color: #fdf2d0; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change { + background-color: #55492480; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { + background-color: #ded; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change { + background-color: rgba(37, 78, 37, 0.418); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { + margin-bottom: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { + color: #3572b0; + text-decoration: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a:visited { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { + font-weight: 700; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { + display: block; + list-style: none; + margin: 0; + padding: 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li { + border-bottom: 1px solid var(--background-modifier-border); + margin: 0; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li:last-child { + border-bottom: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { + cursor: pointer; + display: none; + font-size: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-icon { + fill: currentColor; + margin-right: 10px; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted { + color: #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added { + color: #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed { + color: #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-tag { + background-color: var(--background-primary); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 10px; + margin-left: 5px; + padding: 0 2px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { + border: 2px solid #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { + border: 1px solid #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { + border: 1px solid #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { + border: 1px solid #3572b0; +} + +/* ====================== Line Authoring Information ====================== */ + +.cm-gutterElement.obs-git-blame-gutter { + /* Add background color to spacing inbetween and around the gutter for better aesthetics */ + border-width: 0px 2px 0.2px 2px; + border-style: solid; + border-color: var(--background-secondary); + background-color: var(--background-secondary); +} + +.cm-gutterElement.obs-git-blame-gutter > div, .line-author-settings-preview { + /* delegate text color to settings */ + color: var(--obs-git-gutter-text); + font-family: monospace; + height: 100%; /* ensure, that age-based background color occupies entire parent */ + text-align: right; + padding: 0px 6px 0px 6px; + white-space: pre; /* Keep spaces and do not collapse them. */ +} diff --git a/.obsidian/plugins/obsidian-kanban/main.js b/.obsidian/plugins/obsidian-kanban/main.js new file mode 100644 index 0000000..c1c6818 --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/main.js @@ -0,0 +1,114 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository +*/ +const requestAnimationFrame = (cb) => activeWindow.requestAnimationFrame(cb); +const cancelAnimationFrame = (id) => activeWindow.cancelAnimationFrame(id); +const setTimeout = (...args) => activeWindow.setTimeout(...args); +const clearTimeout = (id) => activeWindow.clearTimeout(id); + +var JE=Object.create;var ro=Object.defineProperty;var GE=Object.getOwnPropertyDescriptor;var QE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,ZE=Object.prototype.hasOwnProperty;var Mf=e=>ro(e,"__esModule",{value:!0});var Cl=(e,t)=>()=>(e&&(t=e(e=0)),t);var pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),qi=(e,t)=>{Mf(e);for(var r in t)ro(e,r,{get:t[r],enumerable:!0})},ek=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of QE(t))!ZE.call(e,n)&&n!=="default"&&ro(e,n,{get:()=>t[n],enumerable:!(r=GE(t,n))||r.enumerable});return e},me=e=>ek(Mf(ro(e!=null?JE(XE(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);function Wn(e,t){for(var r in t)e[r]=t[r];return e}function Nf(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,r){var n,i,a,o={};for(a in t)a=="key"?n=t[a]:a=="ref"?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Yi.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Gi(e,o,n,i,null)}function Gi(e,t,r,n,i){var a={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i??++If};return i==null&&fe.vnode!=null&&fe.vnode(a),a}function ri(){return{current:null}}function S(e){return e.children}function ht(e,t){this.props=e,this.context=t}function ii(e,t){if(t==null)return e.__?ii(e.__,e.__.__k.indexOf(e)+1):null;for(var r;t0?Gi(p.type,p.props,p.key,null,p.__v):p)!=null){if(p.__=r,p.__b=r.__b+1,(f=x[c])===null||f&&p.key==f.key&&p.type===f.type)x[c]=void 0;else for(d=0;d2&&(o.children=arguments.length>3?Yi.call(arguments,2):r),Gi(e.type,o,n||e.key,i||e.ref,null)}function ai(e,t){var r={__c:t="__cC"+Pf++,__:e,Consumer:function(n,i){return n.children(i)},Provider:function(n){var i,a;return this.getChildContext||(i=[],(a={})[t]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(o){this.props.value!==o.value&&i.some(Tl)},this.sub=function(o){i.push(o);var s=o.componentWillUnmount;o.componentWillUnmount=function(){i.splice(i.indexOf(o),1),s&&s.call(o)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}var Yi,fe,If,tk,Ji,Af,Lf,Pf,io,Ff,nk,Ar=Cl(()=>{m();io={},Ff=[],nk=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;Yi=Ff.slice,fe={__e:function(e,t,r,n){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,n||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},If=0,tk=function(e){return e!=null&&e.constructor===void 0},ht.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Wn({},this.state),typeof e=="function"&&(e=e(Wn({},r),this.props)),e&&Wn(r,e),e!=null&&this.__v&&(t&&this.__h.push(t),Tl(this))},ht.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Tl(this))},ht.prototype.render=S,Ji=[],Af=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ao.__r=0,Pf=0});var m=Cl(()=>{Ar()});var Et=pt((An,yp)=>{m();"use strict";Object.defineProperty(An,"__esModule",{value:!0});function _n(e){return typeof e=="object"&&!("toString"in e)?Object.prototype.toString.call(e).slice(8,-1):e}var Lk=typeof process=="object"&&!0;function pn(e,t){if(!e)throw Lk?new Error("Invariant failed"):new Error(t())}An.invariant=pn;var Nl=Object.prototype.hasOwnProperty,Pk=Array.prototype.splice,Fk=Object.prototype.toString;function Pr(e){return Fk.call(e).slice(8,-1)}var mo=Object.assign||function(e,t){return Ol(t).forEach(function(r){Nl.call(t,r)&&(e[r]=t[r])}),e},Ol=typeof Object.getOwnPropertySymbols=="function"?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function dr(e){return Array.isArray(e)?mo(e.constructor(e.length),e):Pr(e)==="Map"?new Map(e):Pr(e)==="Set"?new Set(e):e&&typeof e=="object"?mo(Object.create(Object.getPrototypeOf(e)),e):e}var hp=function(){function e(){this.commands=mo({},Nk),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(t,r){return t===r},this.update.newContext=function(){return new e().update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(t){this.update.isEquals=t},enumerable:!0,configurable:!0}),e.prototype.extend=function(t,r){this.commands[t]=r},e.prototype.update=function(t,r){var n=this,i=typeof r=="function"?{$apply:r}:r;Array.isArray(t)&&Array.isArray(i)||pn(!Array.isArray(i),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),pn(typeof i=="object"&&i!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(n.commands).join(", ")+".")});var a=t;return Ol(i).forEach(function(o){if(Nl.call(n.commands,o)){var s=t===a;a=n.commands[o](i[o],a,i,t),s&&n.isEquals(a,t)&&(a=t)}else{var u=Pr(t)==="Map"?n.update(t.get(o),i[o]):n.update(t[o],i[o]),l=Pr(a)==="Map"?a.get(o):a[o];(!n.isEquals(u,l)||typeof u=="undefined"&&!Nl.call(t,o))&&(a===t&&(a=dr(t)),Pr(a)==="Map"?a.set(o,u):a[o]=u)}}),a},e}();An.Context=hp;var Nk={$push:function(e,t,r){return mp(t,r,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,r){return mp(t,r,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,n){return Ok(t,r),e.forEach(function(i){gp(i),t===n&&i.length&&(t=dr(n)),Pk.apply(t,i)}),t},$set:function(e,t,r){return Hk(r),e},$toggle:function(e,t){ta(e,"$toggle");var r=e.length?dr(t):t;return e.forEach(function(n){r[n]=!t[n]}),r},$unset:function(e,t,r,n){return ta(e,"$unset"),e.forEach(function(i){Object.hasOwnProperty.call(t,i)&&(t===n&&(t=dr(n)),delete t[i])}),t},$add:function(e,t,r,n){return vp(t,"$add"),ta(e,"$add"),Pr(t)==="Map"?e.forEach(function(i){var a=i[0],o=i[1];t===n&&t.get(a)!==o&&(t=dr(n)),t.set(a,o)}):e.forEach(function(i){t===n&&!t.has(i)&&(t=dr(n)),t.add(i)}),t},$remove:function(e,t,r,n){return vp(t,"$remove"),ta(e,"$remove"),e.forEach(function(i){t===n&&t.has(i)&&(t=dr(n)),t.delete(i)}),t},$merge:function(e,t,r,n){return Bk(t,e),Ol(e).forEach(function(i){e[i]!==t[i]&&(t===n&&(t=dr(n)),t[i]=e[i])}),t},$apply:function(e,t){return Rk(e),e(t)}},Rl=new hp;An.isEquals=Rl.update.isEquals;An.extend=Rl.extend;An.default=Rl.update;An.default.default=yp.exports=mo(An.default,An);function mp(e,t,r){pn(Array.isArray(e),function(){return"update(): expected target of "+_n(r)+" to be an array; got "+_n(e)+"."}),ta(t[r],r)}function ta(e,t){pn(Array.isArray(e),function(){return"update(): expected spec of "+_n(t)+" to be an array; got "+_n(e)+". Did you forget to wrap your parameter in an array?"})}function Ok(e,t){pn(Array.isArray(e),function(){return"Expected $splice target to be an array; got "+_n(e)}),gp(t.$splice)}function gp(e){pn(Array.isArray(e),function(){return"update(): expected spec of $splice to be an array of arrays; got "+_n(e)+". Did you forget to wrap your parameters in an array?"})}function Rk(e){pn(typeof e=="function",function(){return"update(): expected spec of $apply to be a function; got "+_n(e)+"."})}function Hk(e){pn(Object.keys(e).length===1,function(){return"Cannot have more than one key in an object with $set"})}function Bk(e,t){pn(t&&typeof t=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+_n(t)}),pn(e&&typeof e=="object",function(){return"update(): $merge expects a target of type 'object'; got "+_n(e)})}function vp(e,t){var r=Pr(e);pn(r==="Map"||r==="Set",function(){return"update(): "+_n(t)+" expects a target of type Set or Map; got "+_n(r)})}});var kp=pt((eM,Ep)=>{m();"use strict";var Kk=function(t){return $k(t)&&!Vk(t)};function $k(e){return!!e&&typeof e=="object"}function Vk(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||zk(e)}var Uk=typeof Symbol=="function"&&Symbol.for,Wk=Uk?Symbol.for("react.element"):60103;function zk(e){return e.$$typeof===Wk}function jk(e){return Array.isArray(e)?[]:{}}function na(e,t){return t.clone!==!1&&t.isMergeableObject(e)?li(jk(e),e,t):e}function qk(e,t,r){return e.concat(t).map(function(n){return na(n,r)})}function Yk(e,t){if(!t.customMerge)return li;var r=t.customMerge(e);return typeof r=="function"?r:li}function Jk(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function bp(e){return Object.keys(e).concat(Jk(e))}function wp(e,t){try{return t in e}catch(r){return!1}}function Gk(e,t){return wp(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Qk(e,t,r){var n={};return r.isMergeableObject(e)&&bp(e).forEach(function(i){n[i]=na(e[i],r)}),bp(t).forEach(function(i){Gk(e,i)||(wp(e,i)&&r.isMergeableObject(t[i])?n[i]=Yk(i,r)(e[i],t[i],r):n[i]=na(t[i],r))}),n}function li(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qk,r.isMergeableObject=r.isMergeableObject||Kk,r.cloneUnlessOtherwiseSpecified=na;var n=Array.isArray(t),i=Array.isArray(e),a=n===i;return a?n?r.arrayMerge(e,t,r):Qk(e,t,r):na(t,r)}li.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return li(n,i,r)},{})};var Xk=li;Ep.exports=Xk});var _o=pt(it=>{m();"use strict";var Yl=32;it.INT_BITS=Yl;it.INT_MAX=2147483647;it.INT_MIN=-1<0)-(e<0)};it.abs=function(e){var t=e>>Yl-1;return(e^t)-t};it.min=function(e,t){return t^(e^t)&-(e65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,t|=r,t|e>>1};it.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};it.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function Rp(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}it.countTrailingZeros=Rp;it.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};it.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};it.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var ca=new Array(256);(function(e){for(var t=0;t<256;++t){var r=t,n=t,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=r&1,--i;e[t]=n<>>8&255]<<16|ca[e>>>16&255]<<8|ca[e>>>24&255]};it.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};it.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};it.interleave3=function(e,t,r){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,r&=1023,r=(r|r<<16)&4278190335,r=(r|r<<8)&251719695,r=(r|r<<4)&3272356035,r=(r|r<<2)&1227133513,e|r<<2};it.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};it.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>Rp(e)+1}});var Kp=pt((PM,Bp)=>{m();"use strict";function Hp(e,t,r){var n=e[r]|0;if(n<=0)return[];var i=new Array(n),a;if(r===e.length-1)for(a=0;a0)return cx(e|0,t);break;case"object":if(typeof e.length=="number")return Hp(e,t,0);break}return[]}Bp.exports=ux});var oh={};qi(oh,{Buffer:()=>ne,INSPECT_MAX_BYTES:()=>zp,SlowBuffer:()=>Ex,isBuffer:()=>ih,kMaxLength:()=>gx});function $p(){Jl=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new dx(s*3/4-a),n=a>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,o[u++]=i>>8&255,o[u++]=i&255;return a===2?(i=hn[e.charCodeAt(t)]<<2|hn[e.charCodeAt(t+1)]>>4,o[u++]=i&255):a===1&&(i=hn[e.charCodeAt(t)]<<10|hn[e.charCodeAt(t+1)]<<4|hn[e.charCodeAt(t+2)]>>2,o[u++]=i>>8&255,o[u++]=i&255),o}function px(e){return Fn[e>>18&63]+Fn[e>>12&63]+Fn[e>>6&63]+Fn[e&63]}function hx(e,t,r){for(var n,i=[],a=t;au?u:s+o));return n===1?(t=e[r-1],i+=Fn[t>>2],i+=Fn[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=Fn[t>>10],i+=Fn[t>>4&63],i+=Fn[t<<2&63],i+="="),a.push(i),a.join("")}function Co(e,t,r,n,i){var a,o,s=i*8-n-1,u=(1<>1,c=-7,d=r?i-1:0,f=r?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=a*256+e[t+d],d+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=o*256+e[t+d],d+=f,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-l}return(p?-1:1)*o*Math.pow(2,a-n)}function Up(e,t,r,n,i,a){var o,s,u,l=a*8-i-1,c=(1<>1,f=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,g=n?1:-1,y=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?t+=f/u:t+=f*Math.pow(2,1-d),t*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=s&255,p+=g,s/=256,i-=8);for(o=o<0;e[r+p]=o&255,p+=g,o/=256,l-=8);e[r+p-g]|=y*128}function To(){return ne.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function jn(e,t){if(To()=To())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+To().toString(16)+" bytes");return e|0}function Ex(e){return+e!=e&&(e=0),ne.alloc(+e)}function Nn(e){return!!(e!=null&&e._isBuffer)}function Yp(e,t){if(Nn(e))return e.length;if(typeof ArrayBuffer!="undefined"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Io(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return rh(e).length;default:if(n)return Io(e).length;t=(""+t).toLowerCase(),n=!0}}function kx(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Lx(this,t,r);case"utf8":case"utf-8":return Xp(this,t,r);case"ascii":return Ix(this,t,r);case"latin1":case"binary":return Ax(this,t,r);case"base64":return Dx(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Px(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Or(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function Jp(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=ne.from(t,n)),Nn(t))return t.length===0?-1:Gp(e,t,r,n,i);if(typeof t=="number")return t=t&255,ne.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Gp(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Gp(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function u(p,g){return a===1?p[g]:p.readUInt16BE(g*a)}var l;if(i){var c=-1;for(l=r;lo&&(r=o-s),l=r;l>=0;l--){for(var d=!0,f=0;fi&&(n=i)):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o239?4:a>223?3:a>191?2:1;if(i+s<=r){var u,l,c,d;switch(s){case 1:a<128&&(o=a);break;case 2:u=e[i+1],(u&192)==128&&(d=(a&31)<<6|u&63,d>127&&(o=d));break;case 3:u=e[i+1],l=e[i+2],(u&192)==128&&(l&192)==128&&(d=(a&15)<<12|(u&63)<<6|l&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],(u&192)==128&&(l&192)==128&&(c&192)==128&&(d=(a&15)<<18|(u&63)<<12|(l&63)<<6|c&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Mx(n)}function Mx(e){var t=e.length;if(t<=Zp)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function Zt(e,t,r,n,i,a){if(!Nn(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function Do(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>(n?i:1-i)*8}function Mo(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>(n?i:3-i)*8&255}function eh(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function th(e,t,r,n,i){return i||eh(e,t,r,4),Up(e,t,r,n,23,4),r+4}function nh(e,t,r,n,i){return i||eh(e,t,r,8),Up(e,t,r,n,52,8),r+8}function Nx(e){if(e=Ox(e).replace(Fx,""),e.length<2)return"";for(;e.length%4!=0;)e=e+"=";return e}function Ox(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Rx(e){return e<16?"0"+e.toString(16):e.toString(16)}function Io(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Hx(e){for(var t=[],r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function rh(e){return fx(Nx(e))}function Ao(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Kx(e){return e!==e}function ih(e){return e!=null&&(!!e._isBuffer||ah(e)||$x(e))}function ah(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function $x(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&ah(e.slice(0,0))}var Fn,hn,dx,Jl,mx,Wp,zp,gx,Zp,Fx,sh=Cl(()=>{m();Fn=[],hn=[],dx=typeof Uint8Array!="undefined"?Uint8Array:Array,Jl=!1;mx={}.toString,Wp=Array.isArray||function(e){return mx.call(e)=="[object Array]"};zp=50;ne.TYPED_ARRAY_SUPPORT=window.TYPED_ARRAY_SUPPORT!==void 0?window.TYPED_ARRAY_SUPPORT:!0;gx=To();ne.poolSize=8192;ne._augment=function(e){return e.__proto__=ne.prototype,e};ne.from=function(e,t,r){return jp(null,e,t,r)};ne.TYPED_ARRAY_SUPPORT&&(ne.prototype.__proto__=Uint8Array.prototype,ne.__proto__=Uint8Array);ne.alloc=function(e,t,r){return vx(null,e,t,r)};ne.allocUnsafe=function(e){return Gl(null,e)};ne.allocUnsafeSlow=function(e){return Gl(null,e)};ne.isBuffer=ih;ne.compare=function(t,r){if(!Nn(t)||!Nn(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""};ne.prototype.compare=function(t,r,n,i,a){if(!Nn(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,u=Math.min(o,s),l=this.slice(i,a),c=t.slice(r,n),d=0;da)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return xx(this,t,r,n);case"utf8":case"utf-8":return Sx(this,t,r,n);case"ascii":return Qp(this,t,r,n);case"latin1":case"binary":return _x(this,t,r,n);case"base64":return Cx(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Tx(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};ne.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};Zp=4096;ne.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r0&&(a*=256);)i+=this[t+--r]*a;return i};ne.prototype.readUInt8=function(t,r){return r||St(t,1,this.length),this[t]};ne.prototype.readUInt16LE=function(t,r){return r||St(t,2,this.length),this[t]|this[t+1]<<8};ne.prototype.readUInt16BE=function(t,r){return r||St(t,2,this.length),this[t]<<8|this[t+1]};ne.prototype.readUInt32LE=function(t,r){return r||St(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};ne.prototype.readUInt32BE=function(t,r){return r||St(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};ne.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||St(t,r,this.length);for(var i=this[t],a=1,o=0;++o=a&&(i-=Math.pow(2,8*r)),i};ne.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||St(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o};ne.prototype.readInt8=function(t,r){return r||St(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};ne.prototype.readInt16LE=function(t,r){r||St(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt16BE=function(t,r){r||St(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};ne.prototype.readInt32LE=function(t,r){return r||St(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};ne.prototype.readInt32BE=function(t,r){return r||St(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};ne.prototype.readFloatLE=function(t,r){return r||St(t,4,this.length),Co(this,t,!0,23,4)};ne.prototype.readFloatBE=function(t,r){return r||St(t,4,this.length),Co(this,t,!1,23,4)};ne.prototype.readDoubleLE=function(t,r){return r||St(t,8,this.length),Co(this,t,!0,52,8)};ne.prototype.readDoubleBE=function(t,r){return r||St(t,8,this.length),Co(this,t,!1,52,8)};ne.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;Zt(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s=0&&(s*=256);)this[r+o]=t/s&255;return r+n};ne.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,1,255,0),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};ne.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):Do(this,t,r,!0),r+2};ne.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,65535,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):Do(this,t,r,!1),r+2};ne.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):Mo(this,t,r,!0),r+4};ne.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,4294967295,0),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):Mo(this,t,r,!1),r+4};ne.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Zt(this,t,r,n,a-1,-a)}var o=0,s=1,u=0;for(this[r]=t&255;++o>0)-u&255;return r+n};ne.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);Zt(this,t,r,n,a-1,-a)}var o=n-1,s=1,u=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&u===0&&this[r+o+1]!==0&&(u=1),this[r+o]=(t/s>>0)-u&255;return r+n};ne.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,1,127,-128),ne.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1};ne.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):Do(this,t,r,!0),r+2};ne.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,2,32767,-32768),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):Do(this,t,r,!1),r+2};ne.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,2147483647,-2147483648),ne.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):Mo(this,t,r,!0),r+4};ne.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||Zt(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),ne.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):Mo(this,t,r,!1),r+4};ne.prototype.writeFloatLE=function(t,r,n){return th(this,t,r,!0,n)};ne.prototype.writeFloatBE=function(t,r,n){return th(this,t,r,!1,n)};ne.prototype.writeDoubleLE=function(t,r,n){return nh(this,t,r,!0,n)};ne.prototype.writeDoubleBE=function(t,r,n){return nh(this,t,r,!1,n)};ne.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r=0;--o)t[o+r]=this[o+n];else if(a<1e3||!ne.TYPED_ARRAY_SUPPORT)for(o=0;o>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o{m();var Rr=(sh(),oh);if(Rr&&Rr.default){Lo.exports=Rr.default;for(let e in Rr)Lo.exports[e]=Rr[e]}else Rr&&(Lo.exports=Rr)});var No=pt(Be=>{m();"use strict";var vr=_o(),It=Kp(),ch=lh().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:It([32,0]),UINT16:It([32,0]),UINT32:It([32,0]),BIGUINT64:It([32,0]),INT8:It([32,0]),INT16:It([32,0]),INT32:It([32,0]),BIGINT64:It([32,0]),FLOAT:It([32,0]),DOUBLE:It([32,0]),DATA:It([32,0]),UINT8C:It([32,0]),BUFFER:It([32,0])});var Vx=typeof Uint8ClampedArray!="undefined",Ux=typeof BigUint64Array!="undefined",Wx=typeof BigInt64Array!="undefined",lt=window.__TYPEDARRAY_POOL;lt.UINT8C||(lt.UINT8C=It([32,0]));lt.BIGUINT64||(lt.BIGUINT64=It([32,0]));lt.BIGINT64||(lt.BIGINT64=It([32,0]));lt.BUFFER||(lt.BUFFER=It([32,0]));var Po=lt.DATA,Fo=lt.BUFFER;Be.free=function(t){if(ch.isBuffer(t))Fo[vr.log2(t.length)].push(t);else{if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=vr.log2(r)|0;Po[n].push(t)}};function uh(e){if(!!e){var t=e.length||e.byteLength,r=vr.log2(t);Po[r].push(e)}}function zx(e){uh(e.buffer)}Be.freeUint8=Be.freeUint16=Be.freeUint32=Be.freeBigUint64=Be.freeInt8=Be.freeInt16=Be.freeInt32=Be.freeBigInt64=Be.freeFloat32=Be.freeFloat=Be.freeFloat64=Be.freeDouble=Be.freeUint8Clamped=Be.freeDataView=zx;Be.freeArrayBuffer=uh;Be.freeBuffer=function(t){Fo[vr.log2(t.length)].push(t)};Be.malloc=function(t,r){if(r===void 0||r==="arraybuffer")return en(t);switch(r){case"uint8":return Zl(t);case"uint16":return dh(t);case"uint32":return fh(t);case"int8":return ph(t);case"int16":return hh(t);case"int32":return mh(t);case"float":case"float32":return gh(t);case"double":case"float64":return vh(t);case"uint8_clamped":return yh(t);case"bigint64":return wh(t);case"biguint64":return bh(t);case"buffer":return kh(t);case"data":case"dataview":return Eh(t);default:return null}return null};function en(e){var e=vr.nextPow2(e),t=vr.log2(e),r=Po[t];return r.length>0?r.pop():new ArrayBuffer(e)}Be.mallocArrayBuffer=en;function Zl(e){return new Uint8Array(en(e),0,e)}Be.mallocUint8=Zl;function dh(e){return new Uint16Array(en(2*e),0,e)}Be.mallocUint16=dh;function fh(e){return new Uint32Array(en(4*e),0,e)}Be.mallocUint32=fh;function ph(e){return new Int8Array(en(e),0,e)}Be.mallocInt8=ph;function hh(e){return new Int16Array(en(2*e),0,e)}Be.mallocInt16=hh;function mh(e){return new Int32Array(en(4*e),0,e)}Be.mallocInt32=mh;function gh(e){return new Float32Array(en(4*e),0,e)}Be.mallocFloat32=Be.mallocFloat=gh;function vh(e){return new Float64Array(en(8*e),0,e)}Be.mallocFloat64=Be.mallocDouble=vh;function yh(e){return Vx?new Uint8ClampedArray(en(e),0,e):Zl(e)}Be.mallocUint8Clamped=yh;function bh(e){return Ux?new BigUint64Array(en(8*e),0,e):null}Be.mallocBigUint64=bh;function wh(e){return Wx?new BigInt64Array(en(8*e),0,e):null}Be.mallocBigInt64=wh;function Eh(e){return new DataView(en(e),0,e)}Be.mallocDataView=Eh;function kh(e){e=vr.nextPow2(e);var t=vr.log2(e),r=Fo[t];return r.length>0?r.pop():new ch(e)}Be.mallocBuffer=kh;Be.clearCache=function(){for(var t=0;t<32;++t)lt.UINT8[t].length=0,lt.UINT16[t].length=0,lt.UINT32[t].length=0,lt.INT8[t].length=0,lt.INT16[t].length=0,lt.INT32[t].length=0,lt.FLOAT[t].length=0,lt.DOUBLE[t].length=0,lt.BIGUINT64[t].length=0,lt.BIGINT64[t].length=0,lt.UINT8C[t].length=0,Po[t].length=0,Fo[t].length=0}});var Th=pt((OM,Ch)=>{m();"use strict";Ch.exports=jx;var Oo=32;function jx(e,t){t<=4*Oo?Ro(0,t-1,e):Bo(0,t-1,e)}function Ro(e,t,r){for(var n=2*(e+1),i=e+1;i<=t;++i){for(var a=r[n++],o=r[n++],s=i,u=n-2;s-- >e;){var l=r[u-2],c=r[u-1];if(lr[t+1]:!0}function Ho(e,t,r,n){e*=2;var i=n[e];return i>1,s=o-n,u=o+n,l=i,c=s,d=o,f=u,p=a,g=e+1,y=t-1,b=0;qn(l,c,r)&&(b=l,l=c,c=b),qn(f,p,r)&&(b=f,f=p,p=b),qn(l,d,r)&&(b=l,l=d,d=b),qn(c,d,r)&&(b=c,c=d,d=b),qn(l,f,r)&&(b=l,l=f,f=b),qn(d,f,r)&&(b=d,d=f,f=b),qn(c,p,r)&&(b=c,c=p,p=b),qn(c,d,r)&&(b=c,c=d,d=b),qn(f,p,r)&&(b=f,f=p,p=b);for(var x=r[2*c],D=r[2*c+1],C=r[2*f],L=r[2*f+1],H=2*l,T=2*d,K=2*p,z=2*i,V=2*o,Z=2*a,J=0;J<2;++J){var se=r[H+J],G=r[T+J],Q=r[K+J];r[z+J]=se,r[V+J]=G,r[Z+J]=Q}Sh(s,e,r),Sh(u,t,r);for(var ie=g;ie<=y;++ie)if(Ho(ie,x,D,r))ie!==g&&xh(ie,g,r),++g;else if(!Ho(ie,C,L,r))for(;;)if(Ho(y,C,L,r)){Ho(y,x,D,r)?(qx(ie,g,y,r),++g,--y):(xh(ie,y,r),--y);break}else{if(--y{m();"use strict";Dh.exports={init:Jx,sweepBipartite:Gx,sweepComplete:Qx,scanBipartite:Xx,scanComplete:Zx};var ct=No(),Yx=_o(),Ko=Th(),sn=1<<28,Hr=1024,At=ct.mallocInt32(Hr),Yn=ct.mallocInt32(Hr),Jn=ct.mallocInt32(Hr),Br=ct.mallocInt32(Hr),fi=ct.mallocInt32(Hr),ua=ct.mallocInt32(Hr),Te=ct.mallocDouble(Hr*8);function Jx(e){var t=Yx.nextPow2(e);At.length>>1;Ko(Te,D);for(var C=0,L=0,g=0;g=sn)H=H-sn|0,pi(Jn,Br,L--,H);else if(H>=0)pi(At,Yn,C--,H);else if(H<=-sn){H=-H-sn|0;for(var T=0;T>>1;Ko(Te,D);for(var C=0,L=0,H=0,g=0;g>1==Te[2*g+3]>>1&&(K=2,g+=1),T<0){for(var z=-(T>>1)-1,V=0;V>1)-1;K===0?pi(At,Yn,C--,z):K===1?pi(Jn,Br,L--,z):K===2&&pi(fi,ua,H--,z)}}}function Xx(e,t,r,n,i,a,o,s,u,l,c,d){var f=0,p=2*e,g=t,y=t+e,b=1,x=1;n?x=sn:b=sn;for(var D=i;D>>1;Ko(Te,T);for(var K=0,D=0;D=sn?(V=!n,C-=sn):(V=!!n,C-=1),V)hi(At,Yn,K++,C);else{var Z=d[C],J=p*C,se=c[J+t+1],G=c[J+t+1+e];e:for(var Q=0;Q>>1;Ko(Te,C);for(var L=0,y=0;y=sn)At[L++]=b-sn;else{b-=1;var T=c[b],K=f*b,z=l[K+t+1],V=l[K+t+1+e];e:for(var Z=0;Z=0;--Z)if(At[Z]===b){for(var Q=Z+1;Q{m();"use strict";var Kr="d",mi="ax",Mh="vv",tc="fp",da="es",$o="rs",nc="re",fa="rb",Ih="ri",gi="rp",Vo="bs",rc="be",pa="bb",Ah="bi",vi="bp",ic="rv",ac="Q",oc=[Kr,mi,Mh,$o,nc,fa,Ih,Vo,rc,pa,Ah];function e0(e,t,r){var n="bruteForce"+(e?"Red":"Blue")+(t?"Flip":"")+(r?"Full":""),i=["function ",n,"(",oc.join(),"){","var ",da,"=2*",Kr,";"],a="for(var i="+$o+","+gi+"="+da+"*"+$o+";i<"+nc+";++i,"+gi+"+="+da+"){var x0="+fa+"["+mi+"+"+gi+"],x1="+fa+"["+mi+"+"+gi+"+"+Kr+"],xi="+Ih+"[i];",o="for(var j="+Vo+","+vi+"="+da+"*"+Vo+";j<"+rc+";++j,"+vi+"+="+da+"){var y0="+pa+"["+mi+"+"+vi+"],"+(r?"y1="+pa+"["+mi+"+"+vi+"+"+Kr+"],":"")+"yi="+Ah+"[j];";return e?i.push(a,ac,":",o):i.push(o,ac,":",a),r?i.push("if(y1"+rc+"-"+Vo+"){"),e?(a(!0,!1),i.push("}else{"),a(!1,!1)):(i.push("if("+tc+"){"),a(!0,!0),i.push("}else{"),a(!0,!1),i.push("}}else{if("+tc+"){"),a(!1,!0),i.push("}else{"),a(!1,!1),i.push("}")),i.push("}}return "+t);var o=r.join("")+i.join(""),s=new Function(o);return s()}sc.partial=Lh(!1);sc.full=Lh(!0)});var lc=pt((BM,Fh)=>{m();"use strict";Fh.exports=n0;var t0="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";function n0(e,t){var r="abcdef".split("").concat(t),n=[];return e.indexOf("lo")>=0&&n.push("lo=e[k+n]"),e.indexOf("hi")>=0&&n.push("hi=e[k+o]"),r.push(t0.replace("_",n.join()).replace("$",e)),Function.apply(void 0,r)}});var Rh=pt((KM,Oh)=>{m();"use strict";Oh.exports=o0;var r0=lc(),Nh=r0("lor&&i[d+t]>l;--c,d-=o){for(var f=d,p=d+o,g=0;g>>1,l=2*e,c=u,d=i[l*u+t];o=b?(c=y,d=b):g>=D?(c=p,d=g):(c=x,d=D):b>=D?(c=y,d=b):D>=g?(c=p,d=g):(c=x,d=D);for(var C=l*(s-1),L=l*c,H=0;H{m();"use strict";Uh.exports=b0;var yi=No(),cc=_o(),Hh=Ph(),s0=Hh.partial,l0=Hh.full,yr=ec(),c0=Rh(),bi=lc(),Bh=128,u0=1<<22,d0=1<<22,f0=bi("!(lo>=p0)&&!(p1>=hi)",["p0","p1"]),Kh=bi("lo===p0",["p0"]),p0=bi("lo0;){l-=1;var f=l*uc,p=jt[f],g=jt[f+1],y=jt[f+2],b=jt[f+3],x=jt[f+4],D=jt[f+5],C=l*dc,L=$r[C],H=$r[C+1],T=D&1,K=!!(D&16),z=i,V=a,Z=s,J=u;if(T&&(z=s,V=u,Z=i,J=a),!(D&2&&(y=p0(e,p,g,y,z,V,H),g>=y))&&!(D&4&&(g=h0(e,p,g,y,z,V,L),g>=y))){var se=y-g,G=x-b;if(K){if(e*se*(se+G){m();"use strict";qh.exports=S0;var br=No(),Uo=ec(),w0=Wh();function E0(e,t){for(var r=0;r>>1;if(!(o<=0)){var s,u=br.mallocDouble(2*o*i),l=br.mallocInt32(i);if(i=zh(e,o,u,l),i>0){if(o===1&&n)Uo.init(i),s=Uo.sweepComplete(o,r,0,i,u,l,0,i,u,l);else{var c=br.mallocDouble(2*o*a),d=br.mallocInt32(a);a=zh(t,o,c,d),a>0&&(Uo.init(i+a),o===1?s=Uo.sweepBipartite(o,r,0,i,u,l,0,a,c,d):s=w0(o,r,n,i,u,l,a,c,d),br.free(c),br.free(d))}br.free(u),br.free(l)}return s}}}var ha;function jh(e,t){ha.push([e,t])}function k0(e){return ha=[],Wo(e,e,jh,!0),ha}function x0(e,t){return ha=[],Wo(e,t,jh,!1),ha}function S0(e,t,r){var n;switch(arguments.length){case 1:return k0(e);case 2:return typeof t=="function"?Wo(e,e,t,!0):x0(e,t);case 3:return Wo(e,t,r,!1);default:throw new Error("box-intersect: Invalid arguments")}}});var gm=pt((UM,qo)=>{m();var Jh,Gh,Qh,Xh,Zh,em,tm,nm,rm,zo,fc,im,am,om,wi,sm,lm,cm,um,dm,fm,pm,hm,mm,jo;(function(e){var t=typeof window=="object"?window:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof qo=="object"&&typeof qo.exports=="object"?e(r(t,r(qo.exports))):e(r(t));function r(n,i){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(a,o){return n[a]=i?i(a,o):o}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(n[a]=i[a])};Jh=function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");t(n,i);function a(){this.constructor=n}n.prototype=i===null?Object.create(i):(a.prototype=i.prototype,new a)},Gh=Object.assign||function(n){for(var i,a=1,o=arguments.length;a=0;c--)(l=n[c])&&(u=(s<3?l(u):s>3?l(i,a,u):l(i,a))||u);return s>3&&u&&Object.defineProperty(i,a,u),u},Zh=function(n,i){return function(a,o){i(a,o,n)}},em=function(n,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,i)},tm=function(n,i,a,o){function s(u){return u instanceof a?u:new a(function(l){l(u)})}return new(a||(a=Promise))(function(u,l){function c(p){try{f(o.next(p))}catch(g){l(g)}}function d(p){try{f(o.throw(p))}catch(g){l(g)}}function f(p){p.done?u(p.value):s(p.value).then(c,d)}f((o=o.apply(n,i||[])).next())})},nm=function(n,i){var a={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},o,s,u,l;return l={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(f){return function(p){return d([f,p])}}function d(f){if(o)throw new TypeError("Generator is already executing.");for(;a;)try{if(o=1,s&&(u=f[0]&2?s.return:f[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,f[1])).done)return u;switch(s=0,u&&(f=[f[0]&2,u.value]),f[0]){case 0:case 1:u=f;break;case 4:return a.label++,{value:f[1],done:!1};case 5:a.label++,s=f[1],f=[0];continue;case 7:f=a.ops.pop(),a.trys.pop();continue;default:if(u=a.trys,!(u=u.length>0&&u[u.length-1])&&(f[0]===6||f[0]===2)){a=0;continue}if(f[0]===3&&(!u||f[1]>u[0]&&f[1]=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},fc=function(n,i){var a=typeof Symbol=="function"&&n[Symbol.iterator];if(!a)return n;var o=a.call(n),s,u=[],l;try{for(;(i===void 0||i-- >0)&&!(s=o.next()).done;)u.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(l)throw l.error}}return u},im=function(){for(var n=[],i=0;i1||c(y,b)})})}function c(y,b){try{d(o[y](b))}catch(x){g(u[0][3],x)}}function d(y){y.value instanceof wi?Promise.resolve(y.value.v).then(f,p):g(u[0][2],y)}function f(y){c("next",y)}function p(y){c("throw",y)}function g(y,b){y(b),u.shift(),u.length&&c(u[0][0],u[0][1])}},lm=function(n){var i,a;return i={},o("next"),o("throw",function(s){throw s}),o("return"),i[Symbol.iterator]=function(){return this},i;function o(s,u){i[s]=n[s]?function(l){return(a=!a)?{value:wi(n[s](l)),done:s==="return"}:u?u(l):l}:u}},cm=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n[Symbol.asyncIterator],a;return i?i.call(n):(n=typeof zo=="function"?zo(n):n[Symbol.iterator](),a={},o("next"),o("throw"),o("return"),a[Symbol.asyncIterator]=function(){return this},a);function o(u){a[u]=n[u]&&function(l){return new Promise(function(c,d){l=n[u](l),s(c,d,l.done,l.value)})}}function s(u,l,c,d){Promise.resolve(d).then(function(f){u({value:f,done:c})},l)}},um=function(n,i){return Object.defineProperty?Object.defineProperty(n,"raw",{value:i}):n.raw=i,n};var r=Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i};dm=function(n){if(n&&n.__esModule)return n;var i={};if(n!=null)for(var a in n)a!=="default"&&Object.prototype.hasOwnProperty.call(n,a)&&jo(i,n,a);return r(i,n),i},fm=function(n){return n&&n.__esModule?n:{default:n}},pm=function(n,i,a,o){if(a==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof i=="function"?n!==i||!o:!i.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return a==="m"?o:a==="a"?o.call(n):o?o.value:i.get(n)},hm=function(n,i,a,o,s){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i=="function"?n!==i||!s:!i.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?s.call(n,a):s?s.value=a:i.set(n,a),a},mm=function(n,i){if(i===null||typeof i!="object"&&typeof i!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?i===n:n.has(i)},e("__extends",Jh),e("__assign",Gh),e("__rest",Qh),e("__decorate",Xh),e("__param",Zh),e("__metadata",em),e("__awaiter",tm),e("__generator",nm),e("__exportStar",rm),e("__createBinding",jo),e("__values",zo),e("__read",fc),e("__spread",im),e("__spreadArrays",am),e("__spreadArray",om),e("__await",wi),e("__asyncGenerator",sm),e("__asyncDelegator",lm),e("__asyncValues",cm),e("__makeTemplateObject",um),e("__importStar",dm),e("__importDefault",fm),e("__classPrivateFieldGet",pm),e("__classPrivateFieldSet",hm),e("__classPrivateFieldIn",mm)})});var vc=pt(Pe=>{m();"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});var nt=require("obsidian"),mc="YYYY-MM-DD",gc="gggg-[W]ww",xm="YYYY-MM",Sm="YYYY-[Q]Q",_m="YYYY";function ga(e){let t=window.app.plugins.getPlugin("periodic-notes");return t&&t.settings?.[e]?.enabled}function va(){try{let{internalPlugins:e,plugins:t}=window.app;if(ga("daily")){let{format:a,folder:o,template:s}=t.getPlugin("periodic-notes")?.settings?.daily||{};return{format:a||mc,folder:o?.trim()||"",template:s?.trim()||""}}let{folder:r,format:n,template:i}=e.getPluginById("daily-notes")?.instance?.options||{};return{format:n||mc,folder:r?.trim()||"",template:i?.trim()||""}}catch(e){console.info("No custom daily note settings found!",e)}}function ya(){try{let e=window.app.plugins,t=e.getPlugin("calendar")?.options,r=e.getPlugin("periodic-notes")?.settings?.weekly;if(ga("weekly"))return{format:r.format||gc,folder:r.folder?.trim()||"",template:r.template?.trim()||""};let n=t||{};return{format:n.weeklyNoteFormat||gc,folder:n.weeklyNoteFolder?.trim()||"",template:n.weeklyNoteTemplate?.trim()||""}}catch(e){console.info("No custom weekly note settings found!",e)}}function ba(){let e=window.app.plugins;try{let t=ga("monthly")&&e.getPlugin("periodic-notes")?.settings?.monthly||{};return{format:t.format||xm,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom monthly note settings found!",t)}}function wa(){let e=window.app.plugins;try{let t=ga("quarterly")&&e.getPlugin("periodic-notes")?.settings?.quarterly||{};return{format:t.format||Sm,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom quarterly note settings found!",t)}}function Ea(){let e=window.app.plugins;try{let t=ga("yearly")&&e.getPlugin("periodic-notes")?.settings?.yearly||{};return{format:t.format||_m,folder:t.folder?.trim()||"",template:t.template?.trim()||""}}catch(t){console.info("No custom yearly note settings found!",t)}}function Cm(...e){let t=[];for(let n=0,i=e.length;n{let D=n(),C=e.clone().set({hour:D.get("hour"),minute:D.get("minute"),second:D.get("second")});return g&&C.add(parseInt(y,10),b),x?C.format(x.substring(1).trim()):C.format(a)}).replace(/{{\s*yesterday\s*}}/gi,e.clone().subtract(1,"day").format(a)).replace(/{{\s*tomorrow\s*}}/gi,e.clone().add(1,"d").format(a)));return t.foldManager.save(d,u),d}catch(d){console.error(`Failed to create file: '${c}'`,d),new nt.Notice("Unable to create new file.")}}function B0(e,t){return t[Tn(e,"day")]??null}function K0(){let{vault:e}=window.app,{folder:t}=va(),r=e.getAbstractFileByPath(nt.normalizePath(t));if(!r)throw new Mm("Failed to find daily notes folder");let n={};return nt.Vault.recurseChildren(r,i=>{if(i instanceof nt.TFile){let a=Si(i,"day");if(a){let o=Tn(a,"day");n[o]=i}}}),n}var Am=class extends Error{};function $0(){let{moment:e}=window,t=e.localeData()._week.dow,r=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;t;)r.push(r.shift()),t--;return r}function V0(e){return $0().indexOf(e.toLowerCase())}async function Lm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ya(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*title\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(c,d,f)=>{let p=V0(d);return e.weekday(p).format(f.trim())}));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function U0(e,t){return t[Tn(e,"week")]??null}function W0(){let e={};if(!Rm())return e;let{vault:t}=window.app,{folder:r}=ya(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Am("Failed to find weekly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"week");if(a){let o=Tn(a,"week");e[o]=i}}}),e}var Pm=class extends Error{};async function Fm(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=ba(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function z0(e,t){return t[Tn(e,"month")]??null}function j0(){let e={};if(!Hm())return e;let{vault:t}=window.app,{folder:r}=ba(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Pm("Failed to find monthly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"month");if(a){let o=Tn(a,"month");e[o]=i}}}),e}var Nm=class extends Error{};async function q0(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=wa(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function Y0(e,t){return t[Tn(e,"quarter")]??null}function J0(){let e={};if(!Bm())return e;let{vault:t}=window.app,{folder:r}=wa(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Nm("Failed to find quarterly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"quarter");if(a){let o=Tn(a,"quarter");e[o]=i}}}),e}var Om=class extends Error{};async function G0(e){let{vault:t}=window.app,{template:r,format:n,folder:i}=Ea(),[a,o]=await xi(r),s=e.format(n),u=await ka(i,s);try{let l=await t.create(u,a.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,d,f,p,g,y)=>{let b=window.moment(),x=e.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&x.add(parseInt(p,10),g),y?x.format(y.substring(1).trim()):x.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,o),l}catch(l){console.error(`Failed to create file: '${u}'`,l),new nt.Notice("Unable to create new file.")}}function Q0(e,t){return t[Tn(e,"year")]??null}function X0(){let e={};if(!Km())return e;let{vault:t}=window.app,{folder:r}=Ea(),n=t.getAbstractFileByPath(nt.normalizePath(r));if(!n)throw new Om("Failed to find yearly notes folder");return nt.Vault.recurseChildren(n,i=>{if(i instanceof nt.TFile){let a=Si(i,"year");if(a){let o=Tn(a,"year");e[o]=i}}}),e}function Z0(){let{app:e}=window,t=e.internalPlugins.plugins["daily-notes"];if(t&&t.enabled)return!0;let r=e.plugins.getPlugin("periodic-notes");return r&&r.settings?.daily?.enabled}function Rm(){let{app:e}=window;if(e.plugins.getPlugin("calendar"))return!0;let t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.weekly?.enabled}function Hm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.monthly?.enabled}function Bm(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.quarterly?.enabled}function Km(){let{app:e}=window,t=e.plugins.getPlugin("periodic-notes");return t&&t.settings?.yearly?.enabled}function eS(e){return{day:va,week:ya,month:ba,quarter:wa,year:Ea}[e]()}function tS(e,t){return{day:Im,month:Fm,week:Lm}[e](t)}Pe.DEFAULT_DAILY_NOTE_FORMAT=mc;Pe.DEFAULT_MONTHLY_NOTE_FORMAT=xm;Pe.DEFAULT_QUARTERLY_NOTE_FORMAT=Sm;Pe.DEFAULT_WEEKLY_NOTE_FORMAT=gc;Pe.DEFAULT_YEARLY_NOTE_FORMAT=_m;Pe.appHasDailyNotesPluginLoaded=Z0;Pe.appHasMonthlyNotesPluginLoaded=Hm;Pe.appHasQuarterlyNotesPluginLoaded=Bm;Pe.appHasWeeklyNotesPluginLoaded=Rm;Pe.appHasYearlyNotesPluginLoaded=Km;Pe.createDailyNote=Im;Pe.createMonthlyNote=Fm;Pe.createPeriodicNote=tS;Pe.createQuarterlyNote=q0;Pe.createWeeklyNote=Lm;Pe.createYearlyNote=G0;Pe.getAllDailyNotes=K0;Pe.getAllMonthlyNotes=j0;Pe.getAllQuarterlyNotes=J0;Pe.getAllWeeklyNotes=W0;Pe.getAllYearlyNotes=X0;Pe.getDailyNote=B0;Pe.getDailyNoteSettings=va;Pe.getDateFromFile=Si;Pe.getDateFromPath=H0;Pe.getDateUID=Tn;Pe.getMonthlyNote=z0;Pe.getMonthlyNoteSettings=ba;Pe.getPeriodicNoteSettings=eS;Pe.getQuarterlyNote=Y0;Pe.getQuarterlyNoteSettings=wa;Pe.getTemplateInfo=xi;Pe.getWeeklyNote=U0;Pe.getWeeklyNoteSettings=ya;Pe.getYearlyNote=Q0;Pe.getYearlyNoteSettings=Ea});var Ma=pt((fO,Zu)=>{m();"use strict";var u_=Object.prototype.hasOwnProperty,qt="~";function Da(){}Object.create&&(Da.prototype=Object.create(null),new Da().__proto__||(qt=!1));function d_(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function dy(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new d_(r,n||e,i),o=qt?qt+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],a]:e._events[o].push(a):(e._events[o]=a,e._eventsCount++),e}function Cs(e,t){--e._eventsCount==0?e._events=new Da:delete e._events[t]}function $t(){this._events=new Da,this._eventsCount=0}$t.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)u_.call(r,n)&&t.push(qt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};$t.prototype.listeners=function(t){var r=qt?qt+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=new Array(a);i{m();(function(e,t){typeof fd=="object"&&typeof pd!="undefined"?pd.exports=t():typeof define=="function"&&define.amd?define(t):e.Mark=t()})(fd,function(){"use strict";var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},t=function(s,u){if(!(s instanceof u))throw new TypeError("Cannot call a class as a function")},r=function(){function s(u,l){for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5e3;t(this,s),this.ctx=u,this.iframes=l,this.exclude=c,this.iframesTimeout=d}return r(s,[{key:"getContexts",value:function(){var l=void 0,c=[];return typeof this.ctx=="undefined"||!this.ctx?l=[]:NodeList.prototype.isPrototypeOf(this.ctx)?l=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?l=this.ctx:typeof this.ctx=="string"?l=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):l=[this.ctx],l.forEach(function(d){var f=c.filter(function(p){return p.contains(d)}).length>0;c.indexOf(d)===-1&&!f&&c.push(d)}),c}},{key:"getIframeContents",value:function(l,c){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},f=void 0;try{var p=l.contentWindow;if(f=p.document,!p||!f)throw new Error("iframe inaccessible")}catch(g){d()}f&&c(f)}},{key:"isIframeBlank",value:function(l){var c="about:blank",d=l.getAttribute("src").trim(),f=l.contentWindow.location.href;return f===c&&d!==c&&d}},{key:"observeIframeLoad",value:function(l,c,d){var f=this,p=!1,g=null,y=function b(){if(!p){p=!0,clearTimeout(g);try{f.isIframeBlank(l)||(l.removeEventListener("load",b),f.getIframeContents(l,c,d))}catch(x){d()}}};l.addEventListener("load",y),g=setTimeout(y,this.iframesTimeout)}},{key:"onIframeReady",value:function(l,c,d){try{l.contentWindow.document.readyState==="complete"?this.isIframeBlank(l)?this.observeIframeLoad(l,c,d):this.getIframeContents(l,c,d):this.observeIframeLoad(l,c,d)}catch(f){d()}}},{key:"waitForIframes",value:function(l,c){var d=this,f=0;this.forEachIframe(l,function(){return!0},function(p){f++,d.waitForIframes(p.querySelector("html"),function(){--f||c()})},function(p){p||c()})}},{key:"forEachIframe",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},g=l.querySelectorAll("iframe"),y=g.length,b=0;g=Array.prototype.slice.call(g);var x=function(){--y<=0&&p(b)};y||x(),g.forEach(function(D){s.matches(D,f.exclude)?x():f.onIframeReady(D,function(C){c(D)&&(b++,d(C)),x()},x)})}},{key:"createIterator",value:function(l,c,d){return document.createNodeIterator(l,c,d,!1)}},{key:"createInstanceOnIframe",value:function(l){return new s(l.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(l,c,d){var f=l.compareDocumentPosition(d),p=Node.DOCUMENT_POSITION_PRECEDING;if(f&p)if(c!==null){var g=c.compareDocumentPosition(d),y=Node.DOCUMENT_POSITION_FOLLOWING;if(g&y)return!0}else return!0;return!1}},{key:"getIteratorNode",value:function(l){var c=l.previousNode(),d=void 0;return c===null?d=l.nextNode():d=l.nextNode()&&l.nextNode(),{prevNode:c,node:d}}},{key:"checkIframeFilter",value:function(l,c,d,f){var p=!1,g=!1;return f.forEach(function(y,b){y.val===d&&(p=b,g=y.handled)}),this.compareNodeIframe(l,c,d)?(p===!1&&!g?f.push({val:d,handled:!0}):p!==!1&&!g&&(f[p].handled=!0),!0):(p===!1&&f.push({val:d,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(l,c,d,f){var p=this;l.forEach(function(g){g.handled||p.getIframeContents(g.val,function(y){p.createInstanceOnIframe(y).forEachNode(c,d,f)})})}},{key:"iterateThroughNodes",value:function(l,c,d,f,p){for(var g=this,y=this.createIterator(c,l,f),b=[],x=[],D=void 0,C=void 0,L=function(){var T=g.getIteratorNode(y);return C=T.prevNode,D=T.node,D};L();)this.iframes&&this.forEachIframe(c,function(H){return g.checkIframeFilter(D,C,H,b)},function(H){g.createInstanceOnIframe(H).forEachNode(l,function(T){return x.push(T)},f)}),x.push(D);x.forEach(function(H){d(H)}),this.iframes&&this.handleOpenIframes(b,l,d,f),p()}},{key:"forEachNode",value:function(l,c,d){var f=this,p=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){},g=this.getContexts(),y=g.length;y||p(),g.forEach(function(b){var x=function(){f.iterateThroughNodes(l,b,c,d,function(){--y<=0&&p()})};f.iframes?f.waitForIframes(b,x):x()})}}],[{key:"matches",value:function(l,c){var d=typeof c=="string"?[c]:c,f=l.matches||l.matchesSelector||l.msMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector;if(f){var p=!1;return d.every(function(g){return f.call(l,g)?(p=!0,!1):!0}),p}else return!1}}]),s}(),a=function(){function s(u){t(this,s),this.ctx=u,this.ie=!1;var l=window.navigator.userAgent;(l.indexOf("MSIE")>-1||l.indexOf("Trident")>-1)&&(this.ie=!0)}return r(s,[{key:"log",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"debug",d=this.opt.log;!this.opt.debug||(typeof d=="undefined"?"undefined":e(d))==="object"&&typeof d[c]=="function"&&d[c]("mark.js: "+l)}},{key:"escapeStr",value:function(l){return l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(l){return this.opt.wildcards!=="disabled"&&(l=this.setupWildcardsRegExp(l)),l=this.escapeStr(l),Object.keys(this.opt.synonyms).length&&(l=this.createSynonymsRegExp(l)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),this.opt.diacritics&&(l=this.createDiacriticsRegExp(l)),l=this.createMergedBlanksRegExp(l),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.createJoinersRegExp(l)),this.opt.wildcards!=="disabled"&&(l=this.createWildcardsRegExp(l)),l=this.createAccuracyRegExp(l),l}},{key:"createSynonymsRegExp",value:function(l){var c=this.opt.synonyms,d=this.opt.caseSensitive?"":"i",f=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var p in c)if(c.hasOwnProperty(p)){var g=c[p],y=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(p):this.escapeStr(p),b=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(g):this.escapeStr(g);y!==""&&b!==""&&(l=l.replace(new RegExp("("+this.escapeStr(y)+"|"+this.escapeStr(b)+")","gm"+d),f+("("+this.processSynomyms(y)+"|")+(this.processSynomyms(b)+")")+f))}return l}},{key:"processSynomyms",value:function(l){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(l=this.setupIgnoreJoinersRegExp(l)),l}},{key:"setupWildcardsRegExp",value:function(l){return l=l.replace(/(?:\\)*\?/g,function(c){return c.charAt(0)==="\\"?"?":""}),l.replace(/(?:\\)*\*/g,function(c){return c.charAt(0)==="\\"?"*":""})}},{key:"createWildcardsRegExp",value:function(l){var c=this.opt.wildcards==="withSpaces";return l.replace(/\u0001/g,c?"[\\S\\s]?":"\\S?").replace(/\u0002/g,c?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(l){return l.replace(/[^(|)\\]/g,function(c,d,f){var p=f.charAt(d+1);return/[(|)\\]/.test(p)||p===""?c:c+"\0"})}},{key:"createJoinersRegExp",value:function(l){var c=[],d=this.opt.ignorePunctuation;return Array.isArray(d)&&d.length&&c.push(this.escapeStr(d.join(""))),this.opt.ignoreJoiners&&c.push("\\u00ad\\u200b\\u200c\\u200d"),c.length?l.split(/\u0000+/).join("["+c.join("")+"]*"):l}},{key:"createDiacriticsRegExp",value:function(l){var c=this.opt.caseSensitive?"":"i",d=this.opt.caseSensitive?["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105","A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010D","C\xC7\u0106\u010C","d\u0111\u010F","D\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119","E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B","I\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142","L\u0141","n\xF1\u0148\u0144","N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D","O\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159","R\u0158","s\u0161\u015B\u0219\u015F","S\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163","T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B","U\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF","Y\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017A","Z\u017D\u017B\u0179"]:["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104","c\xE7\u0107\u010DC\xC7\u0106\u010C","d\u0111\u010FD\u0110\u010E","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012BI\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A","l\u0142L\u0141","n\xF1\u0148\u0144N\xD1\u0147\u0143","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014DO\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C","r\u0159R\u0158","s\u0161\u015B\u0219\u015FS\u0160\u015A\u0218\u015E","t\u0165\u021B\u0163T\u0164\u021A\u0162","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016BU\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFFY\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178","z\u017E\u017C\u017AZ\u017D\u017B\u0179"],f=[];return l.split("").forEach(function(p){d.every(function(g){if(g.indexOf(p)!==-1){if(f.indexOf(g)>-1)return!1;l=l.replace(new RegExp("["+g+"]","gm"+c),"["+g+"]"),f.push(g)}return!0})}),l}},{key:"createMergedBlanksRegExp",value:function(l){return l.replace(/[\s]+/gmi,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(l){var c=this,d="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xA1\xBF",f=this.opt.accuracy,p=typeof f=="string"?f:f.value,g=typeof f=="string"?[]:f.limiters,y="";switch(g.forEach(function(b){y+="|"+c.escapeStr(b)}),p){case"partially":default:return"()("+l+")";case"complementary":return y="\\s"+(y||this.escapeStr(d)),"()([^"+y+"]*"+l+"[^"+y+"]*)";case"exactly":return"(^|\\s"+y+")("+l+")(?=$|\\s"+y+")"}}},{key:"getSeparatedKeywords",value:function(l){var c=this,d=[];return l.forEach(function(f){c.opt.separateWordSearch?f.split(" ").forEach(function(p){p.trim()&&d.indexOf(p)===-1&&d.push(p)}):f.trim()&&d.indexOf(f)===-1&&d.push(f)}),{keywords:d.sort(function(f,p){return p.length-f.length}),length:d.length}}},{key:"isNumeric",value:function(l){return Number(parseFloat(l))==l}},{key:"checkRanges",value:function(l){var c=this;if(!Array.isArray(l)||Object.prototype.toString.call(l[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(l),[];var d=[],f=0;return l.sort(function(p,g){return p.start-g.start}).forEach(function(p){var g=c.callNoMatchOnInvalidRanges(p,f),y=g.start,b=g.end,x=g.valid;x&&(p.start=y,p.length=b-y,d.push(p),f=b)}),d}},{key:"callNoMatchOnInvalidRanges",value:function(l,c){var d=void 0,f=void 0,p=!1;return l&&typeof l.start!="undefined"?(d=parseInt(l.start,10),f=d+parseInt(l.length,10),this.isNumeric(l.start)&&this.isNumeric(l.length)&&f-c>0&&f-d>0?p=!0:(this.log("Ignoring invalid or overlapping range: "+(""+JSON.stringify(l))),this.opt.noMatch(l))):(this.log("Ignoring invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:d,end:f,valid:p}}},{key:"checkWhitespaceRanges",value:function(l,c,d){var f=void 0,p=!0,g=d.length,y=c-g,b=parseInt(l.start,10)-y;return b=b>g?g:b,f=b+parseInt(l.length,10),f>g&&(f=g,this.log("End range automatically set to the max value of "+g)),b<0||f-b<0||b>g||f>g?(p=!1,this.log("Invalid range: "+JSON.stringify(l)),this.opt.noMatch(l)):d.substring(b,f).replace(/\s+/g,"")===""&&(p=!1,this.log("Skipping whitespace only range: "+JSON.stringify(l)),this.opt.noMatch(l)),{start:b,end:f,valid:p}}},{key:"getTextNodes",value:function(l){var c=this,d="",f=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(p){f.push({start:d.length,end:(d+=p.textContent).length,node:p})},function(p){return c.matchesExclude(p.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){l({value:d,nodes:f})})}},{key:"matchesExclude",value:function(l){return i.matches(l,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(l,c,d){var f=this.opt.element?this.opt.element:"mark",p=l.splitText(c),g=p.splitText(d-c),y=document.createElement(f);return y.setAttribute("data-markjs","true"),this.opt.className&&y.setAttribute("class",this.opt.className),y.textContent=p.textContent,p.parentNode.replaceChild(y,p),g}},{key:"wrapRangeInMappedTextNode",value:function(l,c,d,f,p){var g=this;l.nodes.every(function(y,b){var x=l.nodes[b+1];if(typeof x=="undefined"||x.start>c){if(!f(y.node))return!1;var D=c-y.start,C=(d>y.end?y.end:d)-y.start,L=l.value.substr(0,y.start),H=l.value.substr(C+y.start);if(y.node=g.wrapRangeInTextNode(y.node,D,C),l.value=L+H,l.nodes.forEach(function(T,K){K>=b&&(l.nodes[K].start>0&&K!==b&&(l.nodes[K].start-=C),l.nodes[K].end-=C)}),d-=C,p(y.node.previousSibling,y.start),d>y.end)c=y.end;else return!1}return!0})}},{key:"wrapMatches",value:function(l,c,d,f,p){var g=this,y=c===0?0:c+1;this.getTextNodes(function(b){b.nodes.forEach(function(x){x=x.node;for(var D=void 0;(D=l.exec(x.textContent))!==null&&D[y]!=="";)if(!!d(D[y],x)){var C=D.index;if(y!==0)for(var L=1;L{m();(function(t,r){typeof Ws=="object"&&typeof Md=="object"?Md.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ws=="object"?Ws.Choices=r():t.Choices=r()})(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:a})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(i&1&&(n=r(n)),i&8||i&4&&typeof n=="object"&&n&&n.__esModule)return n;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:n}),i&2&&typeof n!="string")for(var o in n)r.d(a,o,function(s){return n[s]}.bind(null,o));return a},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="/public/assets/scripts/",r(r.s=4)}([function(e,t,r){"use strict";var n=function(L){return i(L)&&!a(L)};function i(C){return!!C&&typeof C=="object"}function a(C){var L=Object.prototype.toString.call(C);return L==="[object RegExp]"||L==="[object Date]"||u(C)}var o=typeof Symbol=="function"&&Symbol.for,s=o?Symbol.for("react.element"):60103;function u(C){return C.$$typeof===s}function l(C){return Array.isArray(C)?[]:{}}function c(C,L){return L.clone!==!1&&L.isMergeableObject(C)?x(l(C),C,L):C}function d(C,L,H){return C.concat(L).map(function(T){return c(T,H)})}function f(C,L){if(!L.customMerge)return x;var H=L.customMerge(C);return typeof H=="function"?H:x}function p(C){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(C).filter(function(L){return C.propertyIsEnumerable(L)}):[]}function g(C){return Object.keys(C).concat(p(C))}function y(C,L){try{return L in C&&!(Object.hasOwnProperty.call(C,L)&&Object.propertyIsEnumerable.call(C,L))}catch(H){return!1}}function b(C,L,H){var T={};return H.isMergeableObject(C)&&g(C).forEach(function(K){T[K]=c(C[K],H)}),g(L).forEach(function(K){y(C,K)||(!H.isMergeableObject(L[K])||!C[K]?T[K]=c(L[K],H):T[K]=f(K,H)(C[K],L[K],H))}),T}function x(C,L,H){H=H||{},H.arrayMerge=H.arrayMerge||d,H.isMergeableObject=H.isMergeableObject||n,H.cloneUnlessOtherwiseSpecified=c;var T=Array.isArray(L),K=Array.isArray(C),z=T===K;return z?T?H.arrayMerge(C,L,H):b(C,L,H):c(L,H)}x.all=function(L,H){if(!Array.isArray(L))throw new Error("first argument should be an array");return L.reduce(function(T,K){return x(T,K,H)},{})};var D=x;e.exports=D},function(e,t,r){"use strict";(function(n,i){var a=r(3),o;typeof self!="undefined"?o=self:typeof window!="undefined"?o=window:typeof n!="undefined"?o=n:o=i;var s=Object(a.a)(o);t.a=s}).call(this,r(5),r(6)(e))},function(e,t,r){(function(n,i){e.exports=i()})(this,function(){return function(n){var i={};function a(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return n[o].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=n,a.c=i,a.d=function(o,s,u){a.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:u})},a.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},a.t=function(o,s){if(1&s&&(o=a(o)),8&s||4&s&&typeof o=="object"&&o&&o.__esModule)return o;var u=Object.create(null);if(a.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:o}),2&s&&typeof o!="string")for(var l in o)a.d(u,l,function(c){return o[c]}.bind(null,l));return u},a.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return a.d(s,"a",s),s},a.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},a.p="",a(a.s=1)}([function(n,i){n.exports=function(a){return Array.isArray?Array.isArray(a):Object.prototype.toString.call(a)==="[object Array]"}},function(n,i,a){function o(f){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p})(f)}function s(f,p){for(var g=0;g1&&arguments[1]!==void 0?arguments[1]:{limit:!1};this._log(`--------- +Search pattern: "`.concat(b,'"'));var D=this._prepareSearchers(b),C=D.tokenSearchers,L=D.fullSearcher,H=this._search(C,L),T=H.weights,K=H.results;return this._computeScore(T,K),this.options.shouldSort&&this._sort(K),x.limit&&typeof x.limit=="number"&&(K=K.slice(0,x.limit)),this._format(K)}},{key:"_prepareSearchers",value:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",x=[];if(this.options.tokenize)for(var D=b.split(this.options.tokenSeparator),C=0,L=D.length;C0&&arguments[0]!==void 0?arguments[0]:[],x=arguments.length>1?arguments[1]:void 0,D=this.list,C={},L=[];if(typeof D[0]=="string"){for(var H=0,T=D.length;H1)throw new Error("Key weight has to be > 0 and <= 1");G=G.name}else K[G]={weight:1};this._analyze({key:G,value:this.options.getFn(Z,G),record:Z,index:z},{resultMap:C,results:L,tokenSearchers:b,fullSearcher:x})}return{weights:K,results:L}}},{key:"_analyze",value:function(b,x){var D=b.key,C=b.arrayIndex,L=C===void 0?-1:C,H=b.value,T=b.record,K=b.index,z=x.tokenSearchers,V=z===void 0?[]:z,Z=x.fullSearcher,J=Z===void 0?[]:Z,se=x.resultMap,G=se===void 0?{}:se,Q=x.results,ie=Q===void 0?[]:Q;if(H!=null){var he=!1,pe=-1,ge=0;if(typeof H=="string"){this._log(` +Key: `.concat(D===""?"-":D));var be=J.search(H);if(this._log('Full text: "'.concat(H,'", score: ').concat(be.score)),this.options.tokenize){for(var De=H.split(this.options.tokenSeparator),F=[],N=0;N-1&&(Ve=(Ve+pe)/2),this._log("Score average:",Ve);var dt=!this.options.tokenize||!this.options.matchAllTokens||ge>=V.length;if(this._log(` +Check Matches: `.concat(dt)),(he||be.isMatch)&&dt){var vt=G[K];vt?vt.output.push({key:D,arrayIndex:L,value:H,score:Ve,matchedIndices:be.matchedIndices}):(G[K]={item:T,output:[{key:D,arrayIndex:L,value:H,score:Ve,matchedIndices:be.matchedIndices}]},ie.push(G[K]))}}else if(c(H))for(var Ot=0,Kn=H.length;Ot-1&&(he.arrayIndex=ie.arrayIndex),J.matches.push(he)}}}),this.options.includeScore&&C.push(function(Z,J){J.score=Z.score});for(var L=0,H=b.length;Lx)return s(y,this.pattern,D);var C=this.options,L=C.location,H=C.distance,T=C.threshold,K=C.findAllMatches,z=C.minMatchCharLength;return u(y,this.pattern,this.patternAlphabet,{location:L,distance:H,threshold:T,findAllMatches:K,minMatchCharLength:z})}}])&&o(f.prototype,p),g&&o(f,g),d}();n.exports=c},function(n,i){var a=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;n.exports=function(o,s){var u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:/ +/g,l=new RegExp(s.replace(a,"\\$&").replace(u,"|")),c=o.match(l),d=!!c,f=[];if(d)for(var p=0,g=c.length;p=N;W-=1){var j=W-1,q=c[u.charAt(j)];if(q&&(J[j]=1),Ge[W]=(Ge[W+1]<<1|1)&q,be!==0&&(Ge[W]|=(ie[W+1]|ie[W])<<1|1|ie[W+1]),Ge[W]&ge&&(he=o(l,{errors:be,currentLocation:j,expectedLocation:T,distance:y}))<=z){if(z=he,(V=j)<=T)break;N=Math.max(1,2*T-V)}}if(o(l,{errors:be+1,currentLocation:T,expectedLocation:T,distance:y})>z)break;ie=Ge}return{isMatch:V>=0,score:he===0?.001:he,matchedIndices:s(J,H)}}},function(n,i){n.exports=function(a,o){var s=o.errors,u=s===void 0?0:s,l=o.currentLocation,c=l===void 0?0:l,d=o.expectedLocation,f=d===void 0?0:d,p=o.distance,g=p===void 0?100:p,y=u/a.length,b=Math.abs(f-c);return g?y+b/g:b?1:y}},function(n,i){n.exports=function(){for(var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,s=[],u=-1,l=-1,c=0,d=a.length;c=o&&s.push([u,l]),u=-1)}return a[c-1]&&c-u>=o&&s.push([u,c-1]),s}},function(n,i){n.exports=function(a){for(var o={},s=a.length,u=0;u0)return"Unexpected "+(R.length>1?"keys":"key")+" "+('"'+R.join('", "')+'" found in '+I+". ")+"Expected to find one of the known reducer keys instead: "+('"'+k.join('", "')+'". Unexpected keys will be ignored.')}function y(O){Object.keys(O).forEach(function(w){var E=O[w],v=E(void 0,{type:l.INIT});if(typeof v=="undefined")throw new Error('Reducer "'+w+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof E(void 0,{type:l.PROBE_UNKNOWN_ACTION()})=="undefined")throw new Error('Reducer "'+w+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function b(O){for(var w=Object.keys(O),E={},v=0;v-1?O.map(function(E){var v=E;return v.id===parseInt(w.choiceId,10)&&(v.selected=!0),v}):O;case"REMOVE_ITEM":return w.choiceId>-1?O.map(function(E){var v=E;return v.id===parseInt(w.choiceId,10)&&(v.selected=!1),v}):O;case"FILTER_CHOICES":return O.map(function(E){var v=E;return v.active=w.results.some(function(k){var I=k.item,R=k.score;return I.id===v.id?(v.score=R,!0):!1}),v});case"ACTIVATE_CHOICES":return O.map(function(E){var v=E;return v.active=w.active,v});case"CLEAR_CHOICES":return G;default:return O}}var ie={loading:!1},he=function(w,E){switch(w===void 0&&(w=ie),E.type){case"SET_IS_LOADING":return{loading:E.isLoading};default:return w}},pe=he,ge=function(w,E){return Math.floor(Math.random()*(E-w)+w)},be=function(w){return Array.from({length:w},function(){return ge(0,36).toString(36)}).join("")},De=function(w,E){var v=w.id||w.name&&w.name+"-"+be(2)||be(4);return v=v.replace(/(:|\.|\[|\]|,)/g,""),v=E+"-"+v,v},F=function(w){return Object.prototype.toString.call(w).slice(8,-1)},N=function(w,E){return E!=null&&F(E)===w},ut=function(w,E){return E===void 0&&(E=document.createElement("div")),w.nextSibling?w.parentNode.insertBefore(E,w.nextSibling):w.parentNode.appendChild(E),E.appendChild(w)},Ge=function(w,E,v){if(v===void 0&&(v=1),!(!(w instanceof Element)||typeof E!="string")){for(var k=(v>0?"next":"previous")+"ElementSibling",I=w[k];I;){if(I.matches(E))return I;I=I[k]}return I}},W=function(w,E,v){if(v===void 0&&(v=1),!w)return!1;var k;return v>0?k=E.scrollTop+E.offsetHeight>=w.offsetTop+w.offsetHeight:k=w.offsetTop>=E.scrollTop,k},j=function(w){return typeof w!="string"?w:w.replace(/&/g,"&").replace(/>/g,"&rt;").replace(/"'+j(w)+'"'},maxItemText:function(w){return"Only "+w+" values can be added"},valueComparer:function(w,E){return w===E},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:ti},Rt={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice"},Wt={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL"},yt={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},Y="text",oe="select-one",Ee="select-multiple",ze=4,Dt=function(){function O(E){var v=E.element,k=E.type,I=E.classNames,R=E.position;this.element=v,this.classNames=I,this.type=k,this.position=R,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var w=O.prototype;return w.addEventListeners=function(){this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur)},w.removeEventListeners=function(){this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur)},w.shouldFlip=function(v){if(typeof v!="number")return!1;var k=!1;return this.position==="auto"?k=!window.matchMedia("(min-height: "+(v+1)+"px)").matches:this.position==="top"&&(k=!0),k},w.setActiveDescendant=function(v){this.element.setAttribute("aria-activedescendant",v)},w.removeActiveDescendant=function(){this.element.removeAttribute("aria-activedescendant")},w.open=function(v){this.element.classList.add(this.classNames.openState),this.element.setAttribute("aria-expanded","true"),this.isOpen=!0,this.shouldFlip(v)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},w.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute("aria-expanded","false"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},w.focus=function(){this.isFocussed||this.element.focus()},w.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},w.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},w.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute("aria-disabled"),this.type===oe&&this.element.setAttribute("tabindex","0"),this.isDisabled=!1},w.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute("aria-disabled","true"),this.type===oe&&this.element.setAttribute("tabindex","-1"),this.isDisabled=!0},w.wrap=function(v){ut(v,this.element)},w.unwrap=function(v){this.element.parentNode.insertBefore(v,this.element),this.element.parentNode.removeChild(this.element)},w.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute("aria-busy","true"),this.isLoading=!0},w.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute("aria-busy"),this.isLoading=!1},w._onFocus=function(){this.isFocussed=!0},w._onBlur=function(){this.isFocussed=!1},O}();function En(O,w){for(var E=0;E0?this.element.scrollTop+ae-U:v.offsetTop;requestAnimationFrame(function(){I._animateScroll(de,k)})}},w._scrollDown=function(v,k,I){var R=(I-v)/k,U=R>1?R:1;this.element.scrollTop=v+U},w._scrollUp=function(v,k,I){var R=(v-I)/k,U=R>1?R:1;this.element.scrollTop=v-U},w._animateScroll=function(v,k){var I=this,R=ze,U=this.element.scrollTop,X=!1;k>0?(this._scrollDown(U,R,v),Uv&&(X=!0)),X&&requestAnimationFrame(function(){I._animateScroll(v,k)})},O}();function fn(O,w){for(var E=0;E0?"treeitem":"option"),Object.assign(Re.dataset,{choice:"",id:de,value:ke,selectText:v}),Ce?(Re.classList.add(X),Re.dataset.choiceDisabled="",Re.setAttribute("aria-disabled","true")):(Re.classList.add(R),Re.dataset.choiceSelectable=""),Re},input:function(w,E){var v=w.input,k=w.inputCloned,I=Object.assign(document.createElement("input"),{type:"text",className:v+" "+k,autocomplete:"off",autocapitalize:"off",spellcheck:!1});return I.setAttribute("role","textbox"),I.setAttribute("aria-autocomplete","list"),I.setAttribute("aria-label",E),I},dropdown:function(w){var E=w.list,v=w.listDropdown,k=document.createElement("div");return k.classList.add(E,v),k.setAttribute("aria-expanded","false"),k},notice:function(w,E,v){var k=w.item,I=w.itemChoice,R=w.noResults,U=w.noChoices;v===void 0&&(v="");var X=[k,I];return v==="no-choices"?X.push(U):v==="no-results"&&X.push(R),Object.assign(document.createElement("div"),{innerHTML:E,className:X.join(" ")})},option:function(w){var E=w.label,v=w.value,k=w.customProperties,I=w.active,R=w.disabled,U=new Option(E,v,!1,I);return k&&(U.dataset.customProperties=k),U.disabled=R,U}},le=ee,re=function(w){var E=w.value,v=w.label,k=w.id,I=w.groupId,R=w.disabled,U=w.elementId,X=w.customProperties,ae=w.placeholder,de=w.keyCode;return{type:Wt.ADD_CHOICE,value:E,label:v,id:k,groupId:I,disabled:R,elementId:U,customProperties:X,placeholder:ae,keyCode:de}},ve=function(w){return{type:Wt.FILTER_CHOICES,results:w}},ue=function(w){return w===void 0&&(w=!0),{type:Wt.ACTIVATE_CHOICES,active:w}},Fe=function(){return{type:Wt.CLEAR_CHOICES}},Ne=function(w){var E=w.value,v=w.label,k=w.id,I=w.choiceId,R=w.groupId,U=w.customProperties,X=w.placeholder,ae=w.keyCode;return{type:Wt.ADD_ITEM,value:E,label:v,id:k,choiceId:I,groupId:R,customProperties:U,placeholder:X,keyCode:ae}},Me=function(w,E){return{type:Wt.REMOVE_ITEM,id:w,choiceId:E}},Qt=function(w,E){return{type:Wt.HIGHLIGHT_ITEM,id:w,highlighted:E}},bt=function(w){var E=w.value,v=w.id,k=w.active,I=w.disabled;return{type:Wt.ADD_GROUP,value:E,id:v,active:k,disabled:I}},ar=function(){return{type:"CLEAR_ALL"}},or=function(w){return{type:"RESET_TO",state:w}},zi=function(w){return{type:"SET_IS_LOADING",isLoading:w}};function no(O,w){for(var E=0;E=0?this._store.getGroupById(U):null;return this._store.dispatch(Qt(I,!0)),k&&this.passedElement.triggerEvent(Rt.highlightItem,{id:I,value:ae,label:ke,groupValue:ye&&ye.value?ye.value:null}),this},w.unhighlightItem=function(v){if(!v)return this;var k=v.id,I=v.groupId,R=I===void 0?-1:I,U=v.value,X=U===void 0?"":U,ae=v.label,de=ae===void 0?"":ae,ke=R>=0?this._store.getGroupById(R):null;return this._store.dispatch(Qt(k,!1)),this.passedElement.triggerEvent(Rt.highlightItem,{id:k,value:X,label:de,groupValue:ke&&ke.value?ke.value:null}),this},w.highlightAll=function(){var v=this;return this._store.items.forEach(function(k){return v.highlightItem(k)}),this},w.unhighlightAll=function(){var v=this;return this._store.items.forEach(function(k){return v.unhighlightItem(k)}),this},w.removeActiveItemsByValue=function(v){var k=this;return this._store.activeItems.filter(function(I){return I.value===v}).forEach(function(I){return k._removeItem(I)}),this},w.removeActiveItems=function(v){var k=this;return this._store.activeItems.filter(function(I){var R=I.id;return R!==v}).forEach(function(I){return k._removeItem(I)}),this},w.removeHighlightedItems=function(v){var k=this;return v===void 0&&(v=!1),this._store.highlightedActiveItems.forEach(function(I){k._removeItem(I),v&&k._triggerChange(I.value)}),this},w.showDropdown=function(v){var k=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){k.dropdown.show(),k.containerOuter.open(k.dropdown.distanceFromTopWindow),!v&&k._canSearch&&k.input.focus(),k.passedElement.triggerEvent(Rt.showDropdown,{})}),this)},w.hideDropdown=function(v){var k=this;return this.dropdown.isActive?(requestAnimationFrame(function(){k.dropdown.hide(),k.containerOuter.close(),!v&&k._canSearch&&(k.input.removeActiveDescendant(),k.input.blur()),k.passedElement.triggerEvent(Rt.hideDropdown,{})}),this):this},w.getValue=function(v){v===void 0&&(v=!1);var k=this._store.activeItems.reduce(function(I,R){var U=v?R.value:R;return I.push(U),I},[]);return this._isSelectOneElement?k[0]:k},w.setValue=function(v){var k=this;return this.initialised?(v.forEach(function(I){return k._setChoiceOrItem(I)}),this):this},w.setChoiceByValue=function(v){var k=this;if(!this.initialised||this._isTextElement)return this;var I=Array.isArray(v)?v:[v];return I.forEach(function(R){return k._findAndSelectChoiceByValue(R)}),this},w.setChoices=function(v,k,I,R){var U=this;if(v===void 0&&(v=[]),k===void 0&&(k="value"),I===void 0&&(I="label"),R===void 0&&(R=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof k!="string"||!k)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(R&&this.clearChoices(),typeof v=="function"){var X=v(this);if(typeof Promise=="function"&&X instanceof Promise)return new Promise(function(ae){return requestAnimationFrame(ae)}).then(function(){return U._handleLoadingState(!0)}).then(function(){return X}).then(function(ae){return U.setChoices(ae,k,I,R)}).catch(function(ae){U.config.silent||console.error(ae)}).then(function(){return U._handleLoadingState(!1)}).then(function(){return U});if(!Array.isArray(X))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: "+typeof X);return this.setChoices(X,k,I,!1)}if(!Array.isArray(v))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),v.forEach(function(ae){ae.choices?U._addGroup({id:parseInt(ae.id,10)||null,group:ae,valueKey:k,labelKey:I}):U._addChoice({value:ae[k],label:ae[I],isSelected:ae.selected,isDisabled:ae.disabled,customProperties:ae.customProperties,placeholder:ae.placeholder})}),this._stopLoading(),this},w.clearChoices=function(){return this._store.dispatch(Fe()),this},w.clearStore=function(){return this._store.dispatch(ar()),this},w.clearInput=function(){var v=!this._isSelectOneElement;return this.input.clear(v),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(ue(!0))),this},w._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var v=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,k=this._isSelectElement,I=this._currentState.items!==this._prevState.items;!v||(k&&this._renderChoices(),I&&this._renderItems(),this._prevState=this._currentState)}},w._renderChoices=function(){var v=this,k=this._store,I=k.activeGroups,R=k.activeChoices,U=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return v.choiceList.scrollToTop()}),I.length>=1&&!this._isSearching){var X=R.filter(function(Ie){return Ie.placeholder===!0&&Ie.groupId===-1});X.length>=1&&(U=this._createChoicesFragment(X,U)),U=this._createGroupsFragment(I,R,U)}else R.length>=1&&(U=this._createChoicesFragment(R,U));if(U.childNodes&&U.childNodes.length>0){var ae=this._store.activeItems,de=this._canAddItem(ae,this.input.value);de.response?(this.choiceList.append(U),this._highlightChoice()):this.choiceList.append(this._getTemplate("notice",de.notice))}else{var ke,ye;this._isSearching?(ye=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,ke=this._getTemplate("notice",ye,"no-results")):(ye=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,ke=this._getTemplate("notice",ye,"no-choices")),this.choiceList.append(ke)}},w._renderItems=function(){var v=this._store.activeItems||[];this.itemList.clear();var k=this._createItemsFragment(v);k.childNodes&&this.itemList.append(k)},w._createGroupsFragment=function(v,k,I){var R=this;I===void 0&&(I=document.createDocumentFragment());var U=function(ae){return k.filter(function(de){return R._isSelectOneElement?de.groupId===ae.id:de.groupId===ae.id&&(R.config.renderSelectedChoices==="always"||!de.selected)})};return this.config.shouldSort&&v.sort(this.config.sorter),v.forEach(function(X){var ae=U(X);if(ae.length>=1){var de=R._getTemplate("choiceGroup",X);I.appendChild(de),R._createChoicesFragment(ae,I,!0)}}),I},w._createChoicesFragment=function(v,k,I){var R=this;k===void 0&&(k=document.createDocumentFragment()),I===void 0&&(I=!1);var U=this.config,X=U.renderSelectedChoices,ae=U.searchResultLimit,de=U.renderChoiceLimit,ke=this._isSearching?we:this.config.sorter,ye=function(zt){var Mr=X==="auto"?R._isSelectOneElement||!zt.selected:!0;if(Mr){var Ir=R._getTemplate("choice",zt,R.config.itemSelectText);k.appendChild(Ir)}},Ie=v;X==="auto"&&!this._isSelectOneElement&&(Ie=v.filter(function(Ht){return!Ht.selected}));var Oe=Ie.reduce(function(Ht,zt){return zt.placeholder?Ht.placeholderChoices.push(zt):Ht.normalChoices.push(zt),Ht},{placeholderChoices:[],normalChoices:[]}),Ce=Oe.placeholderChoices,$e=Oe.normalChoices;(this.config.shouldSort||this._isSearching)&&$e.sort(ke);var Le=Ie.length,Re=this._isSelectOneElement?[].concat(Ce,$e):$e;this._isSearching?Le=ae:de&&de>0&&!I&&(Le=de);for(var ft=0;ft=R){var ae=U?this._searchChoices(v):0;this.passedElement.triggerEvent(Rt.search,{value:v,resultCount:ae})}else X&&(this._isSearching=!1,this._store.dispatch(ue(!0)))}},w._canAddItem=function(v,k){var I=!0,R=typeof this.config.addItemText=="function"?this.config.addItemText(k):this.config.addItemText;if(!this._isSelectOneElement){var U=Ve(v,k);this.config.maxItemCount>0&&this.config.maxItemCount<=v.length&&(I=!1,R=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&U&&I&&(I=!1,R=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(k):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&I&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(k)&&(I=!1,R=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(k):this.config.customAddItemText)}return{response:I,notice:R}},w._searchChoices=function(v){var k=typeof v=="string"?v.trim():v,I=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(k.length<1&&k===I+" ")return 0;var R=this._store.searchableChoices,U=k,X=[].concat(this.config.searchFields),ae=Object.assign(this.config.fuseOptions,{keys:X}),de=new i.a(R,ae),ke=de.search(U);return this._currentValue=k,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(ve(ke)),ke.length},w._addEventListeners=function(){var v=document,k=v.documentElement;k.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),k.addEventListener("click",this._onClick,{passive:!0}),k.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},w._removeEventListeners=function(){var v=document,k=v.documentElement;k.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),k.removeEventListener("click",this._onClick),k.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},w._onKeyDown=function(v){var k,I=v.target,R=v.keyCode,U=v.ctrlKey,X=v.metaKey,ae=this._store.activeItems,de=this.input.isFocussed,ke=this.dropdown.isActive,ye=this.itemList.hasChildren(),Ie=String.fromCharCode(R),Oe=yt.BACK_KEY,Ce=yt.DELETE_KEY,$e=yt.ENTER_KEY,Le=yt.A_KEY,Re=yt.ESC_KEY,ft=yt.UP_KEY,Ht=yt.DOWN_KEY,zt=yt.PAGE_UP_KEY,Mr=yt.PAGE_DOWN_KEY,Ir=U||X;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(Ie)&&this.showDropdown();var ni=(k={},k[Le]=this._onAKey,k[$e]=this._onEnterKey,k[Re]=this._onEscapeKey,k[ft]=this._onDirectionKey,k[zt]=this._onDirectionKey,k[Ht]=this._onDirectionKey,k[Mr]=this._onDirectionKey,k[Ce]=this._onDeleteKey,k[Oe]=this._onDeleteKey,k);ni[R]&&ni[R]({event:v,target:I,keyCode:R,metaKey:X,activeItems:ae,hasFocusedInput:de,hasActiveDropdown:ke,hasItems:ye,hasCtrlDownKeyPressed:Ir})},w._onKeyUp=function(v){var k=v.target,I=v.keyCode,R=this.input.value,U=this._store.activeItems,X=this._canAddItem(U,R),ae=yt.BACK_KEY,de=yt.DELETE_KEY;if(this._isTextElement){var ke=X.notice&&R;if(ke){var ye=this._getTemplate("notice",X.notice);this.dropdown.element.innerHTML=ye.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var Ie=(I===ae||I===de)&&!k.value,Oe=!this._isTextElement&&this._isSearching,Ce=this._canSearch&&X.response;Ie&&Oe?(this._isSearching=!1,this._store.dispatch(ue(!0))):Ce&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},w._onAKey=function(v){var k=v.hasItems,I=v.hasCtrlDownKeyPressed;if(I&&k){this._canSearch=!1;var R=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;R&&this.highlightAll()}},w._onEnterKey=function(v){var k=v.event,I=v.target,R=v.activeItems,U=v.hasActiveDropdown,X=yt.ENTER_KEY,ae=I.hasAttribute("data-button");if(this._isTextElement&&I.value){var de=this.input.value,ke=this._canAddItem(R,de);ke.response&&(this.hideDropdown(!0),this._addItem({value:de}),this._triggerChange(de),this.clearInput())}if(ae&&(this._handleButtonAction(R,I),k.preventDefault()),U){var ye=this.dropdown.getChild("."+this.config.classNames.highlightedState);ye&&(R[0]&&(R[0].keyCode=X),this._handleChoiceAction(R,ye)),k.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),k.preventDefault())},w._onEscapeKey=function(v){var k=v.hasActiveDropdown;k&&(this.hideDropdown(!0),this.containerOuter.focus())},w._onDirectionKey=function(v){var k=v.event,I=v.hasActiveDropdown,R=v.keyCode,U=v.metaKey,X=yt.DOWN_KEY,ae=yt.PAGE_UP_KEY,de=yt.PAGE_DOWN_KEY;if(I||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var ke=R===X||R===de?1:-1,ye=U||R===de||R===ae,Ie="[data-choice-selectable]",Oe;if(ye)ke>0?Oe=this.dropdown.element.querySelector(Ie+":last-of-type"):Oe=this.dropdown.element.querySelector(Ie);else{var Ce=this.dropdown.element.querySelector("."+this.config.classNames.highlightedState);Ce?Oe=Ge(Ce,Ie,ke):Oe=this.dropdown.element.querySelector(Ie)}Oe&&(W(Oe,this.choiceList.element,ke)||this.choiceList.scrollToChildElement(Oe,ke),this._highlightChoice(Oe)),k.preventDefault()}},w._onDeleteKey=function(v){var k=v.event,I=v.target,R=v.hasFocusedInput,U=v.activeItems;R&&!I.value&&!this._isSelectOneElement&&(this._handleBackspace(U),k.preventDefault())},w._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},w._onTouchEnd=function(v){var k=v||v.touches[0],I=k.target,R=this._wasTap&&this.containerOuter.element.contains(I);if(R){var U=I===this.containerOuter.element||I===this.containerInner.element;U&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),v.stopPropagation()}this._wasTap=!0},w._onMouseDown=function(v){var k=v.target;if(k instanceof HTMLElement){if(ji&&this.choiceList.element.contains(k)){var I=this.choiceList.element.firstElementChild,R=this._direction==="ltr"?v.offsetX>=I.offsetWidth:v.offsetX0;R&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},w._onFocus=function(v){var k=this,I,R=v.target,U=this.containerOuter.element.contains(R);if(!!U){var X=(I={},I[Y]=function(){R===k.input.element&&k.containerOuter.addFocusState()},I[oe]=function(){k.containerOuter.addFocusState(),R===k.input.element&&k.showDropdown(!0)},I[Ee]=function(){R===k.input.element&&(k.showDropdown(!0),k.containerOuter.addFocusState())},I);X[this.passedElement.element.type]()}},w._onBlur=function(v){var k=this,I=v.target,R=this.containerOuter.element.contains(I);if(R&&!this._isScrollingOnIe){var U,X=this._store.activeItems,ae=X.some(function(ke){return ke.highlighted}),de=(U={},U[Y]=function(){I===k.input.element&&(k.containerOuter.removeFocusState(),ae&&k.unhighlightAll(),k.hideDropdown(!0))},U[oe]=function(){k.containerOuter.removeFocusState(),(I===k.input.element||I===k.containerOuter.element&&!k._canSearch)&&k.hideDropdown(!0)},U[Ee]=function(){I===k.input.element&&(k.containerOuter.removeFocusState(),k.hideDropdown(!0),ae&&k.unhighlightAll())},U);de[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},w._onFormReset=function(){this._store.dispatch(or(this._initialState))},w._highlightChoice=function(v){var k=this;v===void 0&&(v=null);var I=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(!!I.length){var R=v,U=Array.from(this.dropdown.element.querySelectorAll("."+this.config.classNames.highlightedState));U.forEach(function(X){X.classList.remove(k.config.classNames.highlightedState),X.setAttribute("aria-selected","false")}),R?this._highlightPosition=I.indexOf(R):(I.length>this._highlightPosition?R=I[this._highlightPosition]:R=I[I.length-1],R||(R=I[0])),R.classList.add(this.config.classNames.highlightedState),R.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(Rt.highlightChoice,{el:R}),this.dropdown.isActive&&(this.input.setActiveDescendant(R.id),this.containerOuter.setActiveDescendant(R.id))}},w._addItem=function(v){var k=v.value,I=v.label,R=I===void 0?null:I,U=v.choiceId,X=U===void 0?-1:U,ae=v.groupId,de=ae===void 0?-1:ae,ke=v.customProperties,ye=ke===void 0?null:ke,Ie=v.placeholder,Oe=Ie===void 0?!1:Ie,Ce=v.keyCode,$e=Ce===void 0?null:Ce,Le=typeof k=="string"?k.trim():k,Re=$e,ft=ye,Ht=this._store.items,zt=R||Le,Mr=X||-1,Ir=de>=0?this._store.getGroupById(de):null,ni=Ht?Ht.length+1:1;return this.config.prependValue&&(Le=this.config.prependValue+Le.toString()),this.config.appendValue&&(Le+=this.config.appendValue.toString()),this._store.dispatch(Ne({value:Le,label:zt,id:ni,choiceId:Mr,groupId:de,customProperties:ye,placeholder:Oe,keyCode:Re})),this._isSelectOneElement&&this.removeActiveItems(ni),this.passedElement.triggerEvent(Rt.addItem,{id:ni,value:Le,label:zt,customProperties:ft,groupValue:Ir&&Ir.value?Ir.value:void 0,keyCode:Re}),this},w._removeItem=function(v){if(!v||!N("Object",v))return this;var k=v.id,I=v.value,R=v.label,U=v.choiceId,X=v.groupId,ae=X>=0?this._store.getGroupById(X):null;return this._store.dispatch(Me(k,U)),ae&&ae.value?this.passedElement.triggerEvent(Rt.removeItem,{id:k,value:I,label:R,groupValue:ae.value}):this.passedElement.triggerEvent(Rt.removeItem,{id:k,value:I,label:R}),this},w._addChoice=function(v){var k=v.value,I=v.label,R=I===void 0?null:I,U=v.isSelected,X=U===void 0?!1:U,ae=v.isDisabled,de=ae===void 0?!1:ae,ke=v.groupId,ye=ke===void 0?-1:ke,Ie=v.customProperties,Oe=Ie===void 0?null:Ie,Ce=v.placeholder,$e=Ce===void 0?!1:Ce,Le=v.keyCode,Re=Le===void 0?null:Le;if(!(typeof k=="undefined"||k===null)){var ft=this._store.choices,Ht=R||k,zt=ft?ft.length+1:1,Mr=this._baseId+"-"+this._idNames.itemChoice+"-"+zt;this._store.dispatch(re({id:zt,groupId:ye,elementId:Mr,value:k,label:Ht,disabled:de,customProperties:Oe,placeholder:$e,keyCode:Re})),X&&this._addItem({value:k,label:Ht,choiceId:zt,customProperties:Oe,placeholder:$e,keyCode:Re})}},w._addGroup=function(v){var k=this,I=v.group,R=v.id,U=v.valueKey,X=U===void 0?"value":U,ae=v.labelKey,de=ae===void 0?"label":ae,ke=N("Object",I)?I.choices:Array.from(I.getElementsByTagName("OPTION")),ye=R||Math.floor(new Date().valueOf()*Math.random()),Ie=I.disabled?I.disabled:!1;if(ke){this._store.dispatch(bt({value:I.label,id:ye,active:!0,disabled:Ie}));var Oe=function($e){var Le=$e.disabled||$e.parentNode&&$e.parentNode.disabled;k._addChoice({value:$e[X],label:N("Object",$e)?$e[de]:$e.innerHTML,isSelected:$e.selected,isDisabled:Le,groupId:ye,customProperties:$e.customProperties,placeholder:$e.placeholder})};ke.forEach(Oe)}else this._store.dispatch(bt({value:I.label,id:I.id,active:!1,disabled:I.disabled}))},w._getTemplate=function(v){var k;if(!v)return null;for(var I=this.config.classNames,R=arguments.length,U=new Array(R>1?R-1:0),X=1;X{m();(function(e,t){typeof ol=="object"&&typeof Nw!="undefined"?t(ol):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.immutableJSONPatch={}))})(ol,function(e){"use strict";function t(W){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(q){return typeof q}:t=function(q){return q&&typeof Symbol=="function"&&q.constructor===Symbol&&q!==Symbol.prototype?"symbol":typeof q},t(W)}function r(W,j){return JSON.stringify(W)===JSON.stringify(j)}function n(W,j){return W===j}function i(W){return W.slice(0,W.length-1)}function a(W){return W[W.length-1]}function o(W,j){var q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:n;if(W.length3&&arguments[3]!==void 0?arguments[3]:!1;if(j.length===0)return q;var we=j[0],xe=y(W?W[we]:void 0,j.slice(1),q,te);if(!s(W))if(te){var Ve=typeof we=="number"?[]:{};return Ve[we]=xe,Ve}else throw new Error("Path does not exist");return p(W,we,xe)}function b(W,j,q){if(j.length===0)return q(W);if(!s(W))throw new Error("Path doesn't exist");var te=j[0],we=b(W[te],j.slice(1),q);return p(W,te,we)}function x(W,j){if(j.length===0)return W;if(!s(W))throw new Error("Path does not exist");if(j.length===1){var q=j[0];if(q in W){var te=f(W);return Array.isArray(te)?te.splice(q,1):delete te[q],te}else return W}var we=j[0],xe=x(W[we],j.slice(1));return p(W,we,xe)}function D(W,j,q){var te=j.slice(0,j.length-1),we=j[j.length-1];return b(W,te,function(xe){if(!Array.isArray(xe))throw new TypeError("Array expected at path "+JSON.stringify(te));var Ve=f(xe);return Ve.splice(we,0,q),Ve})}function C(W,j){return W===void 0?!1:j.length===0?!0:C(W[j[0]],j.slice(1))}function L(W){var j=W.split("/");return j.shift(),j.map(function(q){return q.replace(/~1/g,"/").replace(/~0/g,"~")})}function H(W){return W.map(function(j){return"/"+String(j).replace(/~/g,"~0").replace(/\//g,"~1")}).join("")}function T(W,j,q){for(var te=W,we=0;we{m();(function(){var e;typeof bf!="undefined"?e=bf.exports=n:e=function(){return this||(0,eval)("this")}(),e.format=n,e.vsprintf=r,typeof console!="undefined"&&typeof console.log=="function"&&(e.printf=t);function t(){console.log(n.apply(null,arguments))}function r(i,a){return n.apply(null,[i].concat(a))}function n(i){for(var a=1,o=[].slice.call(arguments),s=0,u=i.length,l="",c,d=!1,f,p,g=!1,y,b=function(){return o[a++]},x=function(){for(var D="";/\d/.test(i[s]);)D+=i[s++],c=i[s];return D.length>0?parseInt(D):null};sTf});m();m();function Ml(e,t){let r=Object.keys(t).map(n=>ok(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function ok(e,t,r){let n=e[t],i=e.hasOwnProperty(t),a=r(n);return n&&Object.setPrototypeOf(a,n),Object.setPrototypeOf(o,a),e[t]=o,s;function o(...u){return a===n&&e[t]===o&&s(),a.apply(this,u)}function s(){e[t]===o&&(i?e[t]=n:delete e[t]),a!==n&&(a=n,Object.setPrototypeOf(o,n||Function))}}var Tt=me(require("obsidian"));m();m();Ar();var oi,kt,Il,jf,si=0,qf=[],lo=[],Yf=fe.__b,Jf=fe.__r,Gf=fe.diffed,Qf=fe.__c,Xf=fe.unmount;function Xi(e,t){fe.__h&&fe.__h(kt,e,si||t),si=0;var r=kt.__H||(kt.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:lo}),r.__[e]}function sr(e){return si=1,Zi(ep,e)}function Zi(e,t,r){var n=Xi(oi++,2);return n.t=e,n.__c||(n.__=[r?r(t):ep(void 0,t),function(i){var a=n.t(n.__[0],i);n.__[0]!==a&&(n.__=[a,n.__[1]],n.__c.setState({}))}],n.__c=kt),n.__}function Sn(e,t){var r=Xi(oi++,3);!fe.__s&&Ll(r.__H,t)&&(r.__=e,r.u=t,kt.__H.__h.push(r))}function Lr(e,t){var r=Xi(oi++,4);!fe.__s&&Ll(r.__H,t)&&(r.__=e,r.u=t,kt.__h.push(r))}function Xt(e){return si=5,lr(function(){return{current:e}},[])}function co(e,t,r){si=6,Lr(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function lr(e,t){var r=Xi(oi++,7);return Ll(r.__H,t)?(r.__V=e(),r.u=t,r.__h=e,r.__V):r.__}function cr(e,t){return si=8,lr(function(){return e},t)}function uo(e){var t=kt.context[e.__c],r=Xi(oi++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(kt)),t.props.value):e.__}function fo(e,t){fe.useDebugValue&&fe.useDebugValue(t?t(e):e)}function sk(){for(var e;e=qf.shift();)if(e.__P)try{e.__H.__h.forEach(po),e.__H.__h.forEach(Al),e.__H.__h=[]}catch(t){e.__H.__h=[],fe.__e(t,e.__v)}}fe.__b=function(e){kt=null,Yf&&Yf(e)},fe.__r=function(e){Jf&&Jf(e),oi=0;var t=(kt=e.__c).__H;t&&(Il===kt?(t.__h=[],kt.__h=[],t.__.forEach(function(r){r.__V=lo,r.u=void 0})):(t.__h.forEach(po),t.__h.forEach(Al),t.__h=[])),Il=kt},fe.diffed=function(e){Gf&&Gf(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(qf.push(t)!==1&&jf===fe.requestAnimationFrame||((jf=fe.requestAnimationFrame)||function(r){var n,i=function(){clearTimeout(a),Zf&&cancelAnimationFrame(n),setTimeout(r)},a=setTimeout(i,100);Zf&&(n=requestAnimationFrame(i))})(sk)),t.__H.__.forEach(function(r){r.u&&(r.__H=r.u),r.__V!==lo&&(r.__=r.__V),r.u=void 0,r.__V=lo})),Il=kt=null},fe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(po),r.__h=r.__h.filter(function(n){return!n.__||Al(n)})}catch(n){t.some(function(i){i.__h&&(i.__h=[])}),t=[],fe.__e(n,r.__v)}}),Qf&&Qf(e,t)},fe.unmount=function(e){Xf&&Xf(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{po(n)}catch(i){t=i}}),t&&fe.__e(t,r.__v))};var Zf=typeof requestAnimationFrame=="function";function po(e){var t=kt,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),kt=t}function Al(e){var t=kt;e.__c=e.__(),kt=t}function Ll(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function ep(e,t){return typeof t=="function"?t(e):t}Ar();Ar();function tp(e,t){for(var r in t)e[r]=t[r];return e}function Pl(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Fl(e){this.props=e}function lk(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:Pl(this.props,i)}function n(i){return this.shouldComponentUpdate=r,h(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(Fl.prototype=new ht).isPureReactComponent=!0,Fl.prototype.shouldComponentUpdate=function(e,t){return Pl(this.props,e)||Pl(this.state,t)};var np=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),np&&np(e)};var ck=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function uk(e){function t(r){var n=tp({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=ck,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var rp=function(e,t){return e==null?null:wt(wt(e).map(t))},dk={map:rp,forEach:rp,count:function(e){return e?wt(e).length:0},only:function(e){var t=wt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:wt},fk=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}fk(e,t,r,n)};var ip=fe.unmount;function ho(){this.__u=0,this.t=null,this.__b=null}function ap(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function pk(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return h(r,a)}return i.displayName="Lazy",i.__f=!0,i}function ea(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),ip&&ip(e)},(ho.prototype=new ht).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=ap(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,g){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,g)}),f.__c&&f.__c.__P===p&&(f.__e&&g.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=g)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},ho.prototype.componentWillUnmount=function(){this.t=[]},ho.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=tp({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&h(S,null,e.fallback);return i&&(i.__h=null),[h(S,null,t.__e?null:e.children),i]};var op=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),xn(h(hk,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function gk(e,t){var r=h(mk,{__v:e,i:t});return r.containerInfo=t,r}(ea.prototype=new ht).__e=function(e){var t=this,r=ap(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),op(t,e,n)):i()};r?r(a):a()}},ea.prototype.render=function(e){this.u=null,this.o=new Map;var t=wt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},ea.prototype.componentDidUpdate=ea.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){op(e,r,t)})};var sp=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,vk=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,yk=typeof document!="undefined",bk=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function wk(e,t,r){return t.__k==null&&(t.textContent=""),xn(e,t),typeof r=="function"&&r(),e?e.__c:null}function Ek(e,t,r){return Qi(e,t),typeof r=="function"&&r(),e?e.__c:null}ht.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(ht.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var lp=fe.event;function kk(){}function xk(){return this.cancelBubble}function Sk(){return this.defaultPrevented}fe.event=function(e){return lp&&(e=lp(e)),e.persist=kk,e.isPropagationStopped=xk,e.isDefaultPrevented=Sk,e.nativeEvent=e};var cp,up={configurable:!0,get:function(){return this.class}},dp=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];yk&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!bk(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&vk.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(up.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",up))}e.$$typeof=sp,dp&&dp(e)};var fp=fe.__r;fe.__r=function(e){fp&&fp(e),cp=e.__c};var _k={ReactCurrentDispatcher:{current:{readContext:function(e){return cp.__n[e.__c].props.value}}}};function Ck(e){return h.bind(null,e)}function pp(e){return!!e&&e.$$typeof===sp}function Tk(e){return pp(e)?so.apply(null,arguments):e}function Dk(e){return!!e.__k&&(xn(null,e),!0)}function Mk(e){return e&&(e.base||e.nodeType===1&&e)||null}var Ik=function(e,t){return e(t)},Ak=function(e,t){return e(t)};var P={useState:sr,useReducer:Zi,useEffect:Sn,useLayoutEffect:Lr,useRef:Xt,useImperativeHandle:co,useMemo:lr,useCallback:cr,useContext:uo,useDebugValue:fo,version:"17.0.2",Children:dk,render:wk,hydrate:Ek,unmountComponentAtNode:Dk,createPortal:gk,createElement:h,createContext:ai,createFactory:Ck,cloneElement:Tk,createRef:ri,Fragment:S,isValidElement:pp,findDOMNode:Mk,Component:ht,PureComponent:Fl,memo:lk,forwardRef:uk,flushSync:Ak,unstable_batchedUpdates:Ik,StrictMode:S,Suspense:ho,SuspenseList:ea,lazy:pk,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:_k};m();function Ze(e){return e.win}function ur(e){return e.doc.body}m();var $b=me(Et());m();var We=P.createContext(null),go=P.createContext(null);m();var Mp=me(Et()),hr=me(require("obsidian"));m();var _p=me(kp()),fr=me(Et());m();function xp(e){return Object.prototype.toString.call(e)==="[object Object]"}function Sp(e){var t,r;return xp(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(xp(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}m();function Zk(e,t){return e.length!==t.length?!1:e.every((r,n,i)=>n===i.length-1?r!==t[n]:r===t[n])}function ex(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}var an;(function(i){i[i.Before=0]="Before",i[i.After=1]="After",i[i.Self=2]="Self",i[i.NotSiblings=3]="NotSiblings"})(an||(an={}));function ra(e,t){if(ex(e,t))return 2;if(!Zk(e,t))return 3;let r=e.length-1;return e[r]=0;n--)r={children:{[e[n]]:r}};return r}function ia(e,t){let r=t;for(let n=e.length-2;n>=0;n--)r={children:{[e[n]]:r}};return r}function Cp(e){return ia(e,{children:{$splice:[[e[e.length-1],1]]}})}function Tp(e,t,r=0){return ia(e,{children:{$splice:[[e[e.length-1]+r,0,...t]]}})}function nx(e,t){return ia(e,{children:{$push:t}})}function rx(e,t){return ia(e,{children:{$unshift:t}})}function aa(e,t,r,n){let i=n?n(mt(e,t)):mt(e,t),o=ra(t,r)===an.After?-1:0,s=Cp(t),u=Tp(r,[i],o),l=(0,_p.default)(s,u,{isMergeableObject:d=>Sp(d)||Array.isArray(d)});return(0,fr.default)(e,l)}function Fr(e,t){return(0,fr.default)(e,Cp(t))}function pr(e,t,r){return(0,fr.default)(e,Tp(t,r))}function Hl(e,t,r){return(0,fr.default)(e,nx(t,r))}function Dp(e,t,r){return(0,fr.default)(e,rx(t,r))}function vo(e,t,r){return(0,fr.default)(e,tx(t,r))}function Bl(e,t,r){return(0,fr.default)(e,ia(t,r))}var Kl="kanban-plugin";function ci(){}function B(e){return`${Kl}__${e}`}function Ae(e=9){return Math.random().toString(36).slice(2,2+e)}function $l(e,t,r,n,i){var l,c;let a=mt(e,t.slice(0,-1)),o=mt(r,n.slice(0,-1)),s=(l=a==null?void 0:a.data)==null?void 0:l.shouldMarkItemsComplete,u=(c=o==null?void 0:o.data)==null?void 0:c.shouldMarkItemsComplete;return!s&&!u||u===!!i.data.isComplete?i:(0,Mp.default)(i,{data:{isComplete:{$set:u}}})}function yo(){let e=P.useRef(!1);return{oncompositionstart:()=>{e.current=!0},oncompositionend:()=>{e.current=!1},getShouldIMEBlockAction:()=>e.current}}var ix=/<%/;async function Ip(e,t){let r=t?e.app.vault.getAbstractFileByPath(t):null;if(r&&r instanceof hr.TFile){let n=app.workspace.getActiveViewOfType(hr.MarkdownView);try{(n==null?void 0:n.getMode())!=="source"&&await n.setState({...n.getState(),mode:"source"},{});let{templatesEnabled:i,templaterEnabled:a,templatesPlugin:o,templaterPlugin:s}=Vl(e.app),u=await e.app.vault.read(r);if(i&&a)return ix.test(u)?await s.append_template_to_active_file(r):await o.instance.insertTemplate(r);if(i)return await o.instance.insertTemplate(r);if(a)return await s.append_template_to_active_file(r);await e.app.vault.modify(e.app.workspace.getActiveFile(),u)}catch(i){console.error(i),e.setError(i)}}}function Nr(e){var s,u,l,c,d;let t=e.internalPlugins.plugins,r=(s=t["daily-notes"])==null?void 0:s.enabled,n=(u=t["daily-notes"])==null?void 0:u.instance.options.format,i=(l=e.plugins.plugins["nldates-obsidian"])==null?void 0:l.settings.format,a=(c=t.templates)==null?void 0:c.enabled,o=(d=t.templates)==null?void 0:d.instance.options.dateFormat;return r&&n||i||a&&o||"YYYY-MM-DD"}function ui(e){var a,o,s;let t=e.internalPlugins.plugins,r=(a=e.plugins.plugins["nldates-obsidian"])==null?void 0:a.settings.timeFormat,n=(o=t.templates)==null?void 0:o.enabled,i=(s=t.templates)==null?void 0:s.instance.options.timeFormat;return r||n&&i||"HH:mm"}var Ap=/[\\^$.*+?()[\]{}|]/g,ax=RegExp(Ap.source);function Ln(e){return e&&ax.test(e)?e.replace(Ap,"\\$&"):e||""}function Vl(e){var s;let t=e.internalPlugins.plugins.templates,r=t.enabled,n=e.plugins.plugins["templater-obsidian"],i=e.plugins.enabledPlugins.has("templater-obsidian"),a=n&&((s=this.app.plugins.plugins["templater-obsidian"].settings)==null?void 0:s.empty_file_template),o=r?t.instance.options.folder:n?n.settings.template_folder:void 0;return{templatesPlugin:t,templatesEnabled:r,templaterPlugin:n==null?void 0:n.templater,templaterEnabled:i,templaterEmptyFileTemplate:a,templateFolder:o}}function bo(e){let r=(e.getSetting("tag-colors")||[]).reduce((n,i)=>(i.tagKey&&(n[i.tagKey]=i),n),{});return n=>r[n]?r[n]:null}function wo(e){let r=(e.getSetting("date-colors")||[]).map(i=>{if(i.isToday)return["today",i];if(i.isBefore)return["before",i];if(i.isAfter)return["after",i];let a=i.direction==="after"?1:-1,o=(0,hr.moment)();return o.add(i.distance*a,i.unit),[o,i]}),n=(0,hr.moment)();return r.sort((i,a)=>i[0]==="today"?typeof a[0]=="string"?-1:a[0].isSame(n,"day")?1:-1:a[0]==="today"?typeof i[0]=="string"?1:i[0].isSame(n,"day")?-1:1:i[0]==="after"||i[0]==="before"?1:a[0]==="after"||a[0]==="before"||i[0].isBefore(a[0])?-1:1),i=>{let a=(0,hr.moment)(),o=r.find(s=>{let u=s[1];if(u.isToday)return i.isSame(a,"day");if(u.isAfter)return i.isAfter(a);if(u.isBefore)return i.isBefore(a);let l="days";return u.unit==="hours"&&(l="hours"),u.direction==="before"?i.isBetween(s[0],a,l,"[]"):i.isBetween(a,s[0],l,"[]")});return o?o[1]:null}}m();m();function et(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,n;r{n.has(t)&&(n.delete(t),n.size===0&&r.push(i))}),r.forEach(n=>{this.idScopes.delete(n),this.scrollStates.delete(n)})}};var xt=P.createContext(null),mr=P.createContext(""),sa=P.createContext(null),la=P.createContext(new oa),Eo=P.createContext(null),ko=P.createContext(null);m();m();m();var Lp={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0,toJSON(){}},Pp=[0,0,0,0];function Xe(e){return e===void 0?0:e}function xo(e,t,r,n){return[e.left+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y),e.left+e.width+Xe(t==null?void 0:t.x)+Xe(r==null?void 0:r.x)-Xe(n==null?void 0:n.x),e.top+e.height+Xe(t==null?void 0:t.y)+Xe(r==null?void 0:r.y)-Xe(n==null?void 0:n.y)]}function Ul(e,t,r,n){let i=xo(e,t,r,null);return n==="top"?(i[3]=i[1]+35,i):n==="right"?(i[0]=i[0]+e.width-35,i):n==="bottom"?(i[1]=i[1]+e.height-35,i):(i[2]=i[0]+35,i)}function So(e,t,r,n,i,a){return[e-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),t-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y),r-Xe(i==null?void 0:i.x)-Xe(a==null?void 0:a.x),n-Xe(i==null?void 0:i.y)-Xe(a==null?void 0:a.y)]}var ox=e=>sx(e,(t,r)=>t{if(o.entityId===r)return 1/0;let s=o.getHitbox(),u=Np(s)[0],l=lx(t),c=o.getData().sortAxis==="horizontal"?"x":"y",d=l[c]>n[c]?1e3:0;return di(u,n)+d}),a=ox(i);return e[a]?e[a]:null}function zl(e){let{scrollLeft:t,scrollTop:r,scrollWidth:n,scrollHeight:i,offsetWidth:a,offsetHeight:o}=e,s=t,u=r,l=n-a,c=i-o;return{x:s,y:u,maxX:Math.max(l,0),maxY:Math.max(c,0)}}function Op(e,t,r){let n=Math.trunc((r.x-t.x)*100)/100,i=Math.trunc((r.y-t.y)*100)/100;return[e[0]+n,e[1]+i,e[2]+n,e[3]+i]}function jl(e,t=[0,0,0,0]){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]+t[2],o=e[3]+t[3]-n;return{width:i-r,height:o}}var ql=class{constructor(t,r,n,i,a,o,s,u,l,c){this.isVisible=!1;this.id=n,this.instanceId=Ae(),this.scopeId=r,this.entityId=`${r}-${n}`,this.dndManager=t,this.index=i,this.children=new Map,this.parent=a,this.scrollParent=o,this.getEntityData=c,this.sortManager=s,this.pollForNodes(u,l)}pollForNodes(t,r){!t()||!r()?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t,r)):this.initNodes(t(),r())}initNodes(t,r){var n,i;if(this.entityNode=t,this.measureNode=r,r.dataset.hitboxid=this.entityId,(n=this.sortManager)==null||n.registerSortable(this.entityId,this.getEntity(Lp),t,r),this.scrollParent)this.scrollParent.registerObserverHandler(this.entityId,r,a=>{var s,u;let o=Ze(a.target);if(a.isIntersecting){let l=this.getEntity(a.boundingClientRect);(s=this.parent)==null||s.children.set(this.entityId,{entity:l,manager:this}),this.dndManager.observeResize(r),(!this.parent||this.parent.isVisible)&&(this.dndManager.registerHitboxEntity(this.entityId,l,o),this.children.forEach((c,d)=>{this.dndManager.registerHitboxEntity(d,c.entity,o)}),this.setVisibility(!0))}else this.dndManager.unregisterHitboxEntity(this.entityId,o),this.children.forEach((l,c)=>{this.dndManager.unregisterHitboxEntity(c,o)}),(u=this.parent)==null||u.children.delete(this.entityId),this.dndManager.unobserveResize(r),this.setVisibility(!1)});else{let a=this.getEntity(r.getBoundingClientRect());this.dndManager.observeResize(r),this.dndManager.registerHitboxEntity(this.entityId,a,Ze(t)),(i=this.parent)==null||i.children.set(this.entityId,{entity:a,manager:this}),this.setVisibility(!0)}}setVisibility(t){this.isVisible=t,this.children.forEach(r=>{r.manager.setVisibility(t)})}destroy(){var t,r,n;this.dndManager.unobserveResize(this.measureNode),(t=this.sortManager)==null||t.unregisterSortable(this.entityId),(r=this.scrollParent)==null||r.unregisterObserverHandler(this.entityId,this.measureNode),this.entityNode&&this.dndManager.unregisterHitboxEntity(this.entityId,Ze(this.entityNode)),(n=this.parent)==null||n.children.delete(this.entityId)}getPath(){var t;return[...((t=this.parent)==null?void 0:t.getPath())||[],this.index]}getEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:this.entityId,initial:xo(t,((n=r.scrollParent)==null?void 0:n.scrollState)||on,((i=r.scrollParent)==null?void 0:i.getScrollShift())||Pn,null),getParentScrollState(){var a;return((a=r.scrollParent)==null?void 0:a.scrollState)||on},getParentScrollShift(){var a;return((a=r.scrollParent)==null?void 0:a.getScrollShift())||Pn},recalcInitial(){var a,o;this.initial=xo(r.measureNode.getBoundingClientRect(),((a=r.scrollParent)==null?void 0:a.scrollState)||on,((o=r.scrollParent)==null?void 0:o.getScrollShift())||Pn,null)},getHitbox(){return So(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath()},getData(){var a;return{...r.getEntityData(),sortAxis:(a=r.sortManager)==null?void 0:a.axis,win:Ze(r.measureNode)}}}}};var gr=P.memo(function({id:t,index:r,elementRef:n,measureRef:i,children:a,data:o}){let s=P.useContext(xt),u=P.useContext(Eo),l=P.useContext(mr),c=P.useContext(ko),d=P.useContext(sa),f=P.useRef(o),p=P.useRef();f.current=o;let g=P.useMemo(()=>{if(s){p.current&&p.current.destroy();let y=new ql(s,l,t,r,c,d,u,()=>n.current,()=>i.current,()=>f.current);return p.current=y,y}return null},[t,r,s,l,c,d,u]);return P.useEffect(()=>()=>{var y;return(y=p.current)==null?void 0:y.destroy()},[]),g?h(ko.Provider,{value:g},a):null});function zn(e){let t=P.useContext(ko),r=(t==null?void 0:t.getPath())||[];return e!==void 0&&r.push(e),P.useMemo(()=>r,r)}m();var Pu=me(Yh());m();m();m();m();var vm=me(gm()),{__extends:WM,__assign:zM,__rest:jM,__decorate:qM,__param:YM,__metadata:JM,__awaiter:Ei,__generator:ki,__exportStar:GM,__createBinding:QM,__values:XM,__read:ZM,__spread:ym,__spreadArrays:eI,__spreadArray:tI,__await:nI,__asyncGenerator:rI,__asyncDelegator:iI,__asyncValues:aI,__makeTemplateObject:oI,__importStar:sI,__importDefault:lI,__classPrivateFieldGet:cI,__classPrivateFieldSet:uI,__classPrivateFieldIn:dI}=vm.default;m();var _0=new Map([["avi","video/avi"],["gif","image/gif"],["ico","image/x-icon"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["mkv","video/x-matroska"],["mov","video/quicktime"],["mp4","video/mp4"],["pdf","application/pdf"],["png","image/png"],["zip","application/zip"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]]);function ma(e,t){var r=C0(e);if(typeof r.path!="string"){var n=e.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof t=="string"?t:typeof n=="string"&&n.length>0?n:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function C0(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var n=t.split(".").pop().toLowerCase(),i=_0.get(n);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var T0=[".DS_Store","Thumbs.db"];function pc(e){return Ei(this,void 0,void 0,function(){return ki(this,function(t){return[2,D0(e)&&e.dataTransfer?A0(e.dataTransfer,e.type):M0(e)]})})}function D0(e){return!!e.dataTransfer}function M0(e){var t=I0(e.target)?e.target.files?hc(e.target.files):[]:[];return t.map(function(r){return ma(r)})}function I0(e){return e!==null}function A0(e,t){return Ei(this,void 0,void 0,function(){var r,n;return ki(this,function(i){switch(i.label){case 0:return e.items?(r=hc(e.items).filter(function(a){return a.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(L0))]):[3,2];case 1:return n=i.sent(),[2,bm(wm(n))];case 2:return[2,bm(hc(e.files).map(function(a){return ma(a)}))]}})})}function bm(e){return e.filter(function(t){return T0.indexOf(t.name)===-1})}function hc(e){for(var t=[],r=0;r".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmaq \xFC\xE7\xFCn s\xFCr\xFC\u015Fd\xFCr\xFCn",toggleTitle:"A\xE7 / Ba\u011Fla",amPM:["G\u018F","GS"],time_24hr:!0};jm.l10ns.az=Ec;var CI=jm.l10ns;m();var qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},kc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0410\u045E","\u0421\u0440","\u0427\u0446","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u044F\u0434\u0437\u0435\u043B\u044F","\u041F\u0430\u043D\u044F\u0434\u0437\u0435\u043B\u0430\u043A","\u0410\u045E\u0442\u043E\u0440\u0430\u043A","\u0421\u0435\u0440\u0430\u0434\u0430","\u0427\u0430\u0446\u0432\u0435\u0440","\u041F\u044F\u0442\u043D\u0456\u0446\u0430","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0442\u0443","\u041B\u044E\u0442","\u0421\u0430\u043A","\u041A\u0440\u0430","\u0422\u0440\u0430","\u0427\u044D\u0440","\u041B\u0456\u043F","\u0416\u043D\u0456","\u0412\u0435\u0440","\u041A\u0430\u0441","\u041B\u0456\u0441","\u0421\u043D\u0435"],longhand:["\u0421\u0442\u0443\u0434\u0437\u0435\u043D\u044C","\u041B\u044E\u0442\u044B","\u0421\u0430\u043A\u0430\u0432\u0456\u043A","\u041A\u0440\u0430\u0441\u0430\u0432\u0456\u043A","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u044D\u0440\u0432\u0435\u043D\u044C","\u041B\u0456\u043F\u0435\u043D\u044C","\u0416\u043D\u0456\u0432\u0435\u043D\u044C","\u0412\u0435\u0440\u0430\u0441\u0435\u043D\u044C","\u041A\u0430\u0441\u0442\u0440\u044B\u0447\u043D\u0456\u043A","\u041B\u0456\u0441\u0442\u0430\u043F\u0430\u0434","\u0421\u043D\u0435\u0436\u0430\u043D\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0422\u044B\u0434.",scrollTitle:"\u041F\u0440\u0430\u043A\u0440\u0443\u0446\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0430\u0432\u0435\u043B\u0456\u0447\u044D\u043D\u043D\u044F",toggleTitle:"\u041D\u0430\u0446\u0456\u0441\u043D\u0456\u0446\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0430\u043A\u043B\u044E\u0447\u044D\u043D\u043D\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};qm.l10ns.be=kc;var DI=qm.l10ns;m();var Ym=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xc={weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0435\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u044F\u0434\u0430","\u0427\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A","\u041F\u0435\u0442\u044A\u043A","\u0421\u044A\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0443","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0439","\u042E\u043D\u0438","\u042E\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},time_24hr:!0,firstDayOfWeek:1};Ym.l10ns.bg=xc;var II=Ym.l10ns;m();var Jm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Sc={weekdays:{shorthand:["\u09B0\u09AC\u09BF","\u09B8\u09CB\u09AE","\u09AE\u0999\u09CD\u0997\u09B2","\u09AC\u09C1\u09A7","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF","\u09B6\u09C1\u0995\u09CD\u09B0","\u09B6\u09A8\u09BF"],longhand:["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]},months:{shorthand:["\u099C\u09BE\u09A8\u09C1","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7","\u0985\u0995\u09CD\u099F\u09CB","\u09A8\u09AD\u09C7","\u09A1\u09BF\u09B8\u09C7"],longhand:["\u099C\u09BE\u09A8\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0","\u09AE\u09BE\u09B0\u09CD\u099A","\u098F\u09AA\u09CD\u09B0\u09BF\u09B2","\u09AE\u09C7","\u099C\u09C1\u09A8","\u099C\u09C1\u09B2\u09BE\u0987","\u0986\u0997\u09B8\u09CD\u099F","\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u09AE\u09CD\u09AC\u09B0","\u0985\u0995\u09CD\u099F\u09CB\u09AC\u09B0","\u09A8\u09AD\u09C7\u09AE\u09CD\u09AC\u09B0","\u09A1\u09BF\u09B8\u09C7\u09AE\u09CD\u09AC\u09B0"]}};Jm.l10ns.bn=Sc;var LI=Jm.l10ns;m();var Gm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_c={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Juni","Juli","Avgust","Septembar","Oktobar","Novembar","Decembar"]},time_24hr:!0};Gm.l10ns.bs=_c;var FI=Gm.l10ns;m();var Cc=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Go={weekdays:{shorthand:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],longhand:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},months:{shorthand:["Gen","Febr","Mar\xE7","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des"],longhand:["Gener","Febrer","Mar\xE7","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"]},ordinal:e=>{let t=e%100;if(t>3&&t<21)return"\xE8";switch(t%10){case 1:return"r";case 2:return"n";case 3:return"r";case 4:return"t";default:return"\xE8"}},firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};Cc.l10ns.cat=Cc.l10ns.ca=Go;var OI=Cc.l10ns;m();var Qm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tc={weekdays:{shorthand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"],longhand:["\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5","\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5","\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5","\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5","\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5","\u0647\u06D5\u06CC\u0646\u06CC","\u0634\u06D5\u0645\u0645\u06D5"]},months:{shorthand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"],longhand:["\u0695\u06CE\u0628\u06D5\u0646\u062F\u0627\u0646","\u0695\u06D5\u0634\u06D5\u0645\u06D5","\u0646\u06D5\u0648\u0631\u06C6\u0632","\u06AF\u0648\u06B5\u0627\u0646","\u062C\u06C6\u0632\u06D5\u0631\u062F\u0627\u0646","\u067E\u0648\u0648\u0634\u067E\u06D5\u0695","\u06AF\u06D5\u0644\u0627\u0648\u06CE\u0698","\u062E\u06D5\u0631\u0645\u0627\u0646\u0627\u0646","\u0695\u06D5\u0632\u0628\u06D5\u0631","\u06AF\u06D5\u06B5\u0627\u0695\u06CE\u0632\u0627\u0646","\u0633\u06D5\u0631\u0645\u0627\u0648\u06D5\u0632","\u0628\u06D5\u0641\u0631\u0627\u0646\u0628\u0627\u0631"]},firstDayOfWeek:6,ordinal:()=>""};Qm.l10ns.ckb=Tc;var HI=Qm.l10ns;m();var Xm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Dc={weekdays:{shorthand:["Ne","Po","\xDAt","St","\u010Ct","P\xE1","So"],longhand:["Ned\u011Ble","Pond\u011Bl\xED","\xDAter\xFD","St\u0159eda","\u010Ctvrtek","P\xE1tek","Sobota"]},months:{shorthand:["Led","\xDAn","B\u0159e","Dub","Kv\u011B","\u010Cer","\u010Cvc","Srp","Z\xE1\u0159","\u0158\xEDj","Lis","Pro"],longhand:["Leden","\xDAnor","B\u0159ezen","Duben","Kv\u011Bten","\u010Cerven","\u010Cervenec","Srpen","Z\xE1\u0159\xED","\u0158\xEDjen","Listopad","Prosinec"]},firstDayOfWeek:1,ordinal:function(){return"."},rangeSeparator:" do ",weekAbbreviation:"T\xFDd.",scrollTitle:"Rolujte pro zm\u011Bnu",toggleTitle:"P\u0159epnout dopoledne/odpoledne",amPM:["dop.","odp."],yearAriaLabel:"Rok",time_24hr:!0};Xm.l10ns.cs=Dc;var KI=Xm.l10ns;m();var Zm=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Mc={weekdays:{shorthand:["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],longhand:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"]},months:{shorthand:["Ion","Chwef","Maw","Ebr","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],longhand:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"]},firstDayOfWeek:1,ordinal:e=>e===1?"af":e===2?"ail":e===3||e===4?"ydd":e===5||e===6?"ed":e>=7&&e<=10||e==12||e==15||e==18||e==20?"fed":e==11||e==13||e==14||e==16||e==17||e==19?"eg":e>=21&&e<=39?"ain":"",time_24hr:!0};Zm.l10ns.cy=Mc;var VI=Zm.l10ns;m();var eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ic={weekdays:{shorthand:["s\xF8n","man","tir","ons","tors","fre","l\xF8r"],longhand:["s\xF8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\xF8rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"uge",time_24hr:!0};eg.l10ns.da=Ic;var WI=eg.l10ns;m();var tg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Ac={weekdays:{shorthand:["So","Mo","Di","Mi","Do","Fr","Sa"],longhand:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},months:{shorthand:["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],longhand:["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},firstDayOfWeek:1,weekAbbreviation:"KW",rangeSeparator:" bis ",scrollTitle:"Zum \xC4ndern scrollen",toggleTitle:"Zum Umschalten klicken",time_24hr:!0};tg.l10ns.de=Ac;var jI=tg.l10ns;m();var Vr={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:e=>{let t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Qo=Vr;m();var ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Lc={firstDayOfWeek:1,rangeSeparator:" \u011Dis ",weekAbbreviation:"Sem",scrollTitle:"Rulumu por pligrandigi la valoron",toggleTitle:"Klaku por \u015Dalti",weekdays:{shorthand:["Dim","Lun","Mar","Mer","\u0134a\u016D","Ven","Sab"],longhand:["diman\u0109o","lundo","mardo","merkredo","\u0135a\u016Ddo","vendredo","sabato"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016Dg","Sep","Okt","Nov","Dec"],longhand:["januaro","februaro","marto","aprilo","majo","junio","julio","a\u016Dgusto","septembro","oktobro","novembro","decembro"]},ordinal:()=>"-a",time_24hr:!0};ng.l10ns.eo=Lc;var JI=ng.l10ns;m();var rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Pc={weekdays:{shorthand:["Dom","Lun","Mar","Mi\xE9","Jue","Vie","S\xE1b"],longhand:["Domingo","Lunes","Martes","Mi\xE9rcoles","Jueves","Viernes","S\xE1bado"]},months:{shorthand:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],longhand:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]},ordinal:()=>"\xBA",firstDayOfWeek:1,rangeSeparator:" a ",time_24hr:!0};rg.l10ns.es=Pc;var QI=rg.l10ns;m();var ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Fc={weekdays:{shorthand:["P","E","T","K","N","R","L"],longhand:["P\xFChap\xE4ev","Esmasp\xE4ev","Teisip\xE4ev","Kolmap\xE4ev","Neljap\xE4ev","Reede","Laup\xE4ev"]},months:{shorthand:["Jaan","Veebr","M\xE4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],longhand:["Jaanuar","Veebruar","M\xE4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"]},firstDayOfWeek:1,ordinal:function(){return"."},weekAbbreviation:"N\xE4d",rangeSeparator:" kuni ",scrollTitle:"Keri, et suurendada",toggleTitle:"Kl\xF5psa, et vahetada",time_24hr:!0};ig.l10ns.et=Fc;var ZI=ig.l10ns;m();var ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Nc={weekdays:{shorthand:["\u06CC\u06A9","\u062F\u0648","\u0633\u0647","\u0686\u0647\u0627\u0631","\u067E\u0646\u062C","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],longhand:["\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647","\u062F\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u200C\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067E\u0646\u0686\u200C\u0634\u0646\u0628\u0647","\u062C\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"]},months:{shorthand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"],longhand:["\u0698\u0627\u0646\u0648\u06CC\u0647","\u0641\u0648\u0631\u06CC\u0647","\u0645\u0627\u0631\u0633","\u0622\u0648\u0631\u06CC\u0644","\u0645\u0647","\u0698\u0648\u0626\u0646","\u0698\u0648\u0626\u06CC\u0647","\u0627\u0648\u062A","\u0633\u067E\u062A\u0627\u0645\u0628\u0631","\u0627\u06A9\u062A\u0628\u0631","\u0646\u0648\u0627\u0645\u0628\u0631","\u062F\u0633\u0627\u0645\u0628\u0631"]},firstDayOfWeek:6,ordinal:()=>""};ag.l10ns.fa=Nc;var tA=ag.l10ns;m();var og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Oc={firstDayOfWeek:1,weekdays:{shorthand:["su","ma","ti","ke","to","pe","la"],longhand:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},months:{shorthand:["tammi","helmi","maalis","huhti","touko","kes\xE4","hein\xE4","elo","syys","loka","marras","joulu"],longhand:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kes\xE4kuu","hein\xE4kuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},ordinal:()=>".",time_24hr:!0};og.l10ns.fi=Oc;var rA=og.l10ns;m();var sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Rc={weekdays:{shorthand:["Sun","M\xE1n","T\xFDs","Mik","H\xF3s","Fr\xED","Ley"],longhand:["Sunnudagur","M\xE1nadagur","T\xFDsdagur","Mikudagur","H\xF3sdagur","Fr\xEDggjadagur","Leygardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","Apr\xEDl","Mai","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",scrollTitle:"Rulla fyri at broyta",toggleTitle:"Tr\xFDst fyri at skifta",yearAriaLabel:"\xC1r",time_24hr:!0};sg.l10ns.fo=Rc;var aA=sg.l10ns;m();var lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Hc={firstDayOfWeek:1,weekdays:{shorthand:["dim","lun","mar","mer","jeu","ven","sam"],longhand:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},months:{shorthand:["janv","f\xE9vr","mars","avr","mai","juin","juil","ao\xFBt","sept","oct","nov","d\xE9c"],longhand:["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"]},ordinal:e=>e>1?"":"er",rangeSeparator:" au ",weekAbbreviation:"Sem",scrollTitle:"D\xE9filer pour augmenter la valeur",toggleTitle:"Cliquer pour basculer",time_24hr:!0};lg.l10ns.fr=Hc;var sA=lg.l10ns;m();var cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Bc={weekdays:{shorthand:["\u039A\u03C5","\u0394\u03B5","\u03A4\u03C1","\u03A4\u03B5","\u03A0\u03AD","\u03A0\u03B1","\u03A3\u03AC"],longhand:["\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE","\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1","\u03A4\u03C1\u03AF\u03C4\u03B7","\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7","\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7","\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE","\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF"]},months:{shorthand:["\u0399\u03B1\u03BD","\u03A6\u03B5\u03B2","\u039C\u03AC\u03C1","\u0391\u03C0\u03C1","\u039C\u03AC\u03B9","\u0399\u03BF\u03CD\u03BD","\u0399\u03BF\u03CD\u03BB","\u0391\u03CD\u03B3","\u03A3\u03B5\u03C0","\u039F\u03BA\u03C4","\u039D\u03BF\u03AD","\u0394\u03B5\u03BA"],longhand:["\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2","\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2","\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2","\u039C\u03AC\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2","\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2","\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2","\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2","\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2","\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2"]},firstDayOfWeek:1,ordinal:function(){return""},weekAbbreviation:"\u0395\u03B2\u03B4",rangeSeparator:" \u03AD\u03C9\u03C2 ",scrollTitle:"\u039C\u03B5\u03C4\u03B1\u03BA\u03C5\u03BB\u03AE\u03C3\u03C4\u03B5 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B1\u03CD\u03BE\u03B7\u03C3\u03B7",toggleTitle:"\u039A\u03AC\u03BD\u03C4\u03B5 \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE",amPM:["\u03A0\u039C","\u039C\u039C"],yearAriaLabel:"\u03C7\u03C1\u03CC\u03BD\u03BF\u03C2",monthAriaLabel:"\u03BC\u03AE\u03BD\u03B1\u03C2",hourAriaLabel:"\u03CE\u03C1\u03B1",minuteAriaLabel:"\u03BB\u03B5\u03C0\u03C4\u03CC"};cg.l10ns.gr=Bc;var cA=cg.l10ns;m();var ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Kc={weekdays:{shorthand:["\u05D0","\u05D1","\u05D2","\u05D3","\u05D4","\u05D5","\u05E9"],longhand:["\u05E8\u05D0\u05E9\u05D5\u05DF","\u05E9\u05E0\u05D9","\u05E9\u05DC\u05D9\u05E9\u05D9","\u05E8\u05D1\u05D9\u05E2\u05D9","\u05D7\u05DE\u05D9\u05E9\u05D9","\u05E9\u05D9\u05E9\u05D9","\u05E9\u05D1\u05EA"]},months:{shorthand:["\u05D9\u05E0\u05D5\u05F3","\u05E4\u05D1\u05E8\u05F3","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05F3","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05F3","\u05E1\u05E4\u05D8\u05F3","\u05D0\u05D5\u05E7\u05F3","\u05E0\u05D5\u05D1\u05F3","\u05D3\u05E6\u05DE\u05F3"],longhand:["\u05D9\u05E0\u05D5\u05D0\u05E8","\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8","\u05DE\u05E8\u05E5","\u05D0\u05E4\u05E8\u05D9\u05DC","\u05DE\u05D0\u05D9","\u05D9\u05D5\u05E0\u05D9","\u05D9\u05D5\u05DC\u05D9","\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8","\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8","\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8","\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8","\u05D3\u05E6\u05DE\u05D1\u05E8"]},rangeSeparator:" \u05D0\u05DC ",time_24hr:!0};ug.l10ns.he=Kc;var dA=ug.l10ns;m();var dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},$c={weekdays:{shorthand:["\u0930\u0935\u093F","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],longhand:["\u0930\u0935\u093F\u0935\u093E\u0930","\u0938\u094B\u092E\u0935\u093E\u0930","\u092E\u0902\u0917\u0932\u0935\u093E\u0930","\u092C\u0941\u0927\u0935\u093E\u0930","\u0917\u0941\u0930\u0941\u0935\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930","\u0936\u0928\u093F\u0935\u093E\u0930"]},months:{shorthand:["\u091C\u0928","\u092B\u0930","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917","\u0938\u093F\u0924","\u0905\u0915\u094D\u091F","\u0928\u0935","\u0926\u093F"],longhand:["\u091C\u0928\u0935\u0930\u0940 ","\u092B\u0930\u0935\u0930\u0940","\u092E\u093E\u0930\u094D\u091A","\u0905\u092A\u094D\u0930\u0947\u0932","\u092E\u0908","\u091C\u0942\u0928","\u091C\u0942\u0932\u093E\u0908","\u0905\u0917\u0938\u094D\u0924 ","\u0938\u093F\u0924\u092E\u094D\u092C\u0930","\u0905\u0915\u094D\u091F\u0942\u092C\u0930","\u0928\u0935\u092E\u094D\u092C\u0930","\u0926\u093F\u0938\u092E\u094D\u092C\u0930"]}};dg.l10ns.hi=$c;var pA=dg.l10ns;m();var fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Vc={firstDayOfWeek:1,weekdays:{shorthand:["Ned","Pon","Uto","Sri","\u010Cet","Pet","Sub"],longhand:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Sij","Velj","O\u017Eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],longhand:["Sije\u010Danj","Velja\u010Da","O\u017Eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"]},time_24hr:!0};fg.l10ns.hr=Vc;var mA=fg.l10ns;m();var pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Uc={firstDayOfWeek:1,weekdays:{shorthand:["V","H","K","Sz","Cs","P","Szo"],longhand:["Vas\xE1rnap","H\xE9tf\u0151","Kedd","Szerda","Cs\xFCt\xF6rt\xF6k","P\xE9ntek","Szombat"]},months:{shorthand:["Jan","Feb","M\xE1r","\xC1pr","M\xE1j","J\xFAn","J\xFAl","Aug","Szep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","M\xE1rcius","\xC1prilis","M\xE1jus","J\xFAnius","J\xFAlius","Augusztus","Szeptember","Okt\xF3ber","November","December"]},ordinal:function(){return"."},weekAbbreviation:"H\xE9t",scrollTitle:"G\xF6rgessen",toggleTitle:"Kattintson a v\xE1lt\xE1shoz",rangeSeparator:" - ",time_24hr:!0};pg.l10ns.hu=Uc;var vA=pg.l10ns;m();var hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Wc={weekdays:{shorthand:["\u053F\u056B\u0580","\u0535\u0580\u056F","\u0535\u0580\u0584","\u0549\u0580\u0584","\u0540\u0576\u0563","\u0548\u0582\u0580\u0562","\u0547\u0562\u0569"],longhand:["\u053F\u056B\u0580\u0561\u056F\u056B","\u0535\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B","\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B","\u0540\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B","\u0548\u0582\u0580\u0562\u0561\u0569","\u0547\u0561\u0562\u0561\u0569"]},months:{shorthand:["\u0540\u0576\u057E","\u0553\u057F\u0580","\u0544\u0561\u0580","\u0531\u057A\u0580","\u0544\u0561\u0575","\u0540\u0576\u057D","\u0540\u056C\u057D","\u0555\u0563\u057D","\u054D\u0565\u057A","\u0540\u0578\u056F","\u0546\u0574\u0562","\u0534\u0565\u056F"],longhand:["\u0540\u0578\u0582\u0576\u057E\u0561\u0580","\u0553\u0565\u057F\u0580\u057E\u0561\u0580","\u0544\u0561\u0580\u057F","\u0531\u057A\u0580\u056B\u056C","\u0544\u0561\u0575\u056B\u057D","\u0540\u0578\u0582\u0576\u056B\u057D","\u0540\u0578\u0582\u056C\u056B\u057D","\u0555\u0563\u0578\u057D\u057F\u0578\u057D","\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0547\u0532\u054F",scrollTitle:"\u0548\u056C\u0578\u0580\u0565\u0584\u055D \u0574\u0565\u056E\u0561\u0581\u0576\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",toggleTitle:"\u054D\u0565\u0572\u0574\u0565\u0584\u055D \u0583\u0578\u056D\u0565\u056C\u0578\u0582 \u0570\u0561\u0574\u0561\u0580",amPM:["\u0544\u053F","\u053F\u0540"],yearAriaLabel:"\u054F\u0561\u0580\u056B",monthAriaLabel:"\u0531\u0574\u056B\u057D",hourAriaLabel:"\u053A\u0561\u0574",minuteAriaLabel:"\u0550\u0578\u057A\u0565",time_24hr:!0};hg.l10ns.hy=Wc;var bA=hg.l10ns;m();var mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},zc={weekdays:{shorthand:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],longhand:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],longhand:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0,rangeSeparator:" - "};mg.l10ns.id=zc;var EA=mg.l10ns;m();var gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},jc={weekdays:{shorthand:["Sun","M\xE1n","\xDEri","Mi\xF0","Fim","F\xF6s","Lau"],longhand:["Sunnudagur","M\xE1nudagur","\xDEri\xF0judagur","Mi\xF0vikudagur","Fimmtudagur","F\xF6studagur","Laugardagur"]},months:{shorthand:["Jan","Feb","Mar","Apr","Ma\xED","J\xFAn","J\xFAl","\xC1g\xFA","Sep","Okt","N\xF3v","Des"],longhand:["Jan\xFAar","Febr\xFAar","Mars","Apr\xEDl","Ma\xED","J\xFAn\xED","J\xFAl\xED","\xC1g\xFAst","September","Okt\xF3ber","N\xF3vember","Desember"]},ordinal:()=>".",firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"vika",yearAriaLabel:"\xC1r",time_24hr:!0};gg.l10ns.is=jc;var xA=gg.l10ns;m();var vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},qc={weekdays:{shorthand:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],longhand:["Domenica","Luned\xEC","Marted\xEC","Mercoled\xEC","Gioved\xEC","Venerd\xEC","Sabato"]},months:{shorthand:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],longhand:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"]},firstDayOfWeek:1,ordinal:()=>"\xB0",rangeSeparator:" al ",weekAbbreviation:"Se",scrollTitle:"Scrolla per aumentare",toggleTitle:"Clicca per cambiare",time_24hr:!0};vg.l10ns.it=qc;var _A=vg.l10ns;m();var yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Yc={weekdays:{shorthand:["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"],longhand:["\u65E5\u66DC\u65E5","\u6708\u66DC\u65E5","\u706B\u66DC\u65E5","\u6C34\u66DC\u65E5","\u6728\u66DC\u65E5","\u91D1\u66DC\u65E5","\u571F\u66DC\u65E5"]},months:{shorthand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],longhand:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"]},time_24hr:!0,rangeSeparator:" \u304B\u3089 ",monthAriaLabel:"\u6708",amPM:["\u5348\u524D","\u5348\u5F8C"],yearAriaLabel:"\u5E74",hourAriaLabel:"\u6642\u9593",minuteAriaLabel:"\u5206"};yg.l10ns.ja=Yc;var TA=yg.l10ns;m();var bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Jc={weekdays:{shorthand:["\u10D9\u10D5","\u10DD\u10E0","\u10E1\u10D0","\u10DD\u10D7","\u10EE\u10E3","\u10DE\u10D0","\u10E8\u10D0"],longhand:["\u10D9\u10D5\u10D8\u10E0\u10D0","\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8","\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8","\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8"]},months:{shorthand:["\u10D8\u10D0\u10DC","\u10D7\u10D4\u10D1","\u10DB\u10D0\u10E0","\u10D0\u10DE\u10E0","\u10DB\u10D0\u10D8","\u10D8\u10D5\u10DC","\u10D8\u10D5\u10DA","\u10D0\u10D2\u10D5","\u10E1\u10D4\u10E5","\u10DD\u10E5\u10E2","\u10DC\u10DD\u10D4","\u10D3\u10D4\u10D9"],longhand:["\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8","\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8","\u10DB\u10D0\u10E0\u10E2\u10D8","\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8","\u10DB\u10D0\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8","\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8","\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD","\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8","\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8","\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u10D9\u10D5.",scrollTitle:"\u10D3\u10D0\u10E1\u10E5\u10E0\u10DD\u10DA\u10D4\u10D7 \u10D2\u10D0\u10E1\u10D0\u10D3\u10D8\u10D3\u10D4\u10D1\u10DA\u10D0\u10D3",toggleTitle:"\u10D3\u10D0\u10D0\u10D9\u10DA\u10D8\u10D9\u10D4\u10D7 \u10D2\u10D0\u10D3\u10D0\u10E0\u10D7\u10D5\u10D8\u10E1\u10D7\u10D5\u10D8\u10E1",amPM:["AM","PM"],yearAriaLabel:"\u10EC\u10D4\u10DA\u10D8",time_24hr:!0};bg.l10ns.ka=Jc;var MA=bg.l10ns;m();var wg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Gc={weekdays:{shorthand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F.","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"],longhand:["\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799","\u1785\u1793\u17D2\u1791","\u17A2\u1784\u17D2\u1782\u17B6\u179A","\u1796\u17BB\u1792","\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD","\u179F\u17BB\u1780\u17D2\u179A","\u179F\u17C5\u179A\u17CD"]},months:{shorthand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"],longhand:["\u1798\u1780\u179A\u17B6","\u1780\u17BB\u1798\u17D2\u1797\u17C7","\u1798\u17B8\u1793\u17B6","\u1798\u17C1\u179F\u17B6","\u17A7\u179F\u1797\u17B6","\u1798\u17B7\u1790\u17BB\u1793\u17B6","\u1780\u1780\u17D2\u1780\u178A\u17B6","\u179F\u17B8\u17A0\u17B6","\u1780\u1789\u17D2\u1789\u17B6","\u178F\u17BB\u179B\u17B6","\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6","\u1792\u17D2\u1793\u17BC"]},ordinal:()=>"",firstDayOfWeek:1,rangeSeparator:" \u178A\u179B\u17CB ",weekAbbreviation:"\u179F\u1794\u17D2\u178F\u17B6\u17A0\u17CD",scrollTitle:"\u179A\u17C6\u1780\u17B7\u179B\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1794\u1784\u17D2\u1780\u17BE\u1793",toggleTitle:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1795\u17D2\u179B\u17B6\u179F\u17CB\u1794\u17D2\u178A\u17BC\u179A",yearAriaLabel:"\u1786\u17D2\u1793\u17B6\u17C6",time_24hr:!0};wg.l10ns.km=Gc;var AA=wg.l10ns;m();var Eg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Qc={weekdays:{shorthand:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],longhand:["\uC77C\uC694\uC77C","\uC6D4\uC694\uC77C","\uD654\uC694\uC77C","\uC218\uC694\uC77C","\uBAA9\uC694\uC77C","\uAE08\uC694\uC77C","\uD1A0\uC694\uC77C"]},months:{shorthand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"],longhand:["1\uC6D4","2\uC6D4","3\uC6D4","4\uC6D4","5\uC6D4","6\uC6D4","7\uC6D4","8\uC6D4","9\uC6D4","10\uC6D4","11\uC6D4","12\uC6D4"]},ordinal:()=>"\uC77C",rangeSeparator:" ~ ",amPM:["\uC624\uC804","\uC624\uD6C4"]};Eg.l10ns.ko=Qc;var PA=Eg.l10ns;m();var kg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Xc={weekdays:{shorthand:["\u0416\u0441","\u0414\u0441","\u0421c","\u0421\u0440","\u0411\u0441","\u0416\u043C","\u0421\u0431"],longhand:["\u0416\u0435\u043A\u0441\u0435\u043D\u0431i","\u0414\u04AF\u0439\u0441\u0435\u043D\u0431i","\u0421\u0435\u0439\u0441\u0435\u043D\u0431i","\u0421\u04D9\u0440\u0441\u0435\u043D\u0431i","\u0411\u0435\u0439\u0441\u0435\u043D\u0431i","\u0416\u04B1\u043C\u0430","\u0421\u0435\u043D\u0431i"]},months:{shorthand:["\u049A\u0430\u04A3","\u0410\u049B\u043F","\u041D\u0430\u0443","\u0421\u04D9\u0443","\u041C\u0430\u043C","\u041C\u0430\u0443","\u0428i\u043B","\u0422\u0430\u043C","\u049A\u044B\u0440","\u049A\u0430\u0437","\u049A\u0430\u0440","\u0416\u0435\u043B"],longhand:["\u049A\u0430\u04A3\u0442\u0430\u0440","\u0410\u049B\u043F\u0430\u043D","\u041D\u0430\u0443\u0440\u044B\u0437","\u0421\u04D9\u0443i\u0440","\u041C\u0430\u043C\u044B\u0440","\u041C\u0430\u0443\u0441\u044B\u043C","\u0428i\u043B\u0434\u0435","\u0422\u0430\u043C\u044B\u0437","\u049A\u044B\u0440\u043A\u04AF\u0439\u0435\u043A","\u049A\u0430\u0437\u0430\u043D","\u049A\u0430\u0440\u0430\u0448\u0430","\u0416\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u0410\u043F\u0442\u0430",scrollTitle:"\u04AE\u043B\u043A\u0435\u0439\u0442\u0443 \u04AF\u0448\u0456\u043D \u0430\u0439\u043D\u0430\u043B\u0434\u044B\u0440\u044B\u04A3\u044B\u0437",toggleTitle:"\u0410\u0443\u044B\u0441\u0442\u044B\u0440\u0443 \u04AF\u0448\u0456\u043D \u0431\u0430\u0441\u044B\u04A3\u044B\u0437",amPM:["\u0422\u0414","\u0422\u041A"],yearAriaLabel:"\u0416\u044B\u043B"};kg.l10ns.kz=Xc;var NA=kg.l10ns;m();var xg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Zc={weekdays:{shorthand:["S","Pr","A","T","K","Pn","\u0160"],longhand:["Sekmadienis","Pirmadienis","Antradienis","Tre\u010Diadienis","Ketvirtadienis","Penktadienis","\u0160e\u0161tadienis"]},months:{shorthand:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd"],longhand:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017E\u0117","Bir\u017Eelis","Liepa","Rugpju\u0304tis","Rugse\u0307jis","Spalis","Lapkritis","Gruodis"]},firstDayOfWeek:1,ordinal:function(){return"-a"},rangeSeparator:" iki ",weekAbbreviation:"Sav",scrollTitle:"Keisti laik\u0105 pel\u0117s rateliu",toggleTitle:"Perjungti laiko format\u0105",time_24hr:!0};xg.l10ns.lt=Zc;var RA=xg.l10ns;m();var Sg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},eu={firstDayOfWeek:1,weekdays:{shorthand:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],longhand:["Sv\u0113tdiena","Pirmdiena","Otrdiena","Tre\u0161diena","Ceturtdiena","Piektdiena","Sestdiena"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","J\u016Bn","J\u016Bl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012Blis","Maijs","J\u016Bnijs","J\u016Blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"]},rangeSeparator:" l\u012Bdz ",time_24hr:!0};Sg.l10ns.lv=eu;var BA=Sg.l10ns;m();var _g=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},tu={weekdays:{shorthand:["\u041D\u0435","\u041F\u043E","\u0412\u0442","\u0421\u0440","\u0427\u0435","\u041F\u0435","\u0421\u0430"],longhand:["\u041D\u0435\u0434\u0435\u043B\u0430","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u043E\u043A","\u041F\u0435\u0442\u043E\u043A","\u0421\u0430\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0408\u0430\u043D","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0458","\u0408\u0443\u043D","\u0408\u0443\u043B","\u0410\u0432\u0433","\u0421\u0435\u043F","\u041E\u043A\u0442","\u041D\u043E\u0435","\u0414\u0435\u043A"],longhand:["\u0408\u0430\u043D\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0438\u043B","\u041C\u0430\u0458","\u0408\u0443\u043D\u0438","\u0408\u0443\u043B\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438","\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438","\u041D\u043E\u0435\u043C\u0432\u0440\u0438","\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438"]},firstDayOfWeek:1,weekAbbreviation:"\u041D\u0435\u0434.",rangeSeparator:" \u0434\u043E ",time_24hr:!0};_g.l10ns.mk=tu;var $A=_g.l10ns;m();var Cg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},nu={firstDayOfWeek:1,weekdays:{shorthand:["\u0414\u0430","\u041C\u044F","\u041B\u0445","\u041F\u04AF","\u0411\u0430","\u0411\u044F","\u041D\u044F"],longhand:["\u0414\u0430\u0432\u0430\u0430","\u041C\u044F\u0433\u043C\u0430\u0440","\u041B\u0445\u0430\u0433\u0432\u0430","\u041F\u04AF\u0440\u044D\u0432","\u0411\u0430\u0430\u0441\u0430\u043D","\u0411\u044F\u043C\u0431\u0430","\u041D\u044F\u043C"]},months:{shorthand:["1-\u0440 \u0441\u0430\u0440","2-\u0440 \u0441\u0430\u0440","3-\u0440 \u0441\u0430\u0440","4-\u0440 \u0441\u0430\u0440","5-\u0440 \u0441\u0430\u0440","6-\u0440 \u0441\u0430\u0440","7-\u0440 \u0441\u0430\u0440","8-\u0440 \u0441\u0430\u0440","9-\u0440 \u0441\u0430\u0440","10-\u0440 \u0441\u0430\u0440","11-\u0440 \u0441\u0430\u0440","12-\u0440 \u0441\u0430\u0440"],longhand:["\u041D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0425\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u04E9\u0440\u04E9\u0432\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0417\u0443\u0440\u0433\u0430\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0414\u043E\u043B\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u041D\u0430\u0439\u043C\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0415\u0441\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D\u0440 \u0441\u0430\u0440","\u0410\u0440\u0432\u0430\u043D\u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440"]},rangeSeparator:"-\u0441 ",time_24hr:!0};Cg.l10ns.mn=nu;var UA=Cg.l10ns;m();var nS=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Tg={weekdays:{shorthand:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],longhand:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},months:{shorthand:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],longhand:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},firstDayOfWeek:1,ordinal:()=>""},zA=nS.l10ns;m();var Dg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ru={weekdays:{shorthand:["\u1014\u103D\u1031","\u101C\u102C","\u1002\u102B","\u101F\u1030\u1038","\u1000\u103C\u102C","\u101E\u1031\u102C","\u1014\u1031"],longhand:["\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031","\u1010\u1014\u1004\u103A\u1039\u101C\u102C","\u1021\u1004\u103A\u1039\u1002\u102B","\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038","\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038","\u101E\u1031\u102C\u1000\u103C\u102C","\u1005\u1014\u1031"]},months:{shorthand:["\u1007\u1014\u103A","\u1016\u1031","\u1019\u1010\u103A","\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u101C\u102D\u102F\u1004\u103A","\u101E\u103C","\u1005\u1000\u103A","\u1021\u1031\u102C\u1000\u103A","\u1014\u102D\u102F","\u1012\u102E"],longhand:["\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E","\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E","\u1019\u1010\u103A","\u1027\u1015\u103C\u102E","\u1019\u1031","\u1007\u103D\u1014\u103A","\u1007\u1030\u101C\u102D\u102F\u1004\u103A","\u101E\u103C\u1002\u102F\u1010\u103A","\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C","\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C","\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C","\u1012\u102E\u1007\u1004\u103A\u1018\u102C"]},firstDayOfWeek:1,ordinal:()=>"",time_24hr:!0};Dg.l10ns.my=ru;var qA=Dg.l10ns;m();var Mg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},iu={weekdays:{shorthand:["zo","ma","di","wo","do","vr","za"],longhand:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},months:{shorthand:["jan","feb","mrt","apr","mei","jun","jul","aug","sept","okt","nov","dec"],longhand:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},firstDayOfWeek:1,weekAbbreviation:"wk",rangeSeparator:" t/m ",scrollTitle:"Scroll voor volgende / vorige",toggleTitle:"Klik om te wisselen",time_24hr:!0,ordinal:e=>e===1||e===8||e>=20?"ste":"de"};Mg.l10ns.nl=iu;var JA=Mg.l10ns;m();var Ig=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},au={weekdays:{shorthand:["S\xF8.","M\xE5.","Ty.","On.","To.","Fr.","La."],longhand:["S\xF8ndag","M\xE5ndag","Tysdag","Onsdag","Torsdag","Fredag","Laurdag"]},months:{shorthand:["Jan","Feb","Mars","Apr","Mai","Juni","Juli","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Veke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};Ig.l10ns.nn=au;var QA=Ig.l10ns;m();var Ag=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ou={weekdays:{shorthand:["S\xF8n","Man","Tir","Ons","Tor","Fre","L\xF8r"],longhand:["S\xF8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xF8rdag"]},months:{shorthand:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],longhand:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"]},firstDayOfWeek:1,rangeSeparator:" til ",weekAbbreviation:"Uke",scrollTitle:"Scroll for \xE5 endre",toggleTitle:"Klikk for \xE5 veksle",time_24hr:!0,ordinal:()=>"."};Ag.l10ns.no=ou;var ZA=Ag.l10ns;m();var Lg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},su={weekdays:{shorthand:["\u0A10\u0A24","\u0A38\u0A4B\u0A2E","\u0A2E\u0A70\u0A17\u0A32","\u0A2C\u0A41\u0A71\u0A27","\u0A35\u0A40\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30"],longhand:["\u0A10\u0A24\u0A35\u0A3E\u0A30","\u0A38\u0A4B\u0A2E\u0A35\u0A3E\u0A30","\u0A2E\u0A70\u0A17\u0A32\u0A35\u0A3E\u0A30","\u0A2C\u0A41\u0A71\u0A27\u0A35\u0A3E\u0A30","\u0A35\u0A40\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30\u0A35\u0A3E\u0A30","\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30\u0A35\u0A3E\u0A30"]},months:{shorthand:["\u0A1C\u0A28","\u0A2B\u0A3C\u0A30","\u0A2E\u0A3E\u0A30","\u0A05\u0A2A\u0A4D\u0A30\u0A48","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E","\u0A05\u0A17","\u0A38\u0A24\u0A70","\u0A05\u0A15","\u0A28\u0A35\u0A70","\u0A26\u0A38\u0A70"],longhand:["\u0A1C\u0A28\u0A35\u0A30\u0A40","\u0A2B\u0A3C\u0A30\u0A35\u0A30\u0A40","\u0A2E\u0A3E\u0A30\u0A1A","\u0A05\u0A2A\u0A4D\u0A30\u0A48\u0A32","\u0A2E\u0A08","\u0A1C\u0A42\u0A28","\u0A1C\u0A41\u0A32\u0A3E\u0A08","\u0A05\u0A17\u0A38\u0A24","\u0A38\u0A24\u0A70\u0A2C\u0A30","\u0A05\u0A15\u0A24\u0A42\u0A2C\u0A30","\u0A28\u0A35\u0A70\u0A2C\u0A30","\u0A26\u0A38\u0A70\u0A2C\u0A30"]},time_24hr:!0};Lg.l10ns.pa=su;var tL=Lg.l10ns;m();var Pg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},lu={weekdays:{shorthand:["Nd","Pn","Wt","\u015Ar","Cz","Pt","So"],longhand:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015Aroda","Czwartek","Pi\u0105tek","Sobota"]},months:{shorthand:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Pa\u017A","Lis","Gru"],longhand:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017Adziernik","Listopad","Grudzie\u0144"]},rangeSeparator:" do ",weekAbbreviation:"tydz.",scrollTitle:"Przewi\u0144, aby zwi\u0119kszy\u0107",toggleTitle:"Kliknij, aby prze\u0142\u0105czy\u0107",firstDayOfWeek:1,time_24hr:!0,ordinal:()=>"."};Pg.l10ns.pl=lu;var rL=Pg.l10ns;m();var Fg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},cu={weekdays:{shorthand:["Dom","Seg","Ter","Qua","Qui","Sex","S\xE1b"],longhand:["Domingo","Segunda-feira","Ter\xE7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\xE1bado"]},months:{shorthand:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],longhand:["Janeiro","Fevereiro","Mar\xE7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"]},rangeSeparator:" at\xE9 ",time_24hr:!0};Fg.l10ns.pt=cu;var aL=Fg.l10ns;m();var Ng=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},uu={weekdays:{shorthand:["Dum","Lun","Mar","Mie","Joi","Vin","S\xE2m"],longhand:["Duminic\u0103","Luni","Mar\u021Bi","Miercuri","Joi","Vineri","S\xE2mb\u0103t\u0103"]},months:{shorthand:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec"],longhand:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"]},firstDayOfWeek:1,time_24hr:!0,ordinal:()=>""};Ng.l10ns.ro=uu;var sL=Ng.l10ns;m();var Og=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},du={weekdays:{shorthand:["\u0412\u0441","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435","\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A","\u0412\u0442\u043E\u0440\u043D\u0438\u043A","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041F\u044F\u0442\u043D\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440\u044C","\u0424\u0435\u0432\u0440\u0430\u043B\u044C","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B\u044C","\u041C\u0430\u0439","\u0418\u044E\u043D\u044C","\u0418\u044E\u043B\u044C","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C","\u041E\u043A\u0442\u044F\u0431\u0440\u044C","\u041D\u043E\u044F\u0431\u0440\u044C","\u0414\u0435\u043A\u0430\u0431\u0440\u044C"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u041D\u0435\u0434.",scrollTitle:"\u041F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043B\u044F \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u044F",toggleTitle:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F",amPM:["\u0414\u041F","\u041F\u041F"],yearAriaLabel:"\u0413\u043E\u0434",time_24hr:!0};Og.l10ns.ru=du;var cL=Og.l10ns;m();var Rg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},fu={weekdays:{shorthand:["\u0D89","\u0DC3","\u0D85","\u0DB6","\u0DB6\u0DCA\u200D\u0DBB","\u0DC3\u0DD2","\u0DC3\u0DD9"],longhand:["\u0D89\u0DBB\u0DD2\u0DAF\u0DCF","\u0DC3\u0DB3\u0DD4\u0DAF\u0DCF","\u0D85\u0D9F\u0DC4\u0DBB\u0DD4\u0DC0\u0DCF\u0DAF\u0DCF","\u0DB6\u0DAF\u0DCF\u0DAF\u0DCF","\u0DB6\u0DCA\u200D\u0DBB\u0DC4\u0DC3\u0DCA\u0DB4\u0DAD\u0DD2\u0DB1\u0DCA\u0DAF\u0DCF","\u0DC3\u0DD2\u0D9A\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF","\u0DC3\u0DD9\u0DB1\u0DC3\u0DD4\u0DBB\u0DCF\u0DAF\u0DCF"]},months:{shorthand:["\u0DA2\u0DB1","\u0DB4\u0DD9\u0DB6","\u0DB8\u0DCF\u0DBB\u0DCA","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD","\u0DC3\u0DD0\u0DB4\u0DCA","\u0D94\u0D9A\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0","\u0DAF\u0DD9\u0DC3\u0DD0"],longhand:["\u0DA2\u0DB1\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB4\u0DD9\u0DB6\u0DBB\u0DC0\u0DCF\u0DBB\u0DD2","\u0DB8\u0DCF\u0DBB\u0DCA\u0DAD\u0DD4","\u0D85\u0DB4\u0DCA\u200D\u0DBB\u0DDA\u0DBD\u0DCA","\u0DB8\u0DD0\u0DBA\u0DD2","\u0DA2\u0DD4\u0DB1\u0DD2","\u0DA2\u0DD6\u0DBD\u0DD2","\u0D85\u0D9C\u0DDD\u0DC3\u0DCA\u0DAD\u0DD4","\u0DC3\u0DD0\u0DB4\u0DCA\u0DAD\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0D94\u0D9A\u0DCA\u0DAD\u0DDD\u0DB6\u0DBB\u0DCA","\u0DB1\u0DDC\u0DC0\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA","\u0DAF\u0DD9\u0DC3\u0DD0\u0DB8\u0DCA\u0DB6\u0DBB\u0DCA"]},time_24hr:!0};Rg.l10ns.si=fu;var dL=Rg.l10ns;m();var Hg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},pu={weekdays:{shorthand:["Ned","Pon","Ut","Str","\u0160tv","Pia","Sob"],longhand:["Nede\u013Ea","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","M\xE1j","J\xFAn","J\xFAl","Aug","Sep","Okt","Nov","Dec"],longhand:["Janu\xE1r","Febru\xE1r","Marec","Apr\xEDl","M\xE1j","J\xFAn","J\xFAl","August","September","Okt\xF3ber","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};Hg.l10ns.sk=pu;var pL=Hg.l10ns;m();var Bg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},hu={weekdays:{shorthand:["Ned","Pon","Tor","Sre","\u010Cet","Pet","Sob"],longhand:["Nedelja","Ponedeljek","Torek","Sreda","\u010Cetrtek","Petek","Sobota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"]},firstDayOfWeek:1,rangeSeparator:" do ",time_24hr:!0,ordinal:function(){return"."}};Bg.l10ns.sl=hu;var mL=Bg.l10ns;m();var Kg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},mu={weekdays:{shorthand:["Di","H\xEB","Ma","M\xEB","En","Pr","Sh"],longhand:["E Diel","E H\xEBn\xEB","E Mart\xEB","E M\xEBrkur\xEB","E Enjte","E Premte","E Shtun\xEB"]},months:{shorthand:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\xEBn","Dhj"],longhand:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\xEBntor","Dhjetor"]},firstDayOfWeek:1,rangeSeparator:" deri ",weekAbbreviation:"Java",yearAriaLabel:"Viti",monthAriaLabel:"Muaji",hourAriaLabel:"Ora",minuteAriaLabel:"Minuta",time_24hr:!0};Kg.l10ns.sq=mu;var vL=Kg.l10ns;m();var $g=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},gu={weekdays:{shorthand:["Ned","Pon","Uto","Sre","\u010Cet","Pet","Sub"],longhand:["Nedelja","Ponedeljak","Utorak","Sreda","\u010Cetvrtak","Petak","Subota"]},months:{shorthand:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],longhand:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"]},firstDayOfWeek:1,weekAbbreviation:"Ned.",rangeSeparator:" do ",time_24hr:!0};$g.l10ns.sr=gu;var bL=$g.l10ns;m();var Vg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},vu={firstDayOfWeek:1,weekAbbreviation:"v",weekdays:{shorthand:["s\xF6n","m\xE5n","tis","ons","tor","fre","l\xF6r"],longhand:["s\xF6ndag","m\xE5ndag","tisdag","onsdag","torsdag","fredag","l\xF6rdag"]},months:{shorthand:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],longhand:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},rangeSeparator:" till ",time_24hr:!0,ordinal:()=>"."};Vg.l10ns.sv=vu;var EL=Vg.l10ns;m();var Ug=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},yu={weekdays:{shorthand:["\u0E2D\u0E32","\u0E08","\u0E2D","\u0E1E","\u0E1E\u0E24","\u0E28","\u0E2A"],longhand:["\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C","\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C","\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23","\u0E1E\u0E38\u0E18","\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35","\u0E28\u0E38\u0E01\u0E23\u0E4C","\u0E40\u0E2A\u0E32\u0E23\u0E4C"]},months:{shorthand:["\u0E21.\u0E04.","\u0E01.\u0E1E.","\u0E21\u0E35.\u0E04.","\u0E40\u0E21.\u0E22.","\u0E1E.\u0E04.","\u0E21\u0E34.\u0E22.","\u0E01.\u0E04.","\u0E2A.\u0E04.","\u0E01.\u0E22.","\u0E15.\u0E04.","\u0E1E.\u0E22.","\u0E18.\u0E04."],longhand:["\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21","\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C","\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21","\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19","\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21","\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19","\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21","\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21","\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19","\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21","\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19","\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"]},firstDayOfWeek:1,rangeSeparator:" \u0E16\u0E36\u0E07 ",scrollTitle:"\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E14",toggleTitle:"\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19",time_24hr:!0,ordinal:()=>""};Ug.l10ns.th=yu;var xL=Ug.l10ns;m();var Wg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},bu={weekdays:{shorthand:["Paz","Pzt","Sal","\xC7ar","Per","Cum","Cmt"],longhand:["Pazar","Pazartesi","Sal\u0131","\xC7ar\u015Famba","Per\u015Fembe","Cuma","Cumartesi"]},months:{shorthand:["Oca","\u015Eub","Mar","Nis","May","Haz","Tem","A\u011Fu","Eyl","Eki","Kas","Ara"],longhand:["Ocak","\u015Eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011Fustos","Eyl\xFCl","Ekim","Kas\u0131m","Aral\u0131k"]},firstDayOfWeek:1,ordinal:()=>".",rangeSeparator:" - ",weekAbbreviation:"Hf",scrollTitle:"Art\u0131rmak i\xE7in kayd\u0131r\u0131n",toggleTitle:"A\xE7/Kapa",amPM:["\xD6\xD6","\xD6S"],time_24hr:!0};Wg.l10ns.tr=bu;var _L=Wg.l10ns;m();var zg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},wu={firstDayOfWeek:1,weekdays:{shorthand:["\u041D\u0434","\u041F\u043D","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041F\u0442","\u0421\u0431"],longhand:["\u041D\u0435\u0434\u0456\u043B\u044F","\u041F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A","\u0412\u0456\u0432\u0442\u043E\u0440\u043E\u043A","\u0421\u0435\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440","\u041F'\u044F\u0442\u043D\u0438\u0446\u044F","\u0421\u0443\u0431\u043E\u0442\u0430"]},months:{shorthand:["\u0421\u0456\u0447","\u041B\u044E\u0442","\u0411\u0435\u0440","\u041A\u0432\u0456","\u0422\u0440\u0430","\u0427\u0435\u0440","\u041B\u0438\u043F","\u0421\u0435\u0440","\u0412\u0435\u0440","\u0416\u043E\u0432","\u041B\u0438\u0441","\u0413\u0440\u0443"],longhand:["\u0421\u0456\u0447\u0435\u043D\u044C","\u041B\u044E\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C","\u041A\u0432\u0456\u0442\u0435\u043D\u044C","\u0422\u0440\u0430\u0432\u0435\u043D\u044C","\u0427\u0435\u0440\u0432\u0435\u043D\u044C","\u041B\u0438\u043F\u0435\u043D\u044C","\u0421\u0435\u0440\u043F\u0435\u043D\u044C","\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C","\u0416\u043E\u0432\u0442\u0435\u043D\u044C","\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043D\u044C"]},time_24hr:!0};zg.l10ns.uk=wu;var TL=zg.l10ns;m();var jg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Eu={weekdays:{shorthand:["\u042F\u043A\u0448","\u0414\u0443\u0448","\u0421\u0435\u0448","\u0427\u043E\u0440","\u041F\u0430\u0439","\u0416\u0443\u043C","\u0428\u0430\u043D"],longhand:["\u042F\u043A\u0448\u0430\u043D\u0431\u0430","\u0414\u0443\u0448\u0430\u043D\u0431\u0430","\u0421\u0435\u0448\u0430\u043D\u0431\u0430","\u0427\u043E\u0440\u0448\u0430\u043D\u0431\u0430","\u041F\u0430\u0439\u0448\u0430\u043D\u0431\u0430","\u0416\u0443\u043C\u0430","\u0428\u0430\u043D\u0431\u0430"]},months:{shorthand:["\u042F\u043D\u0432","\u0424\u0435\u0432","\u041C\u0430\u0440","\u0410\u043F\u0440","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433","\u0421\u0435\u043D","\u041E\u043A\u0442","\u041D\u043E\u044F","\u0414\u0435\u043A"],longhand:["\u042F\u043D\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043B","\u041C\u0430\u0440\u0442","\u0410\u043F\u0440\u0435\u043B","\u041C\u0430\u0439","\u0418\u044E\u043D","\u0418\u044E\u043B","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043D\u0442\u044F\u0431\u0440","\u041E\u043A\u0442\u044F\u0431\u0440","\u041D\u043E\u044F\u0431\u0440","\u0414\u0435\u043A\u0430\u0431\u0440"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"\u04B2\u0430\u0444\u0442\u0430",scrollTitle:"\u041A\u0430\u0442\u0442\u0430\u043B\u0430\u0448\u0442\u0438\u0440\u0438\u0448 \u0443\u0447\u0443\u043D \u0430\u0439\u043B\u0430\u043D\u0442\u0438\u0440\u0438\u043D\u0433",toggleTitle:"\u040E\u0442\u0438\u0448 \u0443\u0447\u0443\u043D \u0431\u043E\u0441\u0438\u043D\u0433",amPM:["AM","PM"],yearAriaLabel:"\u0419\u0438\u043B",time_24hr:!0};jg.l10ns.uz=Eu;var ML=jg.l10ns;m();var qg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},ku={weekdays:{shorthand:["Ya","Du","Se","Cho","Pa","Ju","Sha"],longhand:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"]},months:{shorthand:["Yan","Fev","Mar","Apr","May","Iyun","Iyul","Avg","Sen","Okt","Noy","Dek"],longhand:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"]},firstDayOfWeek:1,ordinal:function(){return""},rangeSeparator:" \u2014 ",weekAbbreviation:"Hafta",scrollTitle:"Kattalashtirish uchun aylantiring",toggleTitle:"O\u2018tish uchun bosing",amPM:["AM","PM"],yearAriaLabel:"Yil",time_24hr:!0};qg.l10ns.uz_latn=ku;var AL=qg.l10ns;m();var Yg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},xu={weekdays:{shorthand:["CN","T2","T3","T4","T5","T6","T7"],longhand:["Ch\u1EE7 nh\u1EADt","Th\u1EE9 hai","Th\u1EE9 ba","Th\u1EE9 t\u01B0","Th\u1EE9 n\u0103m","Th\u1EE9 s\xE1u","Th\u1EE9 b\u1EA3y"]},months:{shorthand:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],longhand:["Th\xE1ng m\u1ED9t","Th\xE1ng hai","Th\xE1ng ba","Th\xE1ng t\u01B0","Th\xE1ng n\u0103m","Th\xE1ng s\xE1u","Th\xE1ng b\u1EA3y","Th\xE1ng t\xE1m","Th\xE1ng ch\xEDn","Th\xE1ng m\u01B0\u1EDDi","Th\xE1ng m\u01B0\u1EDDi m\u1ED9t","Th\xE1ng m\u01B0\u1EDDi hai"]},firstDayOfWeek:1,rangeSeparator:" \u0111\u1EBFn "};Yg.l10ns.vn=xu;var PL=Yg.l10ns;m();var Jg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},Su={weekdays:{shorthand:["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u5468",scrollTitle:"\u6EDA\u52A8\u5207\u6362",toggleTitle:"\u70B9\u51FB\u5207\u6362 12/24 \u5C0F\u65F6\u65F6\u5236"};Jg.l10ns.zh=Su;var NL=Jg.l10ns;m();var Gg=typeof window!="undefined"&&window.flatpickr!==void 0?window.flatpickr:{l10ns:{}},_u={weekdays:{shorthand:["\u9031\u65E5","\u9031\u4E00","\u9031\u4E8C","\u9031\u4E09","\u9031\u56DB","\u9031\u4E94","\u9031\u516D"],longhand:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"]},months:{shorthand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],longhand:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]},rangeSeparator:" \u81F3 ",weekAbbreviation:"\u9031",scrollTitle:"\u6EFE\u52D5\u5207\u63DB",toggleTitle:"\u9EDE\u64CA\u5207\u63DB 12/24 \u5C0F\u6642\u6642\u5236"};Gg.l10ns.zh_tw=_u;var RL=Gg.l10ns;var rS={ar:bc,at:wc,az:Ec,be:kc,bg:xc,bn:Sc,bs:_c,ca:Go,ckb:Tc,cat:Go,cs:Dc,cy:Mc,da:Ic,de:Ac,default:{...Vr},en:Vr,eo:Lc,es:Pc,et:Fc,fa:Nc,fi:Oc,fo:Rc,fr:Hc,gr:Bc,he:Kc,hi:$c,hr:Vc,hu:Uc,hy:Wc,id:zc,is:jc,it:qc,ja:Yc,ka:Jc,ko:Qc,km:Gc,kz:Xc,lt:Zc,lv:eu,mk:tu,mn:nu,ms:Tg,my:ru,nl:iu,nn:au,no:ou,pa:su,pl:lu,pt:cu,ro:uu,ru:du,si:fu,sk:pu,sl:hu,sq:mu,sr:gu,sv:vu,th:yu,tr:bu,uk:wu,vn:xu,zh:Su,zh_tw:_u,uz:Eu,uz_latn:ku},tt=rS;var Xg={ar:tt.ar,cs:tt.cs,da:tt.da,de:tt.de,en:tt.en,"en-gb":tt.en,es:tt.es,fr:tt.fr,hi:tt.hi,id:tt.id,it:tt.it,ja:tt.ja,ko:tt.ko,nl:tt.nl,nn:tt.no,pl:tt.pl,pt:tt.pt,"pt-br":tt.pt,ro:tt.ro,ru:tt.ru,tr:tt.tr,"zh-cn":tt.zh,"zh-tw":tt.zh_tw},iS=Xg[Qg.moment.locale()];function Xo(e){let t=e==null?void 0:e.getSetting("date-picker-week-start"),r=iS||Xg.en;return t?{...r,firstDayOfWeek:t}:r}m();m();var Zo=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],wr={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:e=>typeof console!="undefined"&&console.warn(e),getWeek:e=>{let t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);let r=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-r.getTime())/864e5-3+(r.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1,win:window};m();var Bt=(e,t=2)=>`000${e}`.slice(t*-1),tn=e=>e===!0?1:0;function Cu(e,t,r){let n;return function(){let i=arguments;r.clearTimeout(n),n=r.setTimeout(()=>e.apply(this,i),t)}}var es=e=>Array.isArray(e)?e:[e];m();m();var Tu=()=>{},Sa=(e,t,r)=>r.months[t?"shorthand":"longhand"][e],Zg={D:Tu,F:function(e,t,r){e.setMonth(r.months.longhand.indexOf(t))},G:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},H:(e,t)=>{e.setHours(parseFloat(t))},J:(e,t)=>{e.setDate(parseFloat(t))},K:(e,t,r)=>{e.setHours(e.getHours()%12+12*tn(new RegExp(r.amPM[1],"i").test(t)))},M:function(e,t,r){e.setMonth(r.months.shorthand.indexOf(t))},S:(e,t)=>{e.setSeconds(parseFloat(t))},U:(e,t)=>new Date(parseFloat(t)*1e3),W:function(e,t,r){let n=parseInt(t),i=new Date(e.getFullYear(),0,2+(n-1)*7,0,0,0,0);return i.setDate(i.getDate()-i.getDay()+r.firstDayOfWeek),i},Y:(e,t)=>{e.setFullYear(parseFloat(t))},Z:(e,t)=>new Date(t),d:(e,t)=>{e.setDate(parseFloat(t))},h:(e,t)=>{e.setHours((e.getHours()>=12?12:0)+parseFloat(t))},i:(e,t)=>{e.setMinutes(parseFloat(t))},j:(e,t)=>{e.setDate(parseFloat(t))},l:Tu,m:(e,t)=>{e.setMonth(parseFloat(t)-1)},n:(e,t)=>{e.setMonth(parseFloat(t)-1)},s:(e,t)=>{e.setSeconds(parseFloat(t))},u:(e,t)=>new Date(parseFloat(t)),w:Tu,y:(e,t)=>{e.setFullYear(2e3+parseFloat(t))}},Gn={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},_i={Z:e=>e.toISOString(),D:function(e,t,r){return t.weekdays.shorthand[_i.w(e,t,r)]},F:function(e,t,r){return Sa(_i.n(e,t,r)-1,!1,t)},G:function(e,t,r){return Bt(_i.h(e,t,r))},H:e=>Bt(e.getHours()),J:function(e,t){return t.ordinal!==void 0?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:(e,t)=>t.amPM[tn(e.getHours()>11)],M:function(e,t){return Sa(e.getMonth(),!0,t)},S:e=>Bt(e.getSeconds()),U:e=>e.getTime()/1e3,W:function(e,t,r){return r.getWeek(e)},Y:e=>Bt(e.getFullYear(),4),d:e=>Bt(e.getDate()),h:e=>e.getHours()%12?e.getHours()%12:12,i:e=>Bt(e.getMinutes()),j:e=>e.getDate(),l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:e=>Bt(e.getMonth()+1),n:e=>e.getMonth()+1,s:e=>e.getSeconds(),u:e=>e.getTime(),w:e=>e.getDay(),y:e=>String(e.getFullYear()).substring(2)};var Du=({config:e=wr,l10n:t=Vr,isMobile:r=!1})=>(n,i,a)=>{let o=a||t;return e.formatDate!==void 0&&!r?e.formatDate(n,i,o):i.split("").map((s,u,l)=>_i[s]&&l[u-1]!=="\\"?_i[s](n,o,e):s!=="\\"?s:"").join("")},ts=({config:e=wr,l10n:t=Vr})=>(r,n,i,a)=>{if(r!==0&&!r)return;let o=a||t,s,u=r;if(r.getDate)s=new Date(r.getTime());else if(typeof r!="string"&&r.toFixed!==void 0)s=new Date(r);else if(typeof r=="string"){let l=n||(e||wr).dateFormat,c=String(r).trim();if(c==="today")s=new Date,i=!0;else if(e&&e.parseDate)s=e.parseDate(r,l);else if(/Z$/.test(c)||/GMT$/.test(c))s=new Date(r);else{let d,f=[];for(let p=0,g=0,y="";ps=p(s,g,o)||s),s=d?s:void 0}}if(!(s.getDate&&!isNaN(s.getTime()))){e.errorHandler(new Error(`Invalid date provided: ${u}`));return}return i===!0&&s.setHours(0,0,0,0),s};function nn(e,t,r=!0){return r!==!1?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var ev=(e,t,r)=>e>Math.min(t,r)&&ee*3600+t*60+r,tv=e=>{let t=Math.floor(e/3600),r=(e-t*3600)/60;return[t,r,e-t*3600-r*60]},nv={DAY:864e5};function rs(e){let t=e.defaultHour,r=e.defaultMinute,n=e.defaultSeconds;if(e.minDate!==void 0){let i=e.minDate.getHours(),a=e.minDate.getMinutes(),o=e.minDate.getSeconds();t=0?new Date:new Date(n.config.minDate.getTime()),ee=rs(n.config);$.setHours(ee.hours,ee.minutes,ee.seconds,$.getMilliseconds()),n.selectedDates=[$],n.latestSelectedDateObj=$}_!==void 0&&_.type!=="blur"&&to(_);let M=n._input.value;f(),kn(),n._input.value!==M&&n._debouncedChange()}function c(_,M){return _%12+12*tn(M===n.l10n.amPM[1])}function d(_){switch(_%24){case 0:case 12:return 12;default:return _%12}}function f(){if(n.hourElement===void 0||n.minuteElement===void 0)return;let _=(parseInt(n.hourElement.value.slice(-2),10)||0)%24,M=(parseInt(n.minuteElement.value,10)||0)%60,$=n.secondElement!==void 0?(parseInt(n.secondElement.value,10)||0)%60:0;n.amPM!==void 0&&(_=c(_,n.amPM.textContent));let ee=n.config.minTime!==void 0||n.config.minDate&&n.minDateHasTime&&n.latestSelectedDateObj&&nn(n.latestSelectedDateObj,n.config.minDate,!0)===0,le=n.config.maxTime!==void 0||n.config.maxDate&&n.maxDateHasTime&&n.latestSelectedDateObj&&nn(n.latestSelectedDateObj,n.config.maxDate,!0)===0;if(n.config.maxTime!==void 0&&n.config.minTime!==void 0&&n.config.minTime>n.config.maxTime){let re=ns(n.config.minTime.getHours(),n.config.minTime.getMinutes(),n.config.minTime.getSeconds()),ve=ns(n.config.maxTime.getHours(),n.config.maxTime.getMinutes(),n.config.maxTime.getSeconds()),ue=ns(_,M,$);if(ue>ve&&ue=12)]),n.secondElement!==void 0&&(n.secondElement.value=Bt($)))}function y(_){let M=rn(_),$=parseInt(M.value)+(_.delta||0);($/1e3>1||_.key==="Enter"&&!/[^\d]/.test($.toString()))&&te($)}function b(_,M,$,ee){if(Array.isArray(M))return M.forEach(le=>b(_,le,$,ee));if(Array.isArray(_))return _.forEach(le=>b(le,M,$,ee));_.addEventListener(M,$,ee),n._handlers.push({remove:()=>_.removeEventListener(M,$,ee)})}function x(){Ue("onChange")}function D(){if(n.config.wrap&&["open","close","toggle","clear"].forEach(M=>{Array.prototype.forEach.call(n.element.querySelectorAll(`[data-${M}]`),$=>b($,"click",n[M]))}),n.isMobile){qe();return}let _=Cu(Ot,50,r);if(n._debouncedChange=Cu(x,aS,r),n.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&b(n.daysContainer,"mouseover",M=>{n.config.mode==="range"&&vt(rn(M))}),b(n._input,"keydown",dt),n.calendarContainer!==void 0&&b(n.calendarContainer,"keydown",dt),!n.config.inline&&!n.config.static&&b(r,"resize",_),r.ontouchstart!==void 0?b(r.document,"touchstart",q):b(r.document,"mousedown",q),b(r.document,"focus",q,{capture:!0}),n.config.clickOpens===!0&&(b(n._input,"focus",n.open),b(n._input,"click",n.open)),n.daysContainer!==void 0&&(b(n.monthNav,"click",xl),b(n.monthNav,["keyup","increment"],y),b(n.daysContainer,"click",Rt)),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0){let M=$=>rn($).select();b(n.timeContainer,["increment"],l),b(n.timeContainer,"blur",l,{capture:!0}),b(n.timeContainer,"click",L),b([n.hourElement,n.minuteElement],["focus","click"],M),n.secondElement!==void 0&&b(n.secondElement,"focus",()=>n.secondElement&&n.secondElement.select()),n.amPM!==void 0&&b(n.amPM,"click",$=>{l($)})}n.config.allowInput&&b(n._input,"blur",Ve)}function C(_,M){let $=_!==void 0?n.parseDate(_):n.latestSelectedDateObj||(n.config.minDate&&n.config.minDate>n.now?n.config.minDate:n.config.maxDate&&n.config.maxDate1),n.calendarContainer.appendChild(_);let M=n.config.appendTo!==void 0&&n.config.appendTo.nodeType!==void 0;if((n.config.inline||n.config.static)&&(n.calendarContainer.classList.add(n.config.inline?"inline":"static"),n.config.inline&&(!M&&n.element.parentNode?n.element.parentNode.insertBefore(n.calendarContainer,n._input.nextSibling):n.config.appendTo!==void 0&&n.config.appendTo.appendChild(n.calendarContainer)),n.config.static)){let $=je(r.document,"div","flatpickr-wrapper");n.element.parentNode&&n.element.parentNode.insertBefore($,n.element),$.appendChild(n.element),n.altInput&&$.appendChild(n.altInput),$.appendChild(n.calendarContainer)}!n.config.static&&!n.config.inline&&(n.config.appendTo!==void 0?n.config.appendTo:r.document.body).appendChild(n.calendarContainer)}function K(_,M,$,ee){let le=we(M,!0),re=je(r.document,"span",_,M.getDate().toString());return re.dateObj=M,re.$i=ee,re.setAttribute("aria-label",n.formatDate(M,n.config.ariaDateFormat)),_.indexOf("hidden")===-1&&nn(M,n.now)===0&&(n.todayDateElem=re,re.classList.add("today"),re.setAttribute("aria-current","date")),le?(re.tabIndex=-1,Ye(M)&&(re.classList.add("selected"),n.selectedDateElem=re,n.config.mode==="range"&&(Kt(re,"startRange",n.selectedDates[0]&&nn(M,n.selectedDates[0],!0)===0),Kt(re,"endRange",n.selectedDates[1]&&nn(M,n.selectedDates[1],!0)===0),_==="nextMonthDay"&&re.classList.add("inRange")))):re.classList.add("flatpickr-disabled"),n.config.mode==="range"&&ir(M)&&!Ye(M)&&re.classList.add("inRange"),n.weekNumbers&&n.config.showMonths===1&&_!=="prevMonthDay"&&ee%7==6&&n.weekNumbers.insertAdjacentHTML("beforeend",""+n.config.getWeek(M)+""),Ue("onDayCreate",re),re}function z(_){_.focus(),n.config.mode==="range"&&vt(_)}function V(_){let M=_>0?0:n.config.showMonths-1,$=_>0?n.config.showMonths:-1;for(let ee=M;ee!=$;ee+=_){let le=n.daysContainer.children[ee],re=_>0?0:le.children.length-1,ve=_>0?le.children.length:-1;for(let ue=re;ue!=ve;ue+=_){let Fe=le.children[ue];if(Fe.className.indexOf("hidden")===-1&&we(Fe.dateObj))return Fe}}}function Z(_,M){let $=_.className.indexOf("Month")===-1?_.dateObj.getMonth():n.currentMonth,ee=M>0?n.config.showMonths:-1,le=M>0?1:-1;for(let re=$-n.currentMonth;re!=ee;re+=le){let ve=n.daysContainer.children[re],ue=$-n.currentMonth===re?_.$i+M:M<0?ve.children.length-1:0,Fe=ve.children.length;for(let Ne=ue;Ne>=0&&Ne0?Fe:-1);Ne+=le){let Me=ve.children[Ne];if(Me.className.indexOf("hidden")===-1&&we(Me.dateObj)&&Math.abs(_.$i-Ne)>=Math.abs(M))return z(Me)}}n.changeMonth(le),J(V(le),0)}function J(_,M){let $=o(),ee=xe($||n.element.doc.body),le=_!==void 0?_:ee?$:n.selectedDateElem!==void 0&&xe(n.selectedDateElem)?n.selectedDateElem:n.todayDateElem!==void 0&&xe(n.todayDateElem)?n.todayDateElem:V(M>0?1:-1);le===void 0?n._input.focus():ee?Z(le,M):z(le)}function se(_,M){let $=(new Date(_,M,1).getDay()-n.l10n.firstDayOfWeek+7)%7,ee=n.utils.getDaysInMonth((M-1+12)%12,_),le=n.utils.getDaysInMonth(M,_),re=r.document.createDocumentFragment(),ve=n.config.showMonths>1,ue=ve?"prevMonthDay hidden":"prevMonthDay",Fe=ve?"nextMonthDay hidden":"nextMonthDay",Ne=ee+1-$,Me=0;for(;Ne<=ee;Ne++,Me++)re.appendChild(K(`flatpickr-day ${ue}`,new Date(_,M-1,Ne),Ne,Me));for(Ne=1;Ne<=le;Ne++,Me++)re.appendChild(K("flatpickr-day",new Date(_,M,Ne),Ne,Me));for(let bt=le+1;bt<=42-$&&(n.config.showMonths===1||Me%7!=0);bt++,Me++)re.appendChild(K(`flatpickr-day ${Fe}`,new Date(_,M+1,bt%le),bt,Me));let Qt=je(r.document,"div","dayContainer");return Qt.appendChild(re),Qt}function G(){if(n.daysContainer===void 0)return;_a(n.daysContainer),n.weekNumbers&&_a(n.weekNumbers);let _=n.element.doc.createDocumentFragment();for(let M=0;M1||n.config.monthSelectorType!=="dropdown")return;let _=function(M){return n.config.minDate!==void 0&&n.currentYear===n.config.minDate.getFullYear()&&Mn.config.maxDate.getMonth())};n.monthsDropdownContainer.tabIndex=-1,n.monthsDropdownContainer.innerHTML="";for(let M=0;M<12;M++){if(!_(M))continue;let $=je(r.document,"option","flatpickr-monthDropdown-month");$.value=new Date(n.currentYear,M).getMonth().toString(),$.textContent=Sa(M,n.config.shorthandCurrentMonth,n.l10n),$.tabIndex=-1,n.currentMonth===M&&($.selected=!0),n.monthsDropdownContainer.appendChild($)}}function ie(){let _=je(r.document,"div","flatpickr-month"),M=r.document.createDocumentFragment(),$;n.config.showMonths>1||n.config.monthSelectorType==="static"?$=je(r.document,"span","cur-month"):(n.monthsDropdownContainer=je(r.document,"select","flatpickr-monthDropdown-months"),n.monthsDropdownContainer.setAttribute("aria-label",n.l10n.monthAriaLabel),b(n.monthsDropdownContainer,"change",ve=>{let ue=rn(ve),Fe=parseInt(ue.value,10);n.changeMonth(Fe-n.currentMonth),Ue("onMonthChange")}),Q(),$=n.monthsDropdownContainer);let ee=Ca(r.document,"cur-year",{tabindex:"-1"}),le=ee.getElementsByTagName("input")[0];le.setAttribute("aria-label",n.l10n.yearAriaLabel),n.config.minDate&&le.setAttribute("min",n.config.minDate.getFullYear().toString()),n.config.maxDate&&(le.setAttribute("max",n.config.maxDate.getFullYear().toString()),le.disabled=!!n.config.minDate&&n.config.minDate.getFullYear()===n.config.maxDate.getFullYear());let re=je(r.document,"div","flatpickr-current-month");return re.appendChild($),re.appendChild(ee),M.appendChild(re),_.appendChild(M),{container:_,yearElement:le,monthElement:$}}function he(){_a(n.monthNav),n.monthNav.appendChild(n.prevMonthNav),n.config.showMonths&&(n.yearElements=[],n.monthElements=[]);for(let _=n.config.showMonths;_--;){let M=ie();n.yearElements.push(M.yearElement),n.monthElements.push(M.monthElement),n.monthNav.appendChild(M.container)}n.monthNav.appendChild(n.nextMonthNav)}function pe(){return n.monthNav=je(r.document,"div","flatpickr-months"),n.yearElements=[],n.monthElements=[],n.prevMonthNav=je(r.document,"span","flatpickr-prev-month"),n.prevMonthNav.innerHTML=n.config.prevArrow,n.nextMonthNav=je(r.document,"span","flatpickr-next-month"),n.nextMonthNav.innerHTML=n.config.nextArrow,he(),Object.defineProperty(n,"_hidePrevMonthArrow",{get:()=>n.__hidePrevMonthArrow,set(_){n.__hidePrevMonthArrow!==_&&(Kt(n.prevMonthNav,"flatpickr-disabled",_),n.__hidePrevMonthArrow=_)}}),Object.defineProperty(n,"_hideNextMonthArrow",{get:()=>n.__hideNextMonthArrow,set(_){n.__hideNextMonthArrow!==_&&(Kt(n.nextMonthNav,"flatpickr-disabled",_),n.__hideNextMonthArrow=_)}}),n.currentYearElement=n.yearElements[0],Mt(),n.monthNav}function ge(){n.calendarContainer.classList.add("hasTime"),n.config.noCalendar&&n.calendarContainer.classList.add("noCalendar");let _=rs(n.config);n.timeContainer=je(r.document,"div","flatpickr-time"),n.timeContainer.tabIndex=-1;let M=je(r.document,"span","flatpickr-time-separator",":"),$=Ca(r.document,"flatpickr-hour",{"aria-label":n.l10n.hourAriaLabel});n.hourElement=$.getElementsByTagName("input")[0];let ee=Ca(r.document,"flatpickr-minute",{"aria-label":n.l10n.minuteAriaLabel});if(n.minuteElement=ee.getElementsByTagName("input")[0],n.hourElement.tabIndex=n.minuteElement.tabIndex=-1,n.hourElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getHours():n.config.time_24hr?_.hours:d(_.hours)),n.minuteElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getMinutes():_.minutes),n.hourElement.setAttribute("step",n.config.hourIncrement.toString()),n.minuteElement.setAttribute("step",n.config.minuteIncrement.toString()),n.hourElement.setAttribute("min",n.config.time_24hr?"0":"1"),n.hourElement.setAttribute("max",n.config.time_24hr?"23":"12"),n.hourElement.setAttribute("maxlength","2"),n.minuteElement.setAttribute("min","0"),n.minuteElement.setAttribute("max","59"),n.minuteElement.setAttribute("maxlength","2"),n.timeContainer.appendChild($),n.timeContainer.appendChild(M),n.timeContainer.appendChild(ee),n.config.time_24hr&&n.timeContainer.classList.add("time24hr"),n.config.enableSeconds){n.timeContainer.classList.add("hasSeconds");let le=Ca(r.document,"flatpickr-second");n.secondElement=le.getElementsByTagName("input")[0],n.secondElement.value=Bt(n.latestSelectedDateObj?n.latestSelectedDateObj.getSeconds():_.seconds),n.secondElement.setAttribute("step",n.minuteElement.getAttribute("step")),n.secondElement.setAttribute("min","0"),n.secondElement.setAttribute("max","59"),n.secondElement.setAttribute("maxlength","2"),n.timeContainer.appendChild(je(r.document,"span","flatpickr-time-separator",":")),n.timeContainer.appendChild(le)}return n.config.time_24hr||(n.amPM=je(r.document,"span","flatpickr-am-pm",n.l10n.amPM[tn((n.latestSelectedDateObj?n.hourElement.value:n.config.defaultHour)>11)]),n.amPM.title=n.l10n.toggleTitle,n.amPM.tabIndex=-1,n.timeContainer.appendChild(n.amPM)),n.timeContainer}function be(){n.weekdayContainer?_a(n.weekdayContainer):n.weekdayContainer=je(r.document,"div","flatpickr-weekdays");for(let _=n.config.showMonths;_--;){let M=je(r.document,"div","flatpickr-weekdaycontainer");n.weekdayContainer.appendChild(M)}return De(),n.weekdayContainer}function De(){if(!n.weekdayContainer)return;let _=n.l10n.firstDayOfWeek,M=[...n.l10n.weekdays.shorthand];_>0&&_ + ${M.join("")} + + `}function F(){n.calendarContainer.classList.add("hasWeeks");let _=je(r.document,"div","flatpickr-weekwrapper");_.appendChild(je(r.document,"span","flatpickr-weekday",n.l10n.weekAbbreviation));let M=je(r.document,"div","flatpickr-weeks");return _.appendChild(M),{weekWrapper:_,weekNumbers:M}}function N(_,M=!0){let $=M?_:_-n.currentMonth;$<0&&n._hidePrevMonthArrow===!0||$>0&&n._hideNextMonthArrow===!0||(n.currentMonth+=$,(n.currentMonth<0||n.currentMonth>11)&&(n.currentYear+=n.currentMonth>11?1:-1,n.currentMonth=(n.currentMonth+12)%12,Ue("onYearChange"),Q()),G(),Ue("onMonthChange"),Mt())}function ut(_=!0,M=!0){if(n.input.value="",n.altInput!==void 0&&(n.altInput.value=""),n.mobileInput!==void 0&&(n.mobileInput.value=""),n.selectedDates=[],n.latestSelectedDateObj=void 0,M===!0&&(n.currentYear=n._initialDate.getFullYear(),n.currentMonth=n._initialDate.getMonth()),n.config.enableTime===!0){let{hours:$,minutes:ee,seconds:le}=rs(n.config);g($,ee,le)}n.redraw(),_&&Ue("onChange")}function Ge(){n.isOpen=!1,n.isMobile||(n.calendarContainer!==void 0&&n.calendarContainer.classList.remove("open"),n._input!==void 0&&n._input.classList.remove("active")),Ue("onClose")}function W(){n.config!==void 0&&Ue("onDestroy");for(let _=n._handlers.length;_--;)n._handlers[_].remove();if(n._handlers=[],n.mobileInput)n.mobileInput.parentNode&&n.mobileInput.parentNode.removeChild(n.mobileInput),n.mobileInput=void 0;else if(n.calendarContainer&&n.calendarContainer.parentNode)if(n.config.static&&n.calendarContainer.parentNode){let _=n.calendarContainer.parentNode;if(_.lastChild&&_.removeChild(_.lastChild),_.parentNode){for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.parentNode.removeChild(_)}}else n.calendarContainer.parentNode.removeChild(n.calendarContainer);n.altInput&&(n.input.type="text",n.altInput.parentNode&&n.altInput.parentNode.removeChild(n.altInput),delete n.altInput),n.input&&(n.input.type=n.input._type,n.input.classList.remove("flatpickr-input"),n.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(_=>{try{delete n[_]}catch(M){}})}function j(_){return n.calendarContainer.contains(_)}function q(_){if(n.isOpen&&!n.config.inline){let M=rn(_),$=j(M),le=!(M===n.input||M===n.altInput||n.element.contains(M)||_.path&&_.path.indexOf&&(~_.path.indexOf(n.input)||~_.path.indexOf(n.altInput)))&&!$&&!j(_.relatedTarget),re=!n.config.ignoredFocusElements.some(ve=>ve.contains(M));le&&re&&(n.config.allowInput&&n.setDate(n._input.value,!1,n.config.altInput?n.config.altFormat:n.config.dateFormat),n.timeContainer!==void 0&&n.minuteElement!==void 0&&n.hourElement!==void 0&&n.input.value!==""&&n.input.value!==void 0&&l(),n.close(),n.config&&n.config.mode==="range"&&n.selectedDates.length===1&&n.clear(!1))}}function te(_){if(!_||n.config.minDate&&_n.config.maxDate.getFullYear())return;let M=_,$=n.currentYear!==M;n.currentYear=M||n.currentYear,n.config.maxDate&&n.currentYear===n.config.maxDate.getFullYear()?n.currentMonth=Math.min(n.config.maxDate.getMonth(),n.currentMonth):n.config.minDate&&n.currentYear===n.config.minDate.getFullYear()&&(n.currentMonth=Math.max(n.config.minDate.getMonth(),n.currentMonth)),$&&(n.redraw(),Ue("onYearChange"),Q())}function we(_,M=!0){var re;let $=n.parseDate(_,void 0,M);if(n.config.minDate&&$&&nn($,n.config.minDate,M!==void 0?M:!n.minDateHasTime)<0||n.config.maxDate&&$&&nn($,n.config.maxDate,M!==void 0?M:!n.maxDateHasTime)>0)return!1;if(!n.config.enable&&n.config.disable.length===0)return!0;if($===void 0)return!1;let ee=!!n.config.enable,le=(re=n.config.enable)!=null?re:n.config.disable;for(let ve=0,ue;ve=ue.from.getTime()&&$.getTime()<=ue.to.getTime())return ee}return!ee}function xe(_){return n.daysContainer!==void 0?_.className.indexOf("hidden")===-1&&_.className.indexOf("flatpickr-disabled")===-1&&n.daysContainer.contains(_):!1}function Ve(_){let M=_.target===n._input,$=n._input.value.trimEnd()!==Wi();M&&$&&!(_.relatedTarget&&j(_.relatedTarget))&&n.setDate(n._input.value,!0,_.target===n.altInput?n.config.altFormat:n.config.dateFormat)}function dt(_){let M=rn(_),$=n.config.wrap?e.contains(M):M===n._input,ee=n.config.allowInput,le=n.isOpen&&(!ee||!$),re=n.config.inline&&$&&!ee;if(_.keyCode===13&&$){if(ee)return n.setDate(n._input.value,!0,M===n.altInput?n.config.altFormat:n.config.dateFormat),n.close(),M.blur();n.open()}else if(j(M)||le||re){let ve=!!n.timeContainer&&n.timeContainer.contains(M);switch(_.keyCode){case 13:ve?(_.preventDefault(),l(),rr()):Rt(_);break;case 27:_.preventDefault(),rr();break;case 8:case 46:$&&!n.config.allowInput&&(_.preventDefault(),n.clear());break;case 37:case 39:if(!ve&&!$){_.preventDefault();let ue=o();if(n.daysContainer!==void 0&&(ee===!1||ue&&xe(ue))){let Fe=_.keyCode===39?1:-1;_.ctrlKey?(_.stopPropagation(),N(Fe),J(V(1),0)):J(void 0,Fe)}}else n.hourElement&&n.hourElement.focus();break;case 38:case 40:{_.preventDefault();let ue=_.keyCode===40?1:-1;n.daysContainer&&M.$i!==void 0||M===n.input||M===n.altInput?_.ctrlKey?(_.stopPropagation(),te(n.currentYear-ue),J(V(1),0)):ve||J(void 0,ue*7):M===n.currentYearElement?te(n.currentYear-ue):n.config.enableTime&&(!ve&&n.hourElement&&n.hourElement.focus(),l(_),n._debouncedChange());break}case 9:if(ve){let ue=[n.hourElement,n.minuteElement,n.secondElement,n.amPM].concat(n.pluginElements).filter(Ne=>Ne),Fe=ue.indexOf(M);if(Fe!==-1){let Ne=ue[Fe+(_.shiftKey?-1:1)];_.preventDefault(),(Ne||n._input).focus()}}else!n.config.noCalendar&&n.daysContainer&&n.daysContainer.contains(M)&&_.shiftKey&&(_.preventDefault(),n._input.focus());break;default:break}}if(n.amPM!==void 0&&M===n.amPM)switch(_.key){case n.l10n.amPM[0].charAt(0):case n.l10n.amPM[0].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[0],f(),kn();break;case n.l10n.amPM[1].charAt(0):case n.l10n.amPM[1].charAt(0).toLowerCase():n.amPM.textContent=n.l10n.amPM[1],f(),kn();break}($||j(M))&&Ue("onKeyDown",_)}function vt(_,M="flatpickr-day"){if(n.selectedDates.length!==1||_&&(!_.classList.contains(M)||_.classList.contains("flatpickr-disabled")))return;let $=_?_.dateObj.getTime():n.days.firstElementChild.dateObj.getTime(),ee=n.parseDate(n.selectedDates[0],void 0,!0).getTime(),le=Math.min($,n.selectedDates[0].getTime()),re=Math.max($,n.selectedDates[0].getTime()),ve=!1,ue=0,Fe=0;for(let Me=le;Mele&&Meue)?ue=Me:Me>ee&&(!Fe||Me .${M}`)).forEach(Me=>{let bt=Me.dateObj.getTime(),ar=ue>0&&bt0&&bt>Fe;if(ar){Me.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(or=>{Me.classList.remove(or)});return}else if(ve&&!ar)return;["startRange","inRange","endRange","notAllowed"].forEach(or=>{Me.classList.remove(or)}),_!==void 0&&(_.classList.add($<=n.selectedDates[0].getTime()?"startRange":"endRange"),ee<$&&bt===ee?Me.classList.add("startRange"):ee>$&&bt===ee&&Me.classList.add("endRange"),bt>=ue&&(Fe===0||bt<=Fe)&&ev(bt,ee,$)&&Me.classList.add("inRange"))})}function Ot(){n.isOpen&&!n.config.static&&!n.config.inline&&Un()}function Kn(_,M=n._positionElement){if(n.isMobile===!0){if(_){_.preventDefault();let ee=rn(_);ee&&ee.blur()}n.mobileInput!==void 0&&(n.mobileInput.focus(),n.mobileInput.click()),Ue("onOpen");return}else if(n._input.disabled||n.config.inline)return;let $=n.isOpen;n.isOpen=!0,$||(n.calendarContainer.classList.add("open"),n._input.classList.add("active"),Ue("onOpen"),Un(M)),n.config.enableTime===!0&&n.config.noCalendar===!0&&n.config.allowInput===!1&&(_===void 0||!n.timeContainer.contains(_.relatedTarget))&&r.setTimeout(()=>n.hourElement.select(),50)}function $n(_){return M=>{let $=n.config[`_${_}Date`]=n.parseDate(M,n.config.dateFormat),ee=n.config[`_${_==="min"?"max":"min"}Date`];$!==void 0&&(n[_==="min"?"minDateHasTime":"maxDateHasTime"]=$.getHours()>0||$.getMinutes()>0||$.getSeconds()>0),n.selectedDates&&(n.selectedDates=n.selectedDates.filter(le=>we(le)),!n.selectedDates.length&&_==="min"&&p($),kn()),n.daysContainer&&(ti(),$!==void 0?n.currentYearElement[_]=$.getFullYear().toString():n.currentYearElement.removeAttribute(_),n.currentYearElement.disabled=!!ee&&$!==void 0&&ee.getFullYear()===$.getFullYear())}}function Vn(){let _=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],M={...JSON.parse(JSON.stringify(e.dataset||{})),...t},$={};n.config.parseDate=M.parseDate,n.config.formatDate=M.formatDate,Object.defineProperty(n.config,"enable",{get:()=>n.config._enable,set:re=>{n.config._enable=Ee(re)}}),Object.defineProperty(n.config,"disable",{get:()=>n.config._disable,set:re=>{n.config._disable=Ee(re)}});let ee=M.mode==="time";if(!M.dateFormat&&(M.enableTime||ee)){let re=gt.defaultConfig.dateFormat||wr.dateFormat;$.dateFormat=M.noCalendar||ee?"H:i"+(M.enableSeconds?":S":""):re+" H:i"+(M.enableSeconds?":S":"")}if(M.altInput&&(M.enableTime||ee)&&!M.altFormat){let re=gt.defaultConfig.altFormat||wr.altFormat;$.altFormat=M.noCalendar||ee?"h:i"+(M.enableSeconds?":S K":" K"):re+` h:i${M.enableSeconds?":S":""} K`}Object.defineProperty(n.config,"minDate",{get:()=>n.config._minDate,set:$n("min")}),Object.defineProperty(n.config,"maxDate",{get:()=>n.config._maxDate,set:$n("max")});let le=re=>ve=>{n.config[re==="min"?"_minTime":"_maxTime"]=n.parseDate(ve,"H:i:S")};Object.defineProperty(n.config,"minTime",{get:()=>n.config._minTime,set:le("min")}),Object.defineProperty(n.config,"maxTime",{get:()=>n.config._maxTime,set:le("max")}),M.mode==="time"&&(n.config.noCalendar=!0,n.config.enableTime=!0),Object.assign(n.config,$,M);for(let re=0;re<_.length;re++)n.config[_[re]]=n.config[_[re]]===!0||n.config[_[re]]==="true";Zo.filter(re=>n.config[re]!==void 0).forEach(re=>{n.config[re]=es(n.config[re]||[]).map(s)}),n.isMobile=!n.config.disableMobile&&!n.config.inline&&n.config.mode==="single"&&!n.config.disable.length&&!n.config.enable&&!n.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(let re=0;re-1?n.config[ue]=es(ve[ue]).map(s).concat(n.config[ue]):typeof M[ue]=="undefined"&&(n.config[ue]=ve[ue])}M.altInputClass||(n.config.altInputClass=bn().className+" "+n.config.altInputClass),Ue("onParseConfig")}function bn(){return n.config.wrap?e.querySelector("[data-input]"):e}function wn(){typeof n.config.locale!="object"&&typeof gt.l10ns[n.config.locale]=="undefined"&&n.config.errorHandler(new Error(`flatpickr: invalid locale ${n.config.locale}`)),n.l10n={...gt.l10ns.default,...typeof n.config.locale=="object"?n.config.locale:n.config.locale!=="default"?gt.l10ns[n.config.locale]:void 0},Gn.D=`(${n.l10n.weekdays.shorthand.join("|")})`,Gn.l=`(${n.l10n.weekdays.longhand.join("|")})`,Gn.M=`(${n.l10n.months.shorthand.join("|")})`,Gn.F=`(${n.l10n.months.longhand.join("|")})`,Gn.K=`(${n.l10n.amPM[0]}|${n.l10n.amPM[1]}|${n.l10n.amPM[0].toLowerCase()}|${n.l10n.amPM[1].toLowerCase()})`,{...t,...JSON.parse(JSON.stringify(e.dataset||{}))}.time_24hr===void 0&>.defaultConfig.time_24hr===void 0&&(n.config.time_24hr=n.l10n.time_24hr),n.formatDate=Du(n),n.parseDate=ts({config:n.config,l10n:n.l10n})}function Un(_){if(typeof n.config.position=="function")return void n.config.position(n,_);if(n.calendarContainer===void 0)return;Ue("onPreCalendarPosition");let M=_||n._positionElement,$=Array.prototype.reduce.call(n.calendarContainer.children,(Dr,ji)=>Dr+ji.offsetHeight,0),ee=n.calendarContainer.offsetWidth,le=n.config.position.split(" "),re=le[0],ve=le.length>1?le[1]:null,ue=M.getBoundingClientRect(),Fe=r.innerHeight-ue.bottom,Ne=re==="above"||re!=="below"&&Fe<$&&ue.top>$,Me=r.pageYOffset+ue.top+(Ne?-$-2:M.offsetHeight+2);if(Kt(n.calendarContainer,"arrowTop",!Ne),Kt(n.calendarContainer,"arrowBottom",Ne),n.config.inline)return;let Qt=r.pageXOffset+ue.left,bt=!1,ar=!1;ve==="center"?(Qt-=(ee-ue.width)/2,bt=!0):ve==="right"&&(Qt-=ee-ue.width,ar=!0),Kt(n.calendarContainer,"arrowLeft",!bt&&!ar),Kt(n.calendarContainer,"arrowCenter",bt),Kt(n.calendarContainer,"arrowRight",ar);let or=r.document.body.offsetWidth-(r.pageXOffset+ue.right),zi=Qt+ee>r.document.body.offsetWidth,no=or+ee>r.document.body.offsetWidth;if(Kt(n.calendarContainer,"rightMost",zi),!n.config.static)if(n.calendarContainer.style.top=`${Me}px`,!zi)n.calendarContainer.style.left=`${Qt}px`,n.calendarContainer.style.right="auto";else if(!no)n.calendarContainer.style.left="auto",n.calendarContainer.style.right=`${or}px`;else{let Dr=Zr();if(Dr===void 0)return;let ji=r.document.body.offsetWidth,Sl=Math.max(0,ji/2-ee/2),_l=".flatpickr-calendar.centerMost:before",Df=".flatpickr-calendar.centerMost:after",O=Dr.cssRules.length,w=`{left:${ue.left}px;right:auto;}`;Kt(n.calendarContainer,"rightMost",!1),Kt(n.calendarContainer,"centerMost",!0),Dr.insertRule(`${_l},${Df}${w}`,O),n.calendarContainer.style.left=`${Sl}px`,n.calendarContainer.style.right="auto"}}function Zr(){let _=null;for(let M=0;Mve.classList&&ve.classList.contains("flatpickr-day")&&!ve.classList.contains("flatpickr-disabled")&&!ve.classList.contains("notAllowed"),$=Mu(rn(_),M);if($===void 0)return;let ee=$,le=n.latestSelectedDateObj=new Date(ee.dateObj.getTime()),re=(le.getMonth()n.currentMonth+n.config.showMonths-1)&&n.config.mode!=="range";if(n.selectedDateElem=ee,n.config.mode==="single")n.selectedDates=[le];else if(n.config.mode==="multiple"){let ve=Ye(le);ve?n.selectedDates.splice(parseInt(ve),1):n.selectedDates.push(le)}else n.config.mode==="range"&&(n.selectedDates.length===2&&n.clear(!1,!1),n.latestSelectedDateObj=le,n.selectedDates.push(le),nn(le,n.selectedDates[0],!0)!==0&&n.selectedDates.sort((ve,ue)=>ve.getTime()-ue.getTime()));if(f(),re){let ve=n.currentYear!==le.getFullYear();n.currentYear=le.getFullYear(),n.currentMonth=le.getMonth(),ve&&(Ue("onYearChange"),Q()),Ue("onMonthChange")}if(Mt(),G(),kn(),!re&&n.config.mode!=="range"&&n.config.showMonths===1?z(ee):n.selectedDateElem!==void 0&&n.hourElement===void 0&&n.selectedDateElem&&n.selectedDateElem.focus(),n.hourElement!==void 0&&n.hourElement!==void 0&&n.hourElement.focus(),n.config.closeOnSelect){let ve=n.config.mode==="single"&&!n.config.enableTime,ue=n.config.mode==="range"&&n.selectedDates.length===2&&!n.config.enableTime;(ve||ue)&&rr()}x()}let Wt={locale:[wn,De],showMonths:[he,u,be],minDate:[C],maxDate:[C],positionElement:[En],clickOpens:[()=>{n.config.clickOpens===!0?(b(n._input,"focus",n.open),b(n._input,"click",n.open)):(n._input.removeEventListener("focus",n.open),n._input.removeEventListener("click",n.open))}]};function yt(_,M){if(_!==null&&typeof _=="object"){Object.assign(n.config,_);for(let $ in _)Wt[$]!==void 0&&Wt[$].forEach(ee=>ee())}else n.config[_]=M,Wt[_]!==void 0?Wt[_].forEach($=>$()):Zo.indexOf(_)>-1&&(n.config[_]=es(M));n.redraw(),kn(!0)}function Y(_,M){let $=[];if(Array.isArray(_))$=_.map(ee=>n.parseDate(ee,M));else if(_.getDate||typeof _=="number")$=[n.parseDate(_,M)];else if(typeof _=="string")switch(n.config.mode){case"single":case"time":$=[n.parseDate(_,M)];break;case"multiple":$=_.split(n.config.conjunction).map(ee=>n.parseDate(ee,M));break;case"range":$=_.split(n.l10n.rangeSeparator).map(ee=>n.parseDate(ee,M));break;default:break}else n.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(_)}`));n.selectedDates=n.config.allowInvalidPreload?$:$.filter(ee=>ee.getDate&&we(ee,!1)),n.config.mode==="range"&&n.selectedDates.sort((ee,le)=>ee.getTime()-le.getTime())}function oe(_,M=!1,$=n.config.dateFormat){if(_!==0&&!_||Array.isArray(_)&&_.length===0)return n.clear(M);Y(_,$),n.latestSelectedDateObj=n.selectedDates[n.selectedDates.length-1],n.redraw(),C(void 0,M),p(),n.selectedDates.length===0&&n.clear(!1),kn(M),M&&Ue("onChange")}function Ee(_){return _.slice().map(M=>typeof M=="string"||typeof M=="number"||M.getDate?n.parseDate(M,void 0,!0):M&&typeof M=="object"&&M.from&&M.to?{from:n.parseDate(M.from,void 0),to:n.parseDate(M.to,void 0)}:M).filter(M=>M)}function ze(){n.selectedDates=[],n.now=n.parseDate(n.config.now)||new Date;let _=n.config.defaultDate||((n.input.nodeName==="INPUT"||n.input.nodeName==="TEXTAREA")&&n.input.placeholder&&n.input.value===n.input.placeholder?null:n.input.value);_&&Y(_,n.config.dateFormat),n._initialDate=n.selectedDates.length>0?n.selectedDates[0]:n.config.minDate&&n.config.minDate.getTime()>n.now.getTime()?n.config.minDate:n.config.maxDate&&n.config.maxDate.getTime()0&&(n.latestSelectedDateObj=n.selectedDates[0]),n.config.minTime!==void 0&&(n.config.minTime=n.parseDate(n.config.minTime,"H:i")),n.config.maxTime!==void 0&&(n.config.maxTime=n.parseDate(n.config.maxTime,"H:i")),n.minDateHasTime=!!n.config.minDate&&(n.config.minDate.getHours()>0||n.config.minDate.getMinutes()>0||n.config.minDate.getSeconds()>0),n.maxDateHasTime=!!n.config.maxDate&&(n.config.maxDate.getHours()>0||n.config.maxDate.getMinutes()>0||n.config.maxDate.getSeconds()>0)}function Dt(){if(n.input=bn(),!n.input){n.config.errorHandler(new Error("Invalid input element specified"));return}n.input._type=n.input.type,n.input.type="text",n.input.classList.add("flatpickr-input"),n._input=n.input,n.config.altInput&&(n.altInput=je(r.document,n.input.nodeName,n.config.altInputClass),n._input=n.altInput,n.altInput.placeholder=n.input.placeholder,n.altInput.disabled=n.input.disabled,n.altInput.required=n.input.required,n.altInput.tabIndex=n.input.tabIndex,n.altInput.type="text",n.input.setAttribute("type","hidden"),!n.config.static&&n.input.parentNode&&n.input.parentNode.insertBefore(n.altInput,n.input.nextSibling)),n.config.allowInput||n._input.setAttribute("readonly","readonly"),En()}function En(){n._positionElement=n.config.positionElement||n._input}function qe(){let _=n.config.enableTime?n.config.noCalendar?"time":"datetime-local":"date";n.mobileInput=je(r.document,"input",n.input.className+" flatpickr-mobile"),n.mobileInput.tabIndex=1,n.mobileInput.type=_,n.mobileInput.disabled=n.input.disabled,n.mobileInput.required=n.input.required,n.mobileInput.placeholder=n.input.placeholder,n.mobileFormatStr=_==="datetime-local"?"Y-m-d\\TH:i:S":_==="date"?"Y-m-d":"H:i:S",n.selectedDates.length>0&&(n.mobileInput.defaultValue=n.mobileInput.value=n.formatDate(n.selectedDates[0],n.mobileFormatStr)),n.config.minDate&&(n.mobileInput.min=n.formatDate(n.config.minDate,"Y-m-d")),n.config.maxDate&&(n.mobileInput.max=n.formatDate(n.config.maxDate,"Y-m-d")),n.input.getAttribute("step")&&(n.mobileInput.step=String(n.input.getAttribute("step"))),n.input.type="hidden",n.altInput!==void 0&&(n.altInput.type="hidden");try{n.input.parentNode&&n.input.parentNode.insertBefore(n.mobileInput,n.input.nextSibling)}catch(M){}b(n.mobileInput,"change",M=>{n.setDate(rn(M).value,!1,n.mobileFormatStr),Ue("onChange"),Ue("onClose")})}function st(_){if(n.isOpen===!0)return n.close();n.open(_)}function Ue(_,M){if(n.config===void 0)return;let $=n.config[_];if($!==void 0&&$.length>0)for(let ee=0;$[ee]&&ee<$.length;ee++)$[ee](n.selectedDates,n.input.value,n,M);_==="onChange"&&(n.input.dispatchEvent(fn("change")),n.input.dispatchEvent(fn("input")))}function fn(_){let M=r.document.createEvent("Event");return M.initEvent(_,!0,!0),M}function Ye(_){for(let M=0;M=0&&nn(_,n.selectedDates[1])<=0}function Mt(){n.config.noCalendar||n.isMobile||!n.monthNav||(n.yearElements.forEach((_,M)=>{let $=new Date(n.currentYear,n.currentMonth,1);$.setMonth(n.currentMonth+M),n.config.showMonths>1||n.config.monthSelectorType==="static"?n.monthElements[M].textContent=Sa($.getMonth(),n.config.shorthandCurrentMonth,n.l10n)+" ":n.monthsDropdownContainer.value=$.getMonth().toString(),_.value=$.getFullYear().toString()}),n._hidePrevMonthArrow=n.config.minDate!==void 0&&(n.currentYear===n.config.minDate.getFullYear()?n.currentMonth<=n.config.minDate.getMonth():n.currentYearn.config.maxDate.getMonth():n.currentYear>n.config.maxDate.getFullYear()))}function Wi(_){let M=_||(n.config.altInput?n.config.altFormat:n.config.dateFormat);return n.selectedDates.map($=>n.formatDate($,M)).filter(($,ee,le)=>n.config.mode!=="range"||n.config.enableTime||le.indexOf($)===ee).join(n.config.mode!=="range"?n.config.conjunction:n.l10n.rangeSeparator)}function kn(_=!0){n.mobileInput!==void 0&&n.mobileFormatStr&&(n.mobileInput.value=n.latestSelectedDateObj!==void 0?n.formatDate(n.latestSelectedDateObj,n.mobileFormatStr):""),n.input.value=Wi(n.config.dateFormat),n.altInput!==void 0&&(n.altInput.value=Wi(n.config.altFormat)),_!==!1&&Ue("onValueUpdate")}function xl(_){let M=rn(_),$=n.prevMonthNav.contains(M),ee=n.nextMonthNav.contains(M);$||ee?N($?-1:1):n.yearElements.indexOf(M)>=0?M.select():M.classList.contains("arrowUp")?n.changeYear(n.currentYear+1):M.classList.contains("arrowDown")&&n.changeYear(n.currentYear-1)}function to(_){_.preventDefault();let M=_.type==="keydown",$=rn(_),ee=$;n.amPM!==void 0&&$===n.amPM&&(n.amPM.textContent=n.l10n.amPM[tn(n.amPM.textContent===n.l10n.amPM[0])]);let le=parseFloat(ee.getAttribute("min")),re=parseFloat(ee.getAttribute("max")),ve=parseFloat(ee.getAttribute("step")),ue=parseInt(ee.value,10),Fe=_.delta||(M?_.which===38?1:-1:0),Ne=ue+ve*Fe;if(typeof ee.value!="undefined"&&ee.value.length===2){let Me=ee===n.hourElement,Qt=ee===n.minuteElement;Nere&&(Ne=ee===n.hourElement?Ne-re-tn(!n.amPM):le,Qt&&H(void 0,1,n.hourElement)),n.amPM&&Me&&(ve===1?Ne+ue===23:Math.abs(Ne-ue)>ve)&&(n.amPM.textContent=n.l10n.amPM[tn(n.amPM.textContent===n.l10n.amPM[0])]),ee.value=Bt(Ne)}}return a(),n}function is(e,t){let r=Array.prototype.slice.call(e).filter(i=>i.onClickEvent),n=[];for(let i=0;i{gt.l10ns.default={...gt.l10ns.default,...e}};gt.setDefaults=e=>{gt.defaultConfig={...gt.defaultConfig,...e}};gt.parseDate=ts({});gt.formatDate=Du({});gt.compareDates=nn;typeof jQuery!="undefined"&&typeof jQuery.fn!="undefined"&&(jQuery.fn.flatpickr=function(e){return is(this,e)});Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof e=="string"?parseInt(e,10):e))};typeof window!="undefined"&&(window.flatpickr=gt);var as=gt;function os(e,t,r,n,i){return e.document.body.createDiv({cls:`${B("date-picker")} ${B("ignore-click-outside")}`},a=>{a.style.left=`${r.x||0}px`,a.style.top=`${r.y||0}px`,a.createEl("input",{type:"text"},o=>{a.win.setTimeout(()=>{let s=null,u=d=>{d.target instanceof d.view.HTMLElement&&d.target.closest(`.${B("date-picker")}`)===null&&c()},l=d=>{d.key==="Escape"&&c()},c=()=>{s.destroy(),a.remove(),e.document.body.removeEventListener("click",u),e.document.removeEventListener("keydown",l)};s=as(o,{locale:Xo(t),defaultDate:i,inline:!0,onChange:d=>{n(d),c()},win:e}),a.win.setTimeout(()=>{let d=a.clientHeight,f=a.clientWidth;r.y+d>e.innerHeight&&(a.style.top=`${(r.y||0)-d}px`),r.x+f>e.innerWidth&&(a.style.left=`${(r.x||0)-f}px`)}),e.document.body.addEventListener("click",u),e.document.addEventListener("keydown",l)})})})}function ss({stateManager:e,boardModifiers:t,item:r,hasDate:n,path:i}){let a=e.getSetting("date-format"),o=e.getSetting("link-date-to-daily-note"),s=e.getSetting("date-trigger"),u=o?"(?:\\[[^\\]]+\\]\\([^)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",l=new RegExp(`(^|\\s)${Ln(s)}${u}`);return c=>{let d=c[0],f=(0,rt.moment)(d).format(a),p=o?Yo(e.app,f):`{${f}}`,g=r.data.titleRaw;n?g=r.data.titleRaw.replace(l,`$1${s}${p}`):g=`${r.data.titleRaw} ${s}${p}`,e.updateItemContent(r,g).then(y=>{t.updateItem(i,y)}).catch(y=>{e.setError(y),console.error(y)})}}function Iu(e){let t=e.getSetting("time-format"),r=[];for(let n=0;n<24;n++)r.push((0,rt.moment)({hour:n}).format(t)),r.push((0,rt.moment)({hour:n,minute:15}).format(t)),r.push((0,rt.moment)({hour:n,minute:30}).format(t)),r.push((0,rt.moment)({hour:n,minute:45}).format(t));return r}function ls(e,t,r,n,i){let a=B("time-picker"),o=t.getSetting("time-format"),s=i==null?void 0:i.format(o);e.document.body.createDiv({cls:`${a} ${B("ignore-click-outside")}`},u=>{let l=Iu(t),c=b=>{b.target instanceof b.view.HTMLElement&&b.target.hasClass(B("time-picker-item"))&&b.target.dataset.value&&(n(b.target.dataset.value),p())},d=b=>{b.target instanceof b.view.HTMLElement&&b.target.closest(`.${a}`)===null&&p()},f=b=>{b.key==="Escape"&&p()},p=()=>{u.remove(),u.removeEventListener("click",c),e.document.body.removeEventListener("click",d),e.document.removeEventListener("keydown",f)};u.style.left=`${r.x||0}px`,u.style.top=`${r.y||0}px`;let g=null,y=null;l.forEach((b,x)=>{let D=b===s;u.createDiv({cls:`${B("time-picker-item")} ${D?"is-selected":""}`,text:b},C=>{C.createEl("span",{cls:B("time-picker-check"),prepend:!0},L=>{(0,rt.setIcon)(L,"lucide-check")}),x%4==0&&C.addClass("is-hour"),C.dataset.value=b,D&&(g=C),x===Math.floor(l.length/2)&&(y=C)})}),u.win.setTimeout(()=>{var D;let b=u.clientHeight,x=u.clientWidth;r.y+b>e.innerHeight&&(u.style.top=`${(r.y||0)-b}px`),r.x+x>e.innerWidth&&(u.style.left=`${(r.x||0)-x}px`),(D=g||y)==null||D.scrollIntoView({block:"center",inline:"nearest"}),u.addEventListener("click",c),e.document.body.addEventListener("click",d),e.document.addEventListener("keydown",f)})})}function cs({stateManager:e,boardModifiers:t,item:r,hasTime:n,path:i}){let a=e.getSetting("time-trigger"),o=new RegExp(`(^|\\s)${Ln(a)}{([^}]+)}`);return s=>{let u=r.data.titleRaw;n?u=r.data.titleRaw.replace(o,`$1${a}{${s}}`):u=`${r.data.titleRaw} ${a}{${s}}`,e.updateItemContent(r,u).then(l=>{t.updateItem(i,l)}).catch(l=>{e.setError(l),console.error(l)})}}function rv(e){let t=e.data.metadata.date,r=[];t&&(t.isSame(new Date,"day")&&r.push("is-today"),t.isAfter(new Date,"day")&&r.push("is-future"),t.isBefore(new Date,"day")&&r.push("is-past")),e.data.isComplete&&r.push("is-complete");for(let n of e.data.metadata.tags)r.push(`has-tag-${n.slice(1)}`);return r}function Ur(e,t,r,n){return e.app.fileManager.generateMarkdownLink(t,r,n)}function sS(e,t,r){return rt.htmlToMarkdown?(0,rt.htmlToMarkdown)(r):rt.MarkdownSourceView.prototype.handleDataTransfer.call({app:e.app},t)}function lS(e){return e.replace(/^\[(.*)\]\(app:\/\/obsidian.md\/(.*)\)$/,"[$1]($2)")}function Au(e){var r;let t=e.require("electron").remote.clipboard;if(process.platform==="darwin"){if(t.has("NSFilenamesPboardType"))return((r=t.read("NSFilenamesPboardType").match(/.*<\/string>/g))==null?void 0:r.map(n=>n.replace(/|<\/string>/g,"")))||[];{let n=t.readImage("clipboard");return n.isEmpty()?[t.read("public.file-url").replace("file://","")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,rt.moment)().format("YYYYMMDDHHmmss")}.png`}]}}else if(t.has("CF_HDROP")){let n=t.read("CF_HDROP")||"",i=[...n].filter((o,s)=>n.charCodeAt(s)!==0).join("").replace(/\\/g,"\\"),a=i.match(/[a-zA-Z]:\\/);if(a){let o=i.indexOf(a[0]);return o!==0&&(i=i.slice(o)),i.split(a[0]).filter(s=>s).map(s=>a+s)}}else{let n=t.readImage("clipboard");return n.isEmpty()?[t.readBuffer("FileNameW").toString("ucs2").replace(RegExp(String.fromCharCode(0),"g"),"")].filter(i=>i):[{buffer:n.toPNG(),mimeType:"image/png",originalName:`Pasted image ${(0,rt.moment)().format("YYYYMMDDHHmmss")}.png`}]}return null}function cS(e){return e.split("\\").pop().split("/").pop()}async function uS(e,t,r,n){let i=await e.app.vault.getAvailablePathForAttachments(t,r,e.file),a=await e.app.vault.createBinary(i,n);return Ur(e,a,e.file.path)}async function dS(e,t){let r=Au(t);if(!r||r.length===0)return null;let n=t.require("fs/promises"),i=t.require("path");return(await Promise.all(r.map(async a=>{if(typeof a=="string"){let s=cS(a).split("."),u=s.pop(),l=s.join("."),c=await e.app.vault.getAvailablePathForAttachments(l,u,e.file),d=e.app.vault.adapter.basePath;await n.copyFile(a,i.join(d,c)),await new Promise(p=>t.setTimeout(p,50));let f=e.app.vault.getAbstractFileByPath(c);return Ur(e,f,e.file.path)}else{let o=a.originalName.split("."),s=o.pop(),u=o.join(".");return await uS(e,u,s,a.buffer)}}))).filter(a=>a)}function iv(e,t,r){return Promise.all(t.map(n=>{let i=n.name.split("."),a=i.pop(),o=i.join(".");if(r){switch(n.type){case"text/jpg":a="jpg";break;case"text/jpeg":a="jpeg";break;case"text/png":a="png";break}o="Pasted image "+(0,rt.moment)().format("YYYYMMDDHHmmss")}return new Promise((s,u)=>{let l=new FileReader;l.onload=async c=>{try{let d=await e.app.vault.getAvailablePathForAttachments(o,a,e.file),f=await e.app.vault.createBinary(d,c.target.result);s(Ur(e,f,e.file.path))}catch(d){console.error(d),u(d)}},l.readAsArrayBuffer(n)})}))}async function fS(e,t,r){let n=!t.view,i=n?e.getAView().isShiftPressed:!1,a=n?t.clipboardData:t.dataTransfer,o=n&&rt.Platform.isDesktopApp?r.require("electron").remote.clipboard:null,s=o?o.availableFormats():[];if(n){if(n&&!i&&!s.includes("text/rtf")){if(rt.Platform.isDesktopApp){let g=await dS(e,r);if(g==null?void 0:g.length)return g}let f=[],p=t.clipboardData.items;for(let g in p){let y=p[g];y.kind==="file"&&f.push(y.getAsFile())}if(f.length)return await iv(e,f,!0)}}else{let f=await pc(t);if(f.length)return await iv(e,f)}let u=a.getData("text/html"),l=a.getData("text/plain"),c=a.getData("text/uri-list"),d=i?l||u:sS(e,a,u);return[lS(d||c||l||u||"").trim()]}async function us(e,t,r){let n=e.app.dragManager.draggable,i=t.view?t.dataTransfer:t.clipboardData;switch(n==null?void 0:n.type){case"file":return[Ur(e,n.file,e.file.path)];case"files":return n.files.map(a=>Ur(e,a,e.file.path));case"folder":return n.file.children.map(a=>a instanceof rt.TFolder?null:Ur(e,a,e.file.path)).filter(a=>a);case"link":{let a=n.file?Ur(e,n.file,(0,rt.parseLinktext)(n.linktext).subpath):`[[${n.linktext}]]`,o=new DOMParser().parseFromString(i.getData("text/html"),"text/html").documentElement.textContent;return a=a.replace(/]]$/,`|${o}]]`).replace(/^\[[^\]].+]\(/,`[${o}](`),[a]}default:return await fS(e,t,r)}}m();function ds(e,t){let r,n,i=(...a)=>{r=a,!n&&(n=e.requestAnimationFrame(()=>{n=null,t(...r)}))};return i.cancel=()=>{!n||(e.cancelAnimationFrame(n),n=null)},i}var av={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"};var Ci={outOfTheWay:200,minDropTime:330,maxDropTime:550},Er=`${Ci.outOfTheWay}ms ${av.outOfTheWay}`;var ln={none:"none",fluid:`opacity ${Er}`,snap:`transform ${Er}, opacity ${Er}`,drop:e=>{let t=`${e}ms ${av.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Er}`,placeholder:`height ${Er}, width ${Er}, margin ${Er}, border-color ${Er}`},pS=(e,t)=>e.x===t.x&&e.y===t.y,hS={x:0,y:0},ov=e=>pS(e,hS)?void 0:`translate(${e.x}px, ${e.y}px)`,sv={moveTo:ov,drop:e=>ov(e)},mS=Ci.maxDropTime-Ci.minDropTime,lv=1500,gS=.6;function Ti({position:e,destination:t,isCancel:r}){let n=di(e,t);if(n<=0)return Ci.minDropTime;if(n>=lv)return Ci.maxDropTime;let i=n/lv,a=Ci.minDropTime+mS*i,o=r?a*gS:a;return Math.round(o)}function Dn(e,t,r){e.style.getPropertyValue(t)!==r&&e.style.setProperty(t,r)}function fs(e,t){e.style.getPropertyValue(t)&&e.style.removeProperty(t)}m();m();var Mn;(function(i){i[i.TitleAsc=0]="TitleAsc",i[i.TitleDsc=1]="TitleDsc",i[i.DateAsc=2]="DateAsc",i[i.DateDsc=3]="DateDsc"})(Mn||(Mn={}));var Je={Item:"item",Lane:"lane",Board:"board",MetadataSetting:"metadata-setting",TagColorSetting:"tag-color",DateColorSetting:"date-color"},ps={accepts:[Je.Item],type:Je.Item,children:[]},kr={accepts:[Je.Lane],type:Je.Lane},hs={accepts:[],type:Je.Board},ms={accepts:[Je.MetadataSetting],type:Je.MetadataSetting,children:[]},gs={accepts:[],type:Je.TagColorSetting,children:[]},vs={accepts:[],type:Je.DateColorSetting,children:[]};function Lu(e,t,r,n,i){let a="htmldnd",o=Ae(),s=e-75,u=e+75,l=t-25,c=t+25;return{scopeId:a,entityId:`${a}-${o}`,initial:[s,l,u,c],getParentScrollState(){return on},getParentScrollShift(){return Pn},recalcInitial(){},getHitbox(){return this.initial},getPath(){return[]},getData(){return{viewId:n,type:Je.Item,id:o,content:r,accepts:[],win:i}}}}var Fu=class{constructor(t,r,n,i){this.isHTMLDragging=!1;this.dragOverTimeout=0;this.win=t,this.hitboxEntities=n,this.scrollEntities=i,this.emitter=r}getDragEventData(){return{dragEntity:this.dragEntity,dragEntityId:this.dragEntityId,dragEntityMargin:this.dragEntityMargin,dragOrigin:this.dragOrigin,dragOriginHitbox:this.dragOriginHitbox,dragPosition:this.dragPosition,primaryIntersection:this.primaryIntersection,scrollIntersection:this.scrollIntersection}}dragStart(t,r){var a;let n=(r==null?void 0:r.dataset.hitboxid)||t.currentTarget.dataset.hitboxid;if(!n)return;let i=getComputedStyle(r||t.currentTarget);this.dragEntityId=n,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=this.hitboxEntities.get(n),this.dragOriginHitbox=(a=this.dragEntity)==null?void 0:a.getHitbox(),this.dragEntityMargin=[parseFloat(i.marginLeft)||0,parseFloat(i.marginTop)||0,parseFloat(i.marginRight)||0,parseFloat(i.marginBottom)||0],this.emitter.emit("dragStart",this.getDragEventData())}dragStartHTML(t,r){this.isHTMLDragging=!0;let n=Lu(t.pageX,t.pageY,[],r,t.view);this.dragEntityId=n.entityId,this.dragOrigin={x:t.pageX,y:t.pageY},this.dragPosition={x:t.pageX,y:t.pageY},this.dragEntity=n,this.dragOriginHitbox=n.getHitbox(),this.dragEntityMargin=[0,0,0,0],this.emitter.emit("dragStart",this.getDragEventData())}dragMove(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragMoveHTML(t){this.dragPosition={x:t.pageX,y:t.pageY},this.emitter.emit("dragMove",this.getDragEventData()),this.calculateDragIntersect()}dragEnd(t){this.emitter.emit("dragEnd",this.getDragEventData()),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0}dragEndHTML(t,r,n,i){this.isHTMLDragging=!1,i||(this.dragEntity=Lu(t.pageX,t.pageY,n,r,t.view),this.emitter.emit("dragEnd",this.getDragEventData())),this.dragEntityMargin=void 0,this.dragEntity=void 0,this.dragEntityId=void 0,this.dragOrigin=void 0,this.dragOriginHitbox=void 0,this.dragPosition=void 0,this.scrollIntersection=void 0,this.primaryIntersection=void 0,i&&this.emitter.emit("dragEnd",this.getDragEventData())}onHTMLDragLeave(t){this.win.clearTimeout(this.dragOverTimeout),this.dragOverTimeout=this.win.setTimeout(t,351)}calculateDragIntersect(){if(!this.dragEntity||!this.dragPosition||!this.dragOrigin||!this.dragOriginHitbox)return;let{type:t,win:r}=this.dragEntity.getData(),n=[],i=[],a=[],o=[];if(this.hitboxEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(n.push(l),i.push(l.getHitbox()))}),this.scrollEntities.forEach(l=>{let c=l.getData();r===c.win&&c.accepts.includes(t)&&(a.push(l),o.push(l.getHitbox()))}),n.length===0&&a.length===0)return;let s=Op(this.dragOriginHitbox,this.dragOrigin,this.dragPosition);this.handleScrollIntersect(s,this.dragEntity.entityId,o,a)||this.handleHitboxIntersect(s,this.dragEntity.entityId,i,n)}handleScrollIntersect(t,r,n,i){let a=(0,Pu.default)([t],n).map(s=>i[s[1]]),o=Fp(a,t,r);if(this.scrollIntersection&&(!o||o[0]!==this.scrollIntersection[0])){let[s,u]=this.scrollIntersection,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("endDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=void 0}if(o&&(!this.scrollIntersection||this.scrollIntersection[0]!==o[0])){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("beginDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}else if(o&&this.scrollIntersection&&o[0]===this.scrollIntersection[0]){let[s,u]=o,l=s.getData(),c=s.entityId,d=l.side;this.emitter.emit("updateDragScroll",{...this.getDragEventData(),scrollEntity:s,scrollEntityId:c,scrollEntitySide:d,scrollStrength:u},c),this.scrollIntersection=o}return!!o}handleHitboxIntersect(t,r,n,i){let a=(0,Pu.default)([t],n).map(s=>i[s[1]]),o=Wl(a,t,r);this.primaryIntersection&&this.primaryIntersection!==o&&(this.emitter.emit("dragLeave",this.getDragEventData(),this.primaryIntersection.entityId),this.primaryIntersection=void 0),o&&this.primaryIntersection!==o&&(this.emitter.emit("dragEnter",{...this.getDragEventData(),primaryIntersection:o},o.entityId),this.primaryIntersection=o)}},Di=e=>{e.preventDefault(),e.stopPropagation()};function Mi(e,t){let r=P.useContext(xt);P.useEffect(()=>{let n=e.current,i=t.current;if(!r||!n||!i)return;let a=s=>{if(s.defaultPrevented||s.target.dataset.ignoreDrag||s.button!==0&&s.buttons!==1)return;let u=s.view,l=["pen","touch"].includes(s.pointerType);l||(s.stopPropagation(),s.preventDefault());let c=s,d={x:s.pageX,y:s.pageY},f=!1,p=0;l&&(u.addEventListener("contextmenu",Di,!0),p=u.setTimeout(()=>{r.dragManager.dragStart(c,n),f=!0,u.addEventListener("touchmove",Di,{passive:!1})},500));let g=ds(u,b=>{l?f?r.dragManager.dragMove(b):di(d,{x:b.pageX,y:b.pageY})>5&&(u.clearTimeout(p),u.removeEventListener("touchmove",Di),u.removeEventListener("contextmenu",Di,!0),u.removeEventListener("pointermove",g),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y)):f?r.dragManager.dragMove(b):di(d,{x:b.pageX,y:b.pageY})>5&&(r.dragManager.dragStart(c,n),f=!0)}),y=b=>{u.clearTimeout(p),f=!1,r.dragManager.dragEnd(b),u.removeEventListener("pointermove",g),u.removeEventListener("pointerup",y),u.removeEventListener("pointercancel",y),l&&(u.removeEventListener("contextmenu",Di,!0),u.removeEventListener("touchmove",Di))};u.addEventListener("pointermove",g),u.addEventListener("pointerup",y),u.addEventListener("pointercancel",y)},o=s=>{s.stopPropagation()};return i.addEventListener("pointerdown",a),i.addEventListener("touchstart",o),()=>{i.removeEventListener("pointerdown",a),i.removeEventListener("touchstart",o)}},[e,t,r])}function cv(e){let t=P.useContext(xt),r=P.useCallback(i=>{t.dragManager.isHTMLDragging?(i.preventDefault(),t.dragManager.dragMoveHTML(i)):t.dragManager.dragStartHTML(i,e.getAView().id),t.dragManager.onHTMLDragLeave(()=>{t.dragManager.dragEndHTML(i,e.getAView().id,[],!0)})},[t,e]),n=P.useCallback(async i=>{t.dragManager.dragEndHTML(i,e.getAView().id,await us(e,i,activeWindow),!1)},[t,e]);return{onDragOver:r,onDrop:n}}m();var dv=me(Et());m();var uv=me(require("obsidian"));function _t({name:e,className:t}){return h("span",{"data-icon":e,className:`${B("icon")} ${t||""}`,ref:r=>{r&&(0,uv.setIcon)(r,e)}})}var fv=P.memo(function({shouldMarkItemsComplete:t,path:r,item:n,stateManager:i,boardModifiers:a}){let o=i.useSetting("show-checkboxes"),[s,u]=P.useState(!1),[l,c]=P.useState(!1);return P.useEffect(()=>{if(l){let d=f=>{f.metaKey||f.ctrlKey?u(!0):u(!1)};return window.addEventListener("keydown",d),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",d),window.removeEventListener("keyup",d)}}},[l]),t||o?h("div",{onMouseEnter:d=>{c(!0),(d.ctrlKey||d.metaKey)&&u(!0)},onMouseLeave:()=>{c(!1),s&&u(!1)},className:B("item-prefix-button-wrapper")},o&&!s&&h("input",{onChange:()=>{a.updateItem(r,(0,dv.default)(n,{data:{$toggle:["isComplete"]}}))},type:"checkbox",className:"task-list-item-checkbox",checked:!!n.data.isComplete}),(s||!o&&t)&&h("a",{onClick:()=>{a.archiveItem(r)},className:`${B("item-prefix-button")} clickable-icon`,"aria-label":s?void 0:"Archive card"},h(_t,{name:"sheets-in-box"}))):null});m();var jy=me(require("obsidian"));m();var hv=me(require("obsidian"));m();var Nu;function pv(e){if(e.nodeName!=="TEXTAREA")return!1;if(typeof Nu=="undefined"){let t=e.doc.createElement("textarea");t.value=1,Nu=!!t.firstChild}return Nu}function Ta(e,t){var i;e.focus();let r=e.doc;if(!r.execCommand("insertText",!1,t)){let a=e.selectionStart,o=e.selectionEnd;if(typeof e.setRangeText=="function")e.setRangeText(t);else{let u=r.createRange(),l=r.createTextNode(t);if(pv(e)){let c=e.firstChild;if(!c)e.appendChild(l);else{let d=0,f=null,p=null;for(;c&&(f===null||p===null);){let g=((i=c.nodeValue)==null?void 0:i.length)||0;a>=d&&a<=d+g&&u.setStart(f=c,a-d),o>=d&&o<=d+g&&u.setEnd(p=c,o-d),d+=g,c=c.nextSibling}a!==o&&u.deleteContents()}}if(pv(e)&&u.commonAncestorContainer.nodeName==="#text")u.insertNode(l);else{let c=e.value;e.value=c.slice(0,a)+t+c.slice(o)}}e.setSelectionRange(a+t.length,a+t.length);let s=r.createEvent("UIEvent");s.initEvent("input",!0,!1),e.dispatchEvent(s)}}var Ou=e=>e.charCodeAt(0)===10,mv=e=>e===" "||Ou(e);function vS(e,t,r){if(!e)throw Error("Argument 'text' should be truthy");let n=0,i=e.length;for(let a=t;a-1>-1;a--)if(Ou(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a-1;a--)if(mv(e[a-1])){n=a;break}for(let a=r===void 0?t:r;a0&&e.value[a.selection.start-1]!==" ")return!1;if(a.selection.end===a.selection.start){let s=Lt(e,`${r}`);return Pt(e,{start:s.selection.end-1-a.selectedText.length,end:s.selection.end-1}),!1}let o=Lt(e,`${t}${a.selectedText}${r}`);return Pt(e,{start:o.selection.end-1-a.selectedText.length,end:o.selection.end-1}),!0}function ys(e,t,r,n){let i=On(e),a=Ii({text:i.text,selection:i.selection}),o=Pt(e,a),s=t.test(o.selectedText)?n(o.selectedText):r(o.selectedText),u=Lt(e,s);Pt(e,{start:o.selection.start,end:u.selection.end})}function bs(e,t){var r;if(t.types.includes("text/uri-list")||["file","files","link","folder"].includes((r=e.app.dragManager.draggable)==null?void 0:r.type))return"link";if(t.types.includes("text/html")||t.types.includes("text/plain"))return"copy"}async function ws(e,t,r){let n=e.clipboardData.getData("text/html"),i=e.clipboardData.types.includes("Files"),a=hv.Platform.isDesktopApp?Au(r):null,o=n||i||(a==null?void 0:a.length)>0;o&&e.preventDefault();try{let s=await us(t,e,r);if(o){let u=e.target,l=s.join(` +`);Lt(u,l)}}catch(s){console.error(s),t.setError(s)}}m();var dd=me(require("obsidian"));m();m();var gv={};m();var vv={};m();var yv={};m();var bv={"Open as kanban board":"\xD6ffne als Kanban-Board","Create new board":"Erstelle ein neues Board","Archive completed cards in active board":"Archiviere fertiggestellte Karten im aktiven Board","Error: current file is not a Kanban board":"Fehler: Momentan ge\xF6ffnete Datei ist kein Kanban-Board","Convert empty note to Kanban":"Konvertiere leere Notiz in ein Kanban-Board","Error: cannot create Kanban, the current note is not empty":"Fehler: Kanban konnte nicht erstellt werden, momentan ge\xF6ffnete Datei ist nicht leer","New kanban board":"Neues Kanban-Board","Untitled Kanban":"Unbenanntes Kanban","Toggle between Kanban and markdown mode":"Wechsle zwischen Kanban und Markdown Modus","Open as markdown":"\xD6ffne als Markdown","Open board settings":"\xD6ffne Board-Einstellungen","Archive completed cards":"Archiviere fertiggestellte Karten","Something went wrong":"Etwas ist schief gelaufen","You may wish to open as markdown and inspect or edit the file.":"Du kannst die Datei im Markdown Modus \xF6ffnen und \xFCberpr\xFCfen oder bearbeiten.","Are you sure you want to archive all completed cards on this board?":"Bist du dir sicher, dass du alle fertiggestellten Karten des Boards archivieren m\xF6chtest?",Complete:"Fertiggestellt",Archive:"Archiv","Invalid Kanban file: problems parsing frontmatter":"Fehlerhafte Kanban Datei: Probleme beim Parsen des Frontmatters","I don't know how to interpret this line:":"Ich wei\xDF nicht, wie ich diese Zeile interpretieren soll:",Untitled:"Unbenannt","Note: No template plugins are currently enabled.":"Beachte: Keine Template-Plugins sind derzeit aktiviert.",default:"Standard","Search...":"Suche...","These settings will take precedence over the default Kanban board settings.":"Diese Einstellung wird Vorrang vor der standard Kanban-Board Einstellung haben. ","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Stelle standard Kanban-Board Einstellungen ein. Einstellungen k\xF6nnen auf einer Board-f\xFCr-Board Basis \xFCberschrieben werden.","Note template":"Notiz Vorlage","This template will be used when creating new notes from Kanban cards.":"Diese Vorlage wird beim Erstellen neuer Notizen aus Kanban-Karten verwendet.","No template":"Keine Vorlage","Note folder":"Notiz Ordner","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notizen, welche aus einer Kanban-Karte erstellt wurden, werden in diesem Ordner platziert. Falls leer, werden die Einstellungen des Vaults verwendet.","Default folder":"Standard Ordner","Lane width":"Schienen Breite","Enter a number to set the lane width in pixels.":"Gebe ein Zahl ein, um die Schienen Breite in Pixeln einzustellen.","Maximum number of archived cards":"Maximale Anzahl archivierter Karten.","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archivierte Karten k\xF6nnen im Markdown-Modus betrachtet werden. Diese Einstellung wird alte Karten l\xF6schen, sobald das Limit erreicht wird. Eine Einstellung von -1 setzt das Archiv auf eine unendliche Gr\xF6\xDFe.","Display card checkbox":"Zeige Karten Checkbox","When toggled, a checkbox will be displayed with each card":"Wenn aktiviert, wird eine Checkbox mit jeder Karte angezeigt.","Reset to default":"Zur\xFCcksetzen","Date & Time":"Datum & Uhrzeit","Date trigger":"Datums Ausl\xF6ser","When this is typed, it will trigger the date selector":"Wenn dies eingegeben wird, dann wird die Datumsauswahl angezeigt","Time trigger":"Uhrzeit Ausl\xF6ser","When this is typed, it will trigger the time selector":"Wenn dies eingegeben wird, dann wird die Uhrzeitsauswahl angezeigt","Date format":"Format des Datums","This format will be used when saving dates in markdown.":"Dieses Format wird verwendet, wenn ein Datum in Markdown gespeichert wird.","For more syntax, refer to":"F\xFCr mehr Syntax Informationen siehe","format reference":"Formatvorlage","Your current syntax looks like this":"Dein momentanes Format sieht so aus","Time format":"Format der Uhrzeit","Date display format":"Format der Datums Anzeige","This format will be used when displaying dates in Kanban cards.":"Dieses Format wird verwendet, wenn ein Datum in einer Kanban-Karte angezeigt wird.","Show relative date":"Zeige relatives Datum","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Wenn aktiviert, wird die Zeitspanne zwischen Heute und dem Datum angezeigt. Zum Beispiel: 'In 3 Tagen', 'Vor einem Monat'","Hide card display dates":"Verstecke Karten Datum","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Wenn aktiviert, werden formatierte Daten nicht auf der Karte angezeigt. Relative Daten werden dennoch angezeigt, solange sie aktiviert sind.","Hide dates in card titles":"Verstecke Daten im Titel der Karte","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Wenn aktiviert, werden Daten nicht im Titel der Karte angezeigt. Dies verhindert, dass Daten im Titel neu erstellter Notizen vorhanden sind.","Link dates to daily notes":"Verbinde Daten zu Daily Notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Wenn aktiviert, werden Daten mit Daily Notes verbunden. Zum Beispiel [[26.4.2021]]","Add date and time to archived cards":"F\xFCge Datum und Uhrzeit zu archivierten Notizen hinzu","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Wenn aktiviert, wird das momentane Datum und die momentane Zeit am Anfang einer Karte hinzugef\xFCgt, wenn sie archiviert wird. Zum Beispiel: - [ ] 14.05.2021 10:00 Mein Karten Titel","Archive date/time separator":"Datum/Uhrzeit Trenner f\xFCr das Archiv","This will be used to separate the archived date/time from the title":"Dies wird verwendet, um das Datum und die Uhrzeit archivierter Karten vom Titel zu trennen","Archive date/time format":"Format des Datums und der Uhrzeit f\xFCr das Archiv","Kanban Plugin":"Kanban Erweiterung","New line trigger":"Taste f\xFCr neue Zeile","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"W\xE4hle aus ob Enter oder Umschalttaste+Enter eine neue Zeile erstellen soll. Das Gegenteil kannst du verwenden um die Karte zu erstellen oder das bearbeiten der Karte oder Schiene zu beenden.","Shift + Enter":"Umschalttaste + Enter",Enter:"Enter","Prepend / append new cards":"Neue Karten voranf\xFCgen / anh\xE4ngen","This setting controls whether new cards are added to the beginning or end of the list.":"Diese Einstellung gibt an ob neue Karten am Anfang oder am Ende einer Liste hinzugef\xFCgt werden.",Prepend:"Voranf\xFCgen",Append:"Anh\xE4ngen","Hide tags in card titles":"Ausblenden von Tags in Kartentiteln","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Ist diese Einstellung an, so werden Tags im Kartentitel nicht angezeigt. Dadurch wird verhindert, dass Tags beim Erstellen neuer Notizen in den Titel aufgenommen werden.","Hide card display tags":"Ausblenden von Kartenanzeige-Tags","When toggled, tags will not be displayed below the card title.":"Ist diese Einstellung an, werden Tags nicht unter dem Kartentitel angezeigt.","Linked Page Metadata":"Metadaten f\xFCr verkn\xFCpfte (verlinkte) Notizen","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Zeigen Sie Metadaten f\xFCr die erste Notiz an, die innerhalb einer Karte verkn\xFCpft ist. Geben Sie an, welche Metadatenschl\xFCssel unten angezeigt werden sollen. Ein optionales Label kann hinzugef\xFCgt werden, es kann aber auch vollst\xE4ndig ausgeblendet werden.","Metadata key":"Metadatenschl\xFCssel","Display label":"Anzeigelabel","Hide label":"Label ausblenden","Drag to rearrange":"Zum Neuanordnen ziehen",Delete:"L\xF6schen","Add key":"Schl\xFCssel hinzuf\xFCgen","Field contains markdown":"Feld beinhaltet Markdown","More options":"Mehr optionen",Cancel:"Abbrechen",today:"heute",yesterday:"gestern",tomorrow:"morgen","Change date":"Ver\xE4ndere Datum","Change time":"Ver\xE4ndere Uhrzeit","Card title...":"Karten Titel...","Add card":"Karte hinzuf\xFCgen","Add a card":"F\xFCge eine Karte hinzu","Edit card":"Karte editieren","New note from card":"Neue Notiz aus Karte erstellen","Archive card":"Karte archivieren","Delete card":"Karte l\xF6schen","Edit date":"Datum editieren","Add date":"Datum hinzuf\xFCgen","Remove date":"Datum entfernen","Edit time":"Karte editieren","Add time":"Uhrzeit hinzuf\xFCgen","Remove time":"Uhrzeit entfernen","Duplicate card":"Karte duplizieren","Enter list title...":"Listen Titel eingeben..","Mark cards in this list as complete":"Markiere Karten in dieser Liste als fertiggestellt","Add list":"Liste hinzuf\xFCgen","Add a list":"F\xFCge eine Liste hinzu","Move list":"Liste verschieben",Close:"Schlie\xDFen","Are you sure you want to delete this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten l\xF6schen m\xF6chtest?","Yes, delete list":"Ja, l\xF6sche diese Liste","Are you sure you want to archive this list and all its cards?":"Bist du dir sicher, dass du diese Liste und alle ihre Karten archivieren m\xF6chtest?","Yes, archive list":"Ja, archiviere diese Liste","Are you sure you want to archive all cards in this list?":"Bist du dir sicher, dass du alle Karten in dieser Liste archivieren m\xF6chtest?","Yes, archive cards":"Ja, archiviere Karten","Edit list":"Editiere Liste","Archive cards":"Archiviere Karten","Archive list":"Archiviere List","Delete list":"L\xF6sche Liste"};m();var Ru={"Open as kanban board":"Open as kanban board","Create new board":"Create new board","Archive completed cards in active board":"Archive completed cards in active board","Error: current file is not a Kanban board":"Error: current file is not a Kanban board","Convert empty note to Kanban":"Convert empty note to Kanban","Error: cannot create Kanban, the current note is not empty":"Error: cannot create Kanban, the current note is not empty","New kanban board":"New kanban board","Untitled Kanban":"Untitled Kanban","Toggle between Kanban and markdown mode":"Toggle between Kanban and markdown mode","Open as markdown":"Open as markdown","Open board settings":"Open board settings","Archive completed cards":"Archive completed cards","Something went wrong":"Something went wrong","You may wish to open as markdown and inspect or edit the file.":"You may wish to open as markdown and inspect or edit the file.","Are you sure you want to archive all completed cards on this board?":"Are you sure you want to archive all completed cards on this board?",Complete:"Complete",Archive:"Archive","Invalid Kanban file: problems parsing frontmatter":"Invalid Kanban file: problems parsing frontmatter","I don't know how to interpret this line:":"I don't know how to interpret this line:",Untitled:"Untitled","Note: No template plugins are currently enabled.":"Note: No template plugins are currently enabled.",default:"default","Search...":"Search...","New line trigger":"New line trigger","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"Prepend / append new cards","This setting controls whether new cards are added to the beginning or end of the list.":"This setting controls whether new cards are added to the beginning or end of the list.",Prepend:"Prepend","Prepend (compact)":"Prepend (compact)",Append:"Append","These settings will take precedence over the default Kanban board settings.":"These settings will take precedence over the default Kanban board settings.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.","Note template":"Note template","This template will be used when creating new notes from Kanban cards.":"This template will be used when creating new notes from Kanban cards.","No template":"No template","Note folder":"Note folder","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.","Default folder":"Default folder","List width":"List width","Enter a number to set the list width in pixels.":"Enter a number to set the list width in pixels.","Maximum number of archived cards":"Maximum number of archived cards","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.","Display card checkbox":"Display card checkbox","When toggled, a checkbox will be displayed with each card":"When toggled, a checkbox will be displayed with each card","Reset to default":"Reset to default","Date & Time":"Date & Time","Date trigger":"Date trigger","When this is typed, it will trigger the date selector":"When this is typed, it will trigger the date selector","Time trigger":"Time trigger","When this is typed, it will trigger the time selector":"When this is typed, it will trigger the time selector","Date format":"Date format","This format will be used when saving dates in markdown.":"This format will be used when saving dates in markdown.","For more syntax, refer to":"For more syntax, refer to","format reference":"format reference","Your current syntax looks like this":"Your current syntax looks like this","Time format":"Time format","Date display format":"Date display format","This format will be used when displaying dates in Kanban cards.":"This format will be used when displaying dates in Kanban cards.","Show relative date":"Show relative date","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'","Hide card display dates":"Hide card display dates","Hide card counts in list titles":"Hide card counts in list titles","When toggled, card counts are hidden from the list title":"When toggled, card counts are hidden from the list title","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.","Hide dates in card titles":"Hide dates in card titles","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.","Link dates to daily notes":"Link dates to daily notes","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"When toggled, dates will link to daily notes. Eg. [[2021-04-26]]","Add date and time to archived cards":"Add date and time to archived cards","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title","Add archive date/time after card title":"Add archive date/time after card title","When toggled, the archived date/time will be added after the card title, e.g.- [ ] My card title 2021-05-14 10:00am. By default, it is inserted before the title.":"When toggled, the archived date/time will be added after the card title, e.g.- [ ] My card title 2021-05-14 10:00am. By default, it is inserted before the title.","Archive date/time separator":"Archive date/time separator","This will be used to separate the archived date/time from the title":"This will be used to separate the archived date/time from the title","Archive date/time format":"Archive date/time format","Kanban Plugin":"Kanban Plugin","Hide tags in card titles":"Hide tags in card titles","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.","Hide card display tags":"Hide card display tags","When toggled, tags will not be displayed below the card title.":"When toggled, tags will not be displayed below the card title.","Display tag colors":"Display tag colors","Set colors for the tags displayed below the card title.":"Set colors for the tags displayed below the card title.","Linked Page Metadata":"Linked Page Metadata","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.","Board Header Buttons":"Board Header Buttons","Calendar: first day of week":"Calendar: first day of week","Override which day is used as the start of the week":"Override which day is used as the start of the week",Sunday:"Sunday",Monday:"Monday",Tuesday:"Tuesday",Wednesday:"Wednesday",Thursday:"Thursday",Friday:"Friday",Saturday:"Saturday","Background color":"Background color",Tag:"Tag","Text color":"Text color","Date is":"Date is",Today:"Today","After now":"After now","Before now":"Before now","Between now and":"Between now and","Display date colors":"Display date colors","Set colors for the date displayed below the card based on the rules below":"Set colors for the date displayed below the card based on the rules below","Add date color":"Add date color","Metadata key":"Metadata key","Display label":"Display label","Hide label":"Hide label","Drag to rearrange":"Drag to rearrange",Delete:"Delete","Add key":"Add key","Field contains markdown":"Field contains markdown","Add tag color":"Add tag color","More options":"More options",Cancel:"Cancel",today:"today",yesterday:"yesterday",tomorrow:"tomorrow","Change date":"Change date","Change time":"Change time","Card title...":"Card title...","Add card":"Add card","Add a card":"Add a card","Edit card":"Edit card","New note from card":"New note from card","Archive card":"Archive card","Delete card":"Delete card","Edit date":"Edit date","Add date":"Add date","Remove date":"Remove date","Edit time":"Edit time","Add time":"Add time","Remove time":"Remove time","Duplicate card":"Duplicate card","Split card":"Split card","Copy link to card":"Copy link to card","Insert card before":"Insert card before","Insert card after":"Insert card after","Add label":"Add label","Move to top":"Move to top","Move to bottom":"Move to bottom","Enter list title...":"Enter list title...","Mark cards in this list as complete":"Mark cards in this list as complete","Add list":"Add list","Add a list":"Add a list","Move list":"Move list",Close:"Close","Are you sure you want to delete this list and all its cards?":"Are you sure you want to delete this list and all its cards?","Yes, delete list":"Yes, delete list","Are you sure you want to archive this list and all its cards?":"Are you sure you want to archive this list and all its cards?","Yes, archive list":"Yes, archive list","Are you sure you want to archive all cards in this list?":"Are you sure you want to archive all cards in this list?","Yes, archive cards":"Yes, archive cards","Edit list":"Edit list","Archive cards":"Archive cards","Archive list":"Archive list","Delete list":"Delete list","Insert list before":"Insert list before","Insert list after":"Insert list after","Sort by card text":"Sort by card text","Sort by date":"Sort by date","Unable to find":"Unable to find","Open in default app":"Open in default app",Submit:"Submit"};m();var wv={};m();var Ev={};m();var kv={};m();var xv={};m();var Sv={"Open as kanban board":"Apri come bacheca Kanban","Create new board":"Crea nuova bacheca","Archive completed cards in active board":"Archivia schede completate nella bacheca attiva","Error: current file is not a Kanban board":"Errore: il file corrente non \xE8 una bacheca Kanban","Convert empty note to Kanban":"Converti nota vuota in Kanban","Error: cannot create Kanban, the current note is not empty":"Errore: Impossibile creare Kanban, la nota corrente non \xE8 vuota","New kanban board":"Nuova bacheca Kanban","Untitled Kanban":"Kanban senza titolo","Open as markdown":"Apri come markdown","Open board settings":"Apri impostazioni bacheca","Archive completed cards":"Archivia schede completate",Complete:"Completato",Archive:"Archivio","Note: No template plugins are currently enabled.":"Nota: Nessun plugin dei modelli attualmente abilitato.",default:"predefinito","Search...":"Ricerca...","These settings will take precedence over the default Kanban board settings.":"Queste impostazioni avranno la precedenza sulle impostazioni predefinite della bacheca Kanban.","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Impostazioni predefinite della bacheca Kanban. Le impostazioni possono essere sovrascritte per ogni bacheca.","Note template":"Nota modello","This template will be used when creating new notes from Kanban cards.":"Questo modello verr\xE0 utilizzato durante la creazione di nuove note dalle schede Kanban.","No template":"Nessun modello","Note folder":"Cartella delle note","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"Le note create dalle schede Kanban verranno inserite in questa cartella. Se vuota, verranno inserite nella posizione predefinita del vault.","Default folder":"Cartella predefinita","Lane width":"Larghezza colonna","Enter a number to set the lane width in pixels.":"Inserire un numero per impostare la larghezza della colonna in pixel.","Maximum number of archived cards":"Numero massimo di schede archiviate","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Le schede archiviate possono essere visualizzate in modalit\xE0 Markdown. Le vecchie schede verranno rimosse una volta raggiunto il limite. Impostando il valore -1 il numero di schede archiviate sar\xE0 illimitato.","Display card checkbox":"Mostra casella di controllo","When toggled, a checkbox will be displayed with each card":"Se attiva, verr\xE0 visualizzata una casella di controllo per ogni scheda","Reset to default":"Ripristina predefiniti","Date & Time":"Data e ora","Date trigger":"Selettore data","When this is typed, it will trigger the date selector":"Digitando questo, verr\xE0 attivato il selettore della data","Time trigger":"Selettore ora","When this is typed, it will trigger the time selector":"Digitando questo, verr\xE0 attivato il selettore dell'ora","Date format":"Formato data","This format will be used when saving dates in markdown.":"Formato utilizzato per il salvataggio delle date in Markdown.","For more syntax, refer to":"Per maggiori informazioni, vedere","format reference":"formato di riferimento","Your current syntax looks like this":"Formato corrente","Time format":"Formato ora","Date display format":"Formato visualizzazione data","This format will be used when displaying dates in Kanban cards.":"Formato utilizzato per visualizzare le date nelle schede Kanban.","Show relative date":"Mostra data relativa","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Se attiva, le schede indicheranno la distanza tra la data odierna e la data della scheda. eg. 'Tra 3 giorni', 'Un mese fa'","Hide card display dates":"Hide card display dates","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Se attiva, la data non verr\xE0 mostrata sulla scheda. Le date relative verranno comunque mostrate se sono state abilitate.","Hide dates in card titles":"Nascondi date nei titoli delle schede","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Se attiva, la data non verr\xE0 mostrata nei titoli delle schede. Questo impedisce alle date di essere incluse quando vengono create nuove note.","Link dates to daily notes":"Collega date alle Note del giorno","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Se attiva, le date verranno collegate alle Note del giorno. Eg. [[2021-04-26]]","Add date and time to archived cards":"Aggiungi data e ora alle schede archiviate","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Se attiva, la data e l'ora corrente verranno aggiunte all'inizio della scheda quando viene archiviata. Eg. - [ ] 2021-05-14 10:00am Mia scheda","Archive date/time separator":"Separatore data/ora dell'archivio","This will be used to separate the archived date/time from the title":"Verr\xE0 usato per separare data e ora dell'archiviazione dal titolo","Archive date/time format":"Formato data/ora dell'archivio","Kanban Plugin":"Plugin Kanban","More options":"Altre opzioni",Cancel:"Annulla",today:"oggi",yesterday:"ieri",tomorrow:"domani","Change date":"Modifica data","Change time":"Modifica ora","Card title...":"Titolo elemento...","Add card":"Aggiungi elemento","Add a card":"Aggiungi un'altra scheda","Edit card":"Modifica scheda","New note from card":"Nuova nota da scheda","Archive card":"Archivia scheda","Delete card":"Elimina scheda","Edit date":"Modifica data","Add date":"Aggiungi data","Remove date":"Rimuovi data","Edit time":"Modifica ora","Add time":"Aggiungi ora","Remove time":"Rimuovi ora","Enter list title...":"Inserisci titolo lista...","Mark cards in this list as complete":"Segna elementi della lista come completati","Add list":"Aggiungi lista","Add a list":"Aggiungi un'altra lista","Move list":"Sposta lista",Close:"Chiudi","Are you sure you want to delete this list and all its cards?":"Cancellare questa lista e tutte le sue schede?","Yes, delete list":"Cancella lista","Are you sure you want to archive this list and all its cards?":"Archiviare questa lista e tutte le sue schede?","Yes, archive list":"Archivia lista","Are you sure you want to archive all cards in this list?":"Archiviare tutte le schede in questa lista?","Yes, archive cards":"Archivia schede","Edit list":"Modifica lista","Archive cards":"Archivia schede","Archive list":"Archivia lista","Delete list":"Cancella lista"};m();var _v={"Open as kanban board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3068\u3057\u3066\u958B\u304F","Create new board":"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3092\u65B0\u898F\u4F5C\u6210","Archive completed cards in active board":"\u30A2\u30AF\u30C6\u30A3\u30D6\u30DC\u30FC\u30C9\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Error: current file is not a Kanban board":"\u30A8\u30E9\u30FC: \u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3067\u306F\u3042\u308A\u307E\u305B\u3093","Convert empty note to Kanban":"\u7A7A\u306E\u30CE\u30FC\u30C8\u3092\u30AB\u30F3\u30D0\u30F3\u306B\u5909\u63DB","Error: cannot create Kanban, the current note is not empty":"\u30A8\u30E9\u30FC: \u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u30CE\u30FC\u30C8\u306F\u7A7A\u3067\u3042\u308A\u3001\u30AB\u30F3\u30D0\u30F3\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093","New kanban board":"\u65B0\u898F\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9","Untitled Kanban":"\u7121\u984C\u306E\u30AB\u30F3\u30D0\u30F3","Toggle between Kanban and markdown mode":"\u30AB\u30F3\u30D0\u30F3\u3068\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u306E\u30E2\u30FC\u30C9\u3092\u5207\u308A\u66FF\u3048\u308B","Open as markdown":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u958B\u304F","Open board settings":"\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u958B\u304F","Archive completed cards":"\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Something went wrong":"\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F","You may wish to open as markdown and inspect or edit the file.":"\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3044\u3066\u8ABF\u67FB\u3059\u308B\u304B\u7DE8\u96C6\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002","Are you sure you want to archive all completed cards on this board?":"\u3053\u306E\u30DC\u30FC\u30C9\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u5B8C\u4E86\u3057\u305F\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F",Complete:"\u5B8C\u4E86",Archive:"\u30A2\u30FC\u30AB\u30A4\u30D6","Invalid Kanban file: problems parsing frontmatter":"\u7121\u52B9\u306A\u30AB\u30F3\u30D0\u30F3\u30D5\u30A1\u30A4\u30EB: \u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D1\u30FC\u30B9\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059","I don't know how to interpret this line:":"\u3053\u306E\u884C\u3092\u3069\u3046\u89E3\u91C8\u3059\u308C\u3070\u3088\u3044\u304B\u5206\u304B\u308A\u307E\u305B\u3093",Untitled:"\u7121\u984C","Note: No template plugins are currently enabled.":"\u30CE\u30FC\u30C8: \u73FE\u5728\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059",default:"\u30C7\u30D5\u30A9\u30EB\u30C8","Search...":"\u691C\u7D22\u2026","New line trigger":"\u6539\u884C\u30C8\u30EA\u30AC\u30FC","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lanes.":"\u6539\u884C\u306B\u4F7F\u3046\u30AD\u30FC\u3068\u3057\u3066Enter\u304BShift+Enter\u306E\u3069\u3061\u3089\u3092\u4F7F\u3046\u304B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u9078\u629E\u3057\u306A\u304B\u3063\u305F\u65B9\u306E\u30AD\u30FC\u306F\u30AB\u30FC\u30C9\u3068\u30EC\u30FC\u30F3\u306E\u4F5C\u6210\u3068\u7DE8\u96C6\u5B8C\u4E86\u306E\u30C8\u30EA\u30AC\u30FC\u3068\u306A\u308A\u307E\u3059\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0\u3059\u308B","This setting controls whether new cards are added to the beginning or end of the list.":"\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u3063\u3066\u65B0\u898F\u30AB\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u306E\u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306B\u8FFD\u52A0\u3059\u308B\u304B\u3092\u6C7A\u3081\u307E\u3059\u3002",Prepend:"\u5148\u982D\u306B\u8FFD\u52A0","Prepend (compact)":"\u5148\u982D\u306B\u8FFD\u52A0(\u30B3\u30F3\u30D1\u30AF\u30C8)",Append:"\u672B\u5C3E\u306B\u8FFD\u52A0","These settings will take precedence over the default Kanban board settings.":"\u3053\u308C\u3089\u306E\u8A2D\u5B9A\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u8A2D\u5B9A\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u8A2D\u5B9A\u3092\u30BB\u30C3\u30C8\u3057\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u30DC\u30FC\u30C9\u6BCE\u306B\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002","Note template":"\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8","This template will be used when creating new notes from Kanban cards.":"\u3053\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210\u3057\u305F\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","No template":"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u3042\u308A\u307E\u305B\u3093","Note folder":"\u30CE\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30CE\u30FC\u30C8\u306F\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u5185\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002\u30D6\u30E9\u30F3\u30AF\u306E\u5834\u5408\u306B\u306F\u3001\u3053\u306E\u4FDD\u7BA1\u5EAB\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u7F6E\u304B\u308C\u307E\u3059\u3002","Default folder":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30EB\u30C0","Lane width":"\u30EC\u30FC\u30F3\u306E\u5E45","Enter a number to set the lane width in pixels.":"\u30EC\u30FC\u30F3\u306E\u5E45\u3092\u30D4\u30AF\u30BB\u30EB\u5358\u4F4D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002","Maximum number of archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306E\u6700\u5927\u6570","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u30E2\u30FC\u30C9\u3067\u95B2\u89A7\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A2D\u5B9A\u306B\u3088\u308A\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u9650\u754C\u6570\u307E\u3067\u9054\u3057\u305F\u969B\u306B\u306F\u53E4\u3044\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u5024\u3092-1\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u30DC\u30FC\u30C9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u9650\u754C\u3092\u7121\u9650\u306B\u3057\u307E\u3059\u3002","Display card checkbox":"\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A","When toggled, a checkbox will be displayed with each card":"\u6709\u52B9\u5316\u3059\u308B\u3068\u5404\u30AB\u30FC\u30C9\u306E\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002","Reset to default":"\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8","Date & Time":"\u65E5\u4ED8\u3068\u6642\u9593","Date trigger":"\u65E5\u4ED8\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the date selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u65E5\u4ED8\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Time trigger":"\u6642\u9593\u30C8\u30EA\u30AC\u30FC","When this is typed, it will trigger the time selector":"\u3053\u306E\u8A2D\u5B9A\u306B\u5165\u529B\u3055\u308C\u305F\u6587\u5B57\u5217\u3067\u6642\u9593\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u30C8\u30EA\u30AC\u30FC\u3057\u307E\u3059\u3002","Date format":"\u65E5\u4ED8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when saving dates in markdown.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3067\u65E5\u4ED8\u304C\u4FDD\u5B58\u3055\u308C\u308B\u969B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","For more syntax, refer to":"\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306B\u3064\u3044\u3066\u306F\u3053\u3061\u3089\u3092\u53C2\u7167:","format reference":"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9","Your current syntax looks like this":"\u73FE\u5728\u306E\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u306F\u6B21\u306E\u3088\u3046\u306B\u898B\u3048\u307E\u3059","Time format":"\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","Date display format":"\u65E5\u4ED8\u8868\u793A\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8","This format will be used when displaying dates in Kanban cards.":"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30AB\u30F3\u30D0\u30F3\u30AB\u30FC\u30C9\u5185\u306B\u3066\u65E5\u4ED8\u306E\u8868\u793A\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Show relative date":"\u76F8\u5BFE\u65E5\u4ED8\u3092\u8868\u793A","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u306E\u65E5\u4ED8\u3068\u4ECA\u65E5\u306E\u9593\u306E\u65E5\u6570\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B: '3\u65E5\u5F8C', '1\u30F6\u6708\u524D'","Hide card display dates":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u4E0A\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3055\u308C\u305F\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u6709\u52B9\u5316\u3055\u308C\u305F\u5834\u5408\u306B\u306F\u76F8\u5BFE\u65E5\u4ED8\u306F\u8868\u793A\u3055\u308C\u307E\u307E\u3068\u306A\u308A\u307E\u3059\u3002","Hide dates in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u3092\u96A0\u3059","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u65E5\u4ED8\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u65E5\u4ED8\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Link dates to daily notes":"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u65E5\u4ED8\u3092\u30EA\u30F3\u30AF","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6709\u52B9\u5316\u3059\u308B\u3068\u65E5\u4ED8\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u30EA\u30F3\u30AF\u3055\u308C\u307E\u3059\u3002 \u4F8B: [[2021-04-26]]","Add date and time to archived cards":"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30AB\u30FC\u30C9\u306B\u65E5\u4ED8\u3068\u6642\u9593\u3092\u8FFD\u52A0","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u304C\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u969B\u306B\u73FE\u5728\u306E\u65E5\u4ED8\u3068\u6642\u9593\u304C\u30AB\u30FC\u30C9\u306E\u6700\u521D\u306B\u8FFD\u8A18\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u4F8B: - [ ] 2021-05-14 10:00am \u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB","Archive date/time separator":"\u65E5\u4ED8\u30FB\u6642\u9593\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","This will be used to separate the archived date/time from the title":"\u3053\u308C\u306F\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u65E5\u4ED8\u30FB\u6642\u9593\u3092\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u5206\u96E2\u3059\u308B\u306E\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002","Archive date/time format":"\u65E5\u4ED8\u30FB\u6642\u9593\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Kanban Plugin":"\u30AB\u30F3\u30D0\u30F3\u30D7\u30E9\u30B0\u30A4\u30F3","Hide tags in card titles":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u5185\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u65B0\u898F\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u969B\u306B\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306B\u30BF\u30B0\u304C\u542B\u307E\u308C\u308B\u306E\u3092\u9632\u304E\u307E\u3059\u3002","Hide card display tags":"\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u30BF\u30B0\u3092\u96A0\u3059","When toggled, tags will not be displayed below the card title.":"\u6709\u52B9\u5316\u3059\u308B\u3068\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u306E\u4E0B\u306E\u30BF\u30B0\u304C\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059\u3002","Linked Page Metadata":"\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30DA\u30FC\u30B8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u30AB\u30FC\u30C9\u5185\u3067\u30EA\u30F3\u30AF\u3055\u308C\u3066\u3044\u308B\u6700\u521D\u306E\u30CE\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4E0B\u306B\u8868\u793A\u3059\u308B\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u30E9\u30D9\u30EB\u306E\u4ED8\u4E0E\u304C\u53EF\u80FD\u3067\u3042\u308A\u3001\u30E9\u30D9\u30EB\u306F\u5B8C\u5168\u306B\u975E\u8868\u793A\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002","Board Header Buttons":"\u30DC\u30FC\u30C9\u306E\u30D8\u30C3\u30C0\u30FC\u30DC\u30BF\u30F3","Calendar: first day of week":"\u30AB\u30EC\u30F3\u30C0\u30FC: \u9031\u306E\u59CB\u307E\u308A","Override which day is used as the start of the week":"\u9031\u306E\u59CB\u307E\u308A\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u66DC\u65E5\u3092\u5909\u66F4\u3057\u307E\u3059\u3002",Sunday:"\u65E5\u66DC\u65E5",Monday:"\u6708\u66DC\u65E5",Tuesday:"\u706B\u66DC\u65E5",Wednesday:"\u6C34\u66DC\u65E5",Thursday:"\u6728\u66DC\u65E5",Friday:"\u91D1\u66DC\u65E5",Saturday:"\u571F\u66DC\u65E5","Metadata key":"\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u30AD\u30FC","Display label":"\u30E9\u30D9\u30EB\u3092\u8868\u793A","Hide label":"\u30E9\u30D9\u30EB\u3092\u96A0\u3059","Drag to rearrange":"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048\u308B",Delete:"\u524A\u9664","Add key":"\u30AD\u30FC\u3092\u8FFD\u52A0","Field contains markdown":"\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u3092\u542B\u307F\u307E\u3059","More options":"\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3",Cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",today:"\u4ECA\u65E5",yesterday:"\u6628\u65E5",tomorrow:"\u660E\u65E5","Change date":"\u65E5\u4ED8\u3092\u5909\u66F4","Change time":"\u6642\u9593\u3092\u5909\u66F4","Card title...":"\u30AB\u30FC\u30C9\u30BF\u30A4\u30C8\u30EB\u2026","Add card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Add a card":"\u30AB\u30FC\u30C9\u3092\u8FFD\u52A0","Edit card":"\u30AB\u30FC\u30C9\u3092\u7DE8\u96C6","New note from card":"\u30AB\u30FC\u30C9\u304B\u3089\u30CE\u30FC\u30C8\u3092\u65B0\u898F\u4F5C\u6210","Archive card":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete card":"\u30AB\u30FC\u30C9\u3092\u524A\u9664","Edit date":"\u65E5\u4ED8\u3092\u7DE8\u96C6","Add date":"\u65E5\u4ED8\u3092\u8FFD\u52A0","Remove date":"\u65E5\u4ED8\u3092\u524A\u9664","Edit time":"\u6642\u9593\u3092\u7DE8\u96C6","Add time":"\u6642\u9593\u3092\u8FFD\u52A0","Remove time":"\u6642\u9593\u3092\u524A\u9664","Duplicate card":"\u30AB\u30FC\u30C9\u3092\u8907\u88FD","Split card":"\u30AB\u30FC\u30C9\u3092\u5206\u5272","Copy link to card":"\u30AB\u30FC\u30C9\u3078\u306E\u30EA\u30F3\u30AF\u3092\u30B3\u30D4\u30FC","Enter list title...":"\u30EA\u30B9\u30C8\u30BF\u30A4\u30C8\u30EB\u3092\u7DE8\u96C6\u2026","Mark cards in this list as complete":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u30AB\u30FC\u30C9\u3092\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3059\u308B","Add list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Add a list":"\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0","Move list":"\u30EA\u30B9\u30C8\u3092\u79FB\u52D5",Close:"\u9589\u3058\u308B","Are you sure you want to delete this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059\u304B\b\uFF1F","Yes, delete list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059","Are you sure you want to archive this list and all its cards?":"\u3053\u306E\u30EA\u30B9\u30C8\u3068\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive list":"\u306F\u3044\u3001\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Are you sure you want to archive all cards in this list?":"\u3053\u306E\u30EA\u30B9\u30C8\u306B\u542B\u307E\u308C\u308B\u3059\u3079\u3066\u306E\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059\u304B\uFF1F","Yes, archive cards":"\u306F\u3044\u3001\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u307E\u3059","Edit list":"\u30EA\u30B9\u30C8\u3092\u7DE8\u96C6","Archive cards":"\u30AB\u30FC\u30C9\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Archive list":"\u30EA\u30B9\u30C8\u3092\u30A2\u30FC\u30AB\u30A4\u30D6","Delete list":"\u30EA\u30B9\u30C8\u3092\u524A\u9664","Unable to find":"\u898B\u3064\u304B\u308A\u307E\u305B\u3093","Open in default app":"\u30C7\u30D5\u30A9\u30EB\u30C8\u30A2\u30D7\u30EA\u3067\u958B\u304F"};m();var Cv={};m();var Tv={};m();var Dv={};m();var Mv={};m();var Iv={};m();var Av={"Open as Kanban board":"Abrir como quadro Kanban","Create new board":"Criar um novo quadro","Archive completed cards in active board":"Arquivar cart\xF5es conclu\xEDdos no quadro ativo","Error: current file is not a Kanban board":"Erro: o arquivo atual n\xE3o \xE9 um quadro Kanban","Convert empty note to Kanban":"Converter nota vazia em Kanban","Error: cannot create Kanban, the current note is not empty":"Erro: n\xE3o \xE9 poss\xEDvel criar o quadro Kanban, a nota atual n\xE3o est\xE1 vazia","New Kanban board":"Novo quadro Kanban","Untitled Kanban":"Kanban sem t\xEDtulo","Toggle between Kanban and markdown mode":"Alternar entre os modos Kanban e Markdown","Open as markdown":"Abrir como markdown","Open board settings":"Abrir configura\xE7\xF5es do quadro Kanban","Archive completed cards":"Arquivar cart\xF5es conclu\xEDdos",Complete:"Conclu\xEDdo",Archive:"Arquivado","Note: No template plugins are currently enabled.":"Nota: N\xE3o h\xE1 plug-ins de modelo habilitados no momento.",default:"padr\xE3o","Search...":"Pesquisar...","These settings will take precedence over the default Kanban board settings.":"Essas configura\xE7\xF5es sobrescrever\xE3o as configura\xE7\xF5es padr\xE3o do quadro Kanban","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"Defina as configura\xE7\xF5es padr\xE3o do quadro Kanban. Cada quadro Kanban pode ter sua pr\xF3pria configura\xE7\xE3o.","Note template":"Modelo de nota","This template will be used when creating new notes from Kanban cards.":"Este modelo ser\xE1 usado quando uma nova nota Kanban for criada.","No template":"Sem modelo","Note folder":"Pasta de notas","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"As notas criadas pelos links dos cart\xF5es Kanban ser\xE3o colocadas nesta pasta. Se estiver em branco, ser\xE3o colocadas no local configurado como padr\xE3o deste cofre.","Default folder":"Pasta padr\xE3o","Lane width":"Largura das listas","Enter a number to set the lane width in pixels.":"Insira um n\xFAmero para definir a largura das listas em pixels.","Maximum number of archived cards":"Quantidade m\xE1xima de cart\xF5es arquivados","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"Os cart\xF5es arquivados podem ser vistos no modo Markdown. Esta configura\xE7\xE3o excluir\xE1 os cart\xF5es antigos assim que o limite for atingido. Inserir o valor -1 retira o limite para cart\xF5es arquivados.","Display card checkbox":"Exibe uma caixa de sele\xE7\xE3o do cart\xE3o","When toggled, a checkbox will be displayed with each card":"Quando ativada, uma caixa de sele\xE7\xE3o ser\xE1 exibida em cada cart\xE3o.","Reset to default":"Redefinir configura\xE7\xF5es padr\xE3o","Date & Time":"Data e Hora","Date trigger":"Gatilho de data","When this is typed, it will trigger the date selector":"Quando este caractere \xE9 digitado, o seletor de data \xE9 exibido.","Time trigger":"Gatilho de hora","When this is typed, it will trigger the time selector":"Quando este caractere \xE9 digitado, o seletor de hora \xE9 exibido.","Date format":"Formado da data","This format will be used when saving dates in markdown.":"Este formato ser\xE1 usado quando datas forem armazenadas no Markdown.","For more syntax, refer to":"Para mais informa\xE7\xF5es sobre esta sintaxe, consulte os","format reference":"modelos de formato.","Your current syntax looks like this":"Sua atual sintaxe est\xE1 assim","Time format":"Formato da hora","Date display format":"Formato de exibi\xE7\xE3o da data","This format will be used when displaying dates in Kanban cards.":"Este ser\xE1 o formato das datas exibido nos cart\xF5es do Kanban.","Show relative date":"Exibir datas relativas","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"Ao ativar, os cart\xF5es exibir\xE3o o intervalo de tempo entre hoje e a data do cart\xE3o: Ex.: 'Em 3 dias', 'Um m\xEAs atr\xE1s'","Hide card display dates":"Ocultar datas dos cart\xF5es","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"Ao ativar, as datas formatadas n\xE3o ser\xE3o exibidas no cart\xE3o. As datas relativas ainda ser\xE3o exibidas se estiverem ativadas.","Hide dates in card titles":"Ocultar datas dos t\xEDtulos dos cart\xF5es","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"Ao ativar, as datas ser\xE3o t\xEDtulos de cart\xF5es ocultos. Evita que datas sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Link dates to daily notes":"Vincular datas a notas di\xE1rias","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"Ao ativar, as datas ser\xE3o vinculadas \xE0s notas di\xE1rias. Ex.: [[2021-04-26]]","Add date and time to archived cards":"Adicionar data e hora aos cart\xF5es arquivados","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"Quando ativada, a data e a hora atuais ser\xE3o adicionadas ao in\xEDcio de um cart\xE3o quando ele for arquivado. Ex.: - [] 2021-05-14 10:00 T\xEDtulo do meu cart\xE3o","Archive date/time separator":"Separador de data/hora do arquivo","This will be used to separate the archived date/time from the title":"Isso ser\xE1 usado para separar a data/hora arquivada do t\xEDtulo.","Archive date/time format":"Formato de data/hora do arquivo","Kanban Plugin":"Plugin Kanban","Hide tags in card titles":"Ocultar \u2018tags\u2019 nos t\xEDtulos dos cart\xF5es","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas nos t\xEDtulos de cartas. Isso impedir\xE1 que as \u2018tags\u2019 sejam inclu\xEDdas no t\xEDtulo ao criar novas notas.","Hide card display tags":"Ocultar \u2018tags\u2019 de exibi\xE7\xE3o de cart\xE3o","When toggled, tags will not be displayed below the card title.":"Quando ativada, as \u2018tags\u2019 n\xE3o ser\xE3o exibidas abaixo do t\xEDtulo do cart\xE3o.","Linked Page Metadata":"Metadados de p\xE1ginas 'lincadas'","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"Exibe metadados para a primeira nota 'lincada' em um cart\xE3o. Especifique abaixo quais metadados ser\xE3o exibidos. Um r\xF3tulo opcional pode ser fornecido e os r\xF3tulos podem ser ocultados completamente.","Metadata key":"Metadado","Display label":"Descri\xE7\xE3o personalizada","Hide label":"Ocultar","Drag to rearrange":"Arraste para reorganizar",Delete:"Excluir","Add key":"Adicionar metadado","More options":"Mais op\xE7\xF5es",Cancel:"Cancelar",today:"hoje",yesterday:"ontem",tomorrow:"amanh\xE3","Change date":"Alterar data","Change time":"Mudar hora","Card title...":"T\xEDtulo do item...","Add card":"Adicionar Item","Add a card":"Adicione um cart\xE3o","Edit card":"Editar cart\xE3o","New note from card":"Nova nota do cart\xE3o","Archive card":"Arquivar cart\xE3o","Delete card":"Excluir cart\xE3o","Edit date":"Editar data","Add date":"Adicionar data","Remove date":"Remover data","Edit time":"Editar hora","Add time":"Adicionar hora","Remove time":"Remover hora","Duplicate card":"Duplicate card","Enter list title...":"Insira o t\xEDtulo da lista...","Mark cards in this list as complete":"Marcar os itens nesta lista como conclu\xEDdos","Add list":"Adicionar lista","Add a list":"Adicionar uma lista","Move list":"Mover lista",Close:"Fechar","Are you sure you want to delete this list and all its cards?":"Tem certeza de que deseja excluir esta lista e todos os seus cart\xF5es?","Yes, delete list":"Sim, excluir esta lista","Are you sure you want to archive this list and all its cards?":"Tem certeza de que deseja arquivar esta lista e todos os seus cart\xF5es?","Yes, archive list":"Sim, arquivar esta lista","Are you sure you want to archive all cards in this list?":"Tem certeza de que deseja arquivar todos os cart\xF5es desta lista?","Yes, archive cards":"Sim, arquivar cart\xF5es","Edit list":"Editar lista","Archive cards":"Arquivar cart\xF5es","Archive list":"Arquivar lista","Delete list":"Excluir lista"};m();var Lv={};m();var Pv={};m();var Fv={};m();var Es={};m();var Nv={"Open as kanban board":"\u6253\u5F00\u4E3A\u770B\u677F","Create new board":"\u521B\u5EFA\u65B0\u770B\u677F","Archive completed cards in active board":"\u5728\u5F53\u524D\u770B\u677F\u4E2D\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Error: current file is not a Kanban board":"\u9519\u8BEF\uFF1A\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u770B\u677F\u6587\u4EF6","Convert empty note to Kanban":"\u8F6C\u6362\u7A7A\u767D\u7B14\u8BB0\u4E3A\u770B\u677F","Error: cannot create Kanban, the current note is not empty":"\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8F6C\u6362\u5F53\u524D\u6587\u4EF6\uFF0C\u5F53\u524D\u7B14\u8BB0\u4E0D\u662F\u7A7A\u767D\u7B14\u8BB0","New kanban board":"\u65B0\u770B\u677F","Untitled Kanban":"\u672A\u547D\u540D\u770B\u677F","Toggle between Kanban and markdown mode":"\u5728\u770B\u677F\u548C Markdown \u6A21\u5F0F\u4E4B\u95F4\u8FDB\u884C\u5207\u6362","Open as markdown":"\u6253\u5F00\u4E3A Markdown \u6587\u4EF6","Open board settings":"\u6253\u5F00\u770B\u677F\u8BBE\u7F6E","Archive completed cards":"\u5F52\u6863\u5DF2\u5B8C\u6210\u5361\u7247","Something went wrong":"\u51FA\u4E86\u70B9\u95EE\u9898","You may wish to open as markdown and inspect or edit the file.":"\u4F60\u53EF\u80FD\u5E0C\u671B\u4EE5 Markdown \u65B9\u5F0F\u6253\u5F00\uFF0C\u5E76\u68C0\u67E5\u6216\u7F16\u8F91\u8BE5\u6587\u4EF6\u3002","Are you sure you want to archive all completed cards on this board?":"\u4F60\u786E\u5B9A\u8981\u5C06\u8FD9\u4E2A\u677F\u5757\u4E0A\u6240\u6709\u5DF2\u5B8C\u6210\u7684\u5361\u7247\u5F52\u6863\u5417\uFF1F",Complete:"\u5B8C\u6210",Archive:"\u5F52\u6863","Invalid Kanban file: problems parsing frontmatter":"\u65E0\u6548\u7684\u770B\u677F\u6587\u4EF6\uFF1A\u89E3\u6790 frontmatter \u65F6\u51FA\u73B0\u95EE\u9898","I don't know how to interpret this line:":"\u6211\u4E0D\u77E5\u9053\u5982\u4F55\u89E3\u8BFB\u8FD9\u53E5\u8BDD\uFF1A",Untitled:"\u672A\u547D\u540D","Note: No template plugins are currently enabled.":"\u6CE8\u610F\uFF1A\u5F53\u524D\u6CA1\u6709\u542F\u7528\u6A21\u677F\u63D2\u4EF6",default:"\u9ED8\u8BA4","Search...":"\u641C\u7D22\u2026\u2026","New line trigger":"\u6362\u884C\u89E6\u53D1\u5668","Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.":"\u9009\u62E9 Enter \u6216\u662F Shift+Enter \u6765\u521B\u5EFA\u65B0\u884C, \u672A\u9009\u7528\u7684\u5FEB\u6377\u952E\u5C06\u88AB\u7528\u4E8E\u521B\u5EFA\u5361\u7247\u548C\u5217\uFF0C\u4EE5\u53CA\u5B8C\u6210\u5361\u7247\u3001\u5217\u7684\u7F16\u8F91\u3002","Shift + Enter":"Shift + Enter",Enter:"Enter","Prepend / append new cards":"\u8FFD\u52A0\u65B0\u5361\u7247","This setting controls whether new cards are added to the beginning or end of the list.":"\u8BBE\u7F6E\u65B0\u5361\u7247\u8FFD\u52A0\u5230\u5217\u5934\u90E8\u6216\u5C3E\u90E8\u3002",Prepend:"\u5934\u90E8","Prepend (compact)":"\u5934\u90E8 (\u7D27\u51D1)",Append:"\u5C3E\u90E8","These settings will take precedence over the default Kanban board settings.":"\u5F53\u524D\u770B\u677F\u8BBE\u7F6E\u5C06\u4F1A\u8986\u76D6\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E\u3002","Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.":"\u66F4\u6539\u9ED8\u8BA4\u7684\u770B\u677F\u8BBE\u7F6E\u3002\u4E3A\u6BCF\u4E2A\u770B\u677F\u5355\u72EC\u8FDB\u884C\u8BBE\u7F6E\u5C06\u8986\u76D6\u9ED8\u8BA4\u8BBE\u7F6E\u3002","Note template":"\u7B14\u8BB0\u6A21\u677F","This template will be used when creating new notes from Kanban cards.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u4F1A\u4F7F\u7528\u8BE5\u6A21\u677F\u3002","No template":"\u6CA1\u6709\u6A21\u677F","Note folder":"\u7B14\u8BB0\u5B58\u653E\u4F4D\u7F6E","Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.":"\u4ECE\u770B\u677F\u5361\u7247\u521B\u5EFA\u7684\u7B14\u8BB0\u4F1A\u653E\u7F6E\u5230\u8BE5\u6587\u4EF6\u5939\u4E2D\u3002\u5982\u679C\u4E3A\u7A7A\uFF0C\u7B14\u8BB0\u5C06\u4F1A\u653E\u7F6E\u5230 Obsidian \u7684\u9ED8\u8BA4\u6587\u4EF6\u5B58\u653E\u4F4D\u7F6E\u3002","Default folder":"\u9ED8\u8BA4\u6587\u4EF6\u5939","List width":"\u5217\u5BBD","Enter a number to set the list width in pixels.":"\u8F93\u5165\u4E00\u4E2A\u50CF\u7D20\u503C\u6765\u8BBE\u7F6E\u5217\u7684\u5BBD\u5EA6","Maximum number of archived cards":"\u5355\u4E2A\u770B\u677F\u5185\u5DF2\u5F52\u6863\u5361\u7247\u7684\u6700\u5927\u6570\u91CF","Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.":"\u5DF2\u5F52\u6863\u5361\u7247\u53EF\u4EE5\u5728 Markdown \u6A21\u5F0F\u4E0B\u67E5\u770B\u3002\u8BE5\u8BBE\u7F6E\u5C06\u4F7F\u5DF2\u5F52\u6863\u5361\u7247\u5728\u8FBE\u5230\u6700\u5927\u6570\u91CF\u65F6\u5220\u9664\u65E7\u5361\u3002\u8BBE\u7F6E\u4E3A -1 \u53EF\u4EE5\u6C38\u4E45\u4FDD\u7559\u6240\u6709\u5F52\u6863\u5361\u7247\u3002","Display card checkbox":"\u5C55\u793A\u5361\u7247\u590D\u9009\u6846","When toggled, a checkbox will be displayed with each card":"\u6253\u5F00\u65F6\uFF0C\u590D\u9009\u6846\u4F1A\u51FA\u73B0\u5728\u6BCF\u5F20\u5361\u7247\u4E0A","Reset to default":"\u8FD8\u539F\u521D\u59CB\u8BBE\u7F6E","Date & Time":"\u65E5\u671F\u548C\u65F6\u95F4","Date trigger":"\u65E5\u671F\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the date selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65E5\u671F\u9009\u62E9\u5668","Time trigger":"\u65F6\u95F4\u89E6\u53D1\u6307\u4EE4","When this is typed, it will trigger the time selector":"\u5F53\u5728\u770B\u677F\u5361\u7247\u4E2D\u8F93\u5165\u8FD9\u4E2A\u65F6\uFF0C\u4F1A\u89E6\u53D1\u4E00\u4E2A\u65F6\u95F4\u9009\u62E9\u5668","Date format":"\u65E5\u671F\u683C\u5F0F","This format will be used when saving dates in markdown.":"\u8FD9\u4E2A\u683C\u5F0F\u4F1A\u5728\u65E5\u671F\u4FDD\u5B58\u5230 Markdown \u683C\u5F0F\u65F6\u4F7F\u7528\u3002","For more syntax, refer to":"\u66F4\u591A\u683C\u5F0F\uFF0C\u8BF7\u67E5\u770B","format reference":"\u683C\u5F0F\u53C2\u8003","Your current syntax looks like this":"\u4F60\u5F53\u524D\u8BBE\u7F6E\u7684\u683C\u5F0F\u4F1A\u662F","Time format":"\u65F6\u95F4\u683C\u5F0F","Date display format":"\u65E5\u671F\u5C55\u793A\u683C\u5F0F","This format will be used when displaying dates in Kanban cards.":"\u770B\u677F\u5361\u7247\u4F1A\u4EE5\u8BE5\u683C\u5F0F\u5C55\u793A\u65E5\u671F\u3002","Show relative date":"\u5C55\u793A\u76F8\u5BF9\u65E5\u671F","When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u4F1A\u5C55\u793A\u5176\u6240\u8BBE\u65E5\u671F\u4E0E\u5F53\u524D\u65E5\u671F\u7684\u5DEE\u503C\uFF0C\u4F8B\u5982\u201C3\u5929\u5185\u201D\u201C\u4E00\u4E2A\u6708\u524D\u201D\u7B49","Hide card display dates":"\u9690\u85CF\u5361\u7247\u65E5\u671F","Hide card counts in list titles":"\u5728\u5217\u6807\u9898\u4E0A\u9690\u85CF\u5361\u7247\u8BA1\u6570","When toggled, card counts are hidden from the list title":"\u6253\u5F00\u65F6\uFF0C\u5217\u6807\u9898\u4E0A\u7684\u5361\u7247\u8BA1\u6570\u5C06\u9690\u85CF","When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.":"\u6253\u5F00\u65F6\uFF0C\u683C\u5F0F\u5316\u65E5\u671F\u4E0D\u4F1A\u5728\u5361\u7247\u4E0A\u5C55\u793A\u3002\u5982\u679C\u5F00\u542F\u4E86\u76F8\u5BF9\u65E5\u671F\u529F\u80FD\uFF0C\u76F8\u5BF9\u65E5\u671F\u8FD8\u662F\u4F1A\u7EE7\u7EED\u5C55\u793A\u3002","Hide dates in card titles":"\u5728\u5361\u7247\u6807\u9898\u4E2D\u9690\u85CF\u65E5\u671F","When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u65E5\u671F\u5C06\u4F1A\u9690\u85CF\u3002\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u53EF\u4EE5\u907F\u514D\u65E5\u671F\u6DF7\u6742\u5176\u4E2D\u3002","Link dates to daily notes":"\u94FE\u63A5\u65E5\u671F\u5230\u65E5\u8BB0","When toggled, dates will link to daily notes. Eg. [[2021-04-26]]":"\u6253\u5F00\u65F6\uFF0C\u65E5\u671F\u4F1A\u81EA\u52A8\u94FE\u63A5\u5230\u65E5\u8BB0\u9875\u9762\uFF0C\u4F8B\u5982[[2021-04-26]]","Add date and time to archived cards":"\u6DFB\u52A0\u65E5\u671F\u548C\u65F6\u95F4\u5230\u5F52\u6863\u5361\u7247","When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title":"\u6253\u5F00\u65F6\uFF0C\u5F53\u524D\u65E5\u671F\u548C\u65F6\u95F4\u4F1A\u88AB\u6DFB\u52A0\u5230\u5F52\u6863\u5361\u7247\u7684 frontmatter \u4E0A\uFF0C\u4F8B\u5982\u201C- [ ] 2021-05-14 10:00am \u6211\u7684\u5361\u7247\u6807\u9898\u201D","Archive date/time separator":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u5206\u9694\u7B26Archive date/time separator","This will be used to separate the archived date/time from the title":"\u7528\u4E8E\u5206\u9694\u6807\u9898\u4E0E\u5F52\u6863\u5361\u7247\u7684\u65E5\u671F\u6216\u65F6\u95F4","Archive date/time format":"\u5F52\u6863\u65E5\u671F\u6216\u65F6\u95F4\u683C\u5F0F","Kanban Plugin":"\u770B\u677F\u63D2\u4EF6","Hide tags in card titles":"\u9690\u85CF\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E","When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E2D\u7684\u6807\u7B7E\u5C06\u4F1A\u88AB\u9690\u85CF\u3002\u5F53\u57FA\u4E8E\u5361\u7247\u521B\u5EFA\u65B0\u7B14\u8BB0\u65F6\u53EF\u4EE5\u907F\u514D\u6807\u7B7E\u6DF7\u6742\u5176\u4E2D\u3002","Hide card display tags":"\u9690\u85CF\u5361\u7247\u4E0A\u7684\u6807\u7B7E","When toggled, tags will not be displayed below the card title.":"\u6253\u5F00\u65F6\uFF0C\u5361\u7247\u6807\u9898\u4E0B\u65B9\u7684\u6807\u7B7E\u5C06\u4E0D\u4F1A\u5C55\u793A\u3002","Linked Page Metadata":"\u8FDE\u63A5\u7684\u9875\u9762\u5143\u6570\u636E","Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.":"\u5C55\u793A\u5361\u7247\u4E2D\u7B2C\u4E00\u4E2A\u8FDE\u63A5\u6240\u5BF9\u5E94\u7684\u7B14\u8BB0\u5143\u6570\u636E\u3002\u8BF7\u5728\u4E0B\u65B9\u6307\u5B9A\u54EA\u4E9B\u5143\u6570\u636E\u53EF\u4EE5\u5C55\u793A\u3002\u4F60\u53EF\u4EE5\u9009\u62E9\u5C55\u793A\u54EA\u4E9B\u6807\u5FD7\uFF0C\u6240\u6709\u6807\u5FD7\u90FD\u53EF\u4EE5\u88AB\u9690\u85CF\u3002","Board Header Buttons":"\u677F\u5934\u6309\u94AE","Calendar: first day of week":"\u65E5\u5386\uFF1A\u4E00\u5468\u7684\u7B2C\u4E00\u5929","Override which day is used as the start of the week":"\u8BBE\u7F6E\u54EA\u4E00\u5929\u4F5C\u4E3A\u4E00\u5468\u7684\u5F00\u59CB",Sunday:"\u5468\u65E5",Monday:"\u5468\u4E00",Tuesday:"\u5468\u4E8C",Wednesday:"\u5468\u4E09",Thursday:"\u5468\u56DB",Friday:"\u5468\u4E94",Saturday:"\u5468\u516D","Metadata key":"\u5143\u6570\u636E\u53C2\u6570\u540D","Display label":"\u5C55\u793A\u6807\u5FD7","Hide label":"\u9690\u85CF\u6807\u5FD7","Drag to rearrange":"\u62D6\u52A8\u4EE5\u91CD\u6392\u987A\u5E8F",Delete:"\u5220\u9664","Add key":"\u6DFB\u52A0\u53C2\u6570\u540D","Field contains markdown":"\u5B57\u6BB5\u5305\u542B Markdown","More options":"\u66F4\u591A\u9009\u9879",Cancel:"\u53D6\u6D88",today:"\u4ECA\u5929",yesterday:"\u6628\u5929",tomorrow:"\u660E\u5929","Change date":"\u66F4\u6539\u65E5\u671F","Change time":"\u66F4\u6539\u65F6\u95F4","Card title...":"\u5361\u7247\u6807\u9898\u2026\u2026","Add card":"\u6DFB\u52A0","Add a card":"\u6DFB\u52A0\u5361\u7247","Edit card":"\u7F16\u8F91\u5361\u7247","New note from card":"\u4ECE\u5361\u7247\u65B0\u5EFA\u7B14\u8BB0","Archive card":"\u5F52\u6863\u5361\u7247","Delete card":"\u5220\u9664\u5361\u7247","Edit date":"\u7F16\u8F91\u65E5\u671F","Add date":"\u6DFB\u52A0\u65E5\u671F","Remove date":"\u79FB\u9664\u65E5\u671F","Edit time":"\u7F16\u8F91\u65F6\u95F4","Add time":"\u6DFB\u52A0\u65F6\u95F4","Remove time":"\u79FB\u9664\u65F6\u95F4","Duplicate card":"\u590D\u5236\u5361\u7247","Split card":"\u5206\u79BB\u5361\u7247","Copy link to card":"\u590D\u5236\u94FE\u63A5\u81F3\u5361\u7247","Insert card before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5361\u7247","Insert card after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5361\u7247","Move to top":"\u79FB\u5230\u9876\u90E8","Move to bottom":"\u79FB\u81F3\u5E95\u90E8","Enter list title...":"\u8F93\u5165\u65B0\u7684\u5217\u6807\u9898\u2026\u2026","Mark cards in this list as complete":"\u5C06\u8BE5\u5217\u8BBE\u7F6E\u4E3A\u5B8C\u6210\u5217","Add list":"\u6DFB\u52A0","Add a list":"\u6DFB\u52A0\u5217","Move list":"\u79FB\u52A8\u5217",Close:"\u5173\u95ED","Are you sure you want to delete this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5220\u9664\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, delete list":"\u662F\uFF0C\u5220\u9664\u5217","Are you sure you want to archive this list and all its cards?":"\u4F60\u786E\u5B9A\u4F60\u8981\u5F52\u6863\u6574\u5217\u4EE5\u53CA\u8BE5\u5217\u4E0B\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive list":"\u662F, \u5F52\u6863\u5217","Are you sure you want to archive all cards in this list?":"\u4F60\u786E\u8BA4\u4F60\u8981\u5F52\u6863\u5F53\u524D\u5217\u7684\u6240\u6709\u5361\u7247\u5417\uFF1F","Yes, archive cards":"\u662F\uFF0C\u5F52\u6863\u6240\u6709\u5361\u7247","Edit list":"\u7F16\u8F91\u5217","Archive cards":"\u5F52\u6863\u5361\u7247","Archive list":"\u5F52\u6863\u5217","Delete list":"\u5220\u9664\u5217","Insert list before":"\u5728\u4E0A\u65B9\u63D2\u5165\u5217","Insert list after":"\u5728\u4E0B\u65B9\u63D2\u5165\u5217","Sort by card text":"\u4EE5\u5361\u7247\u6587\u672C\u6392\u5E8F","Sort by date":"\u4EE5\u65E5\u671F\u6392\u5E8F","Unable to find":"\u65E0\u6CD5\u627E\u5230","Open in default app":"\u5728\u9ED8\u8BA4\u5E94\u7528\u4E2D\u6253\u5F00",Submit:"\u63D0\u4EA4"};m();var Ov={};var wS={ar:gv,cz:vv,da:yv,de:bv,en:Ru,es:wv,fr:Ev,hi:kv,id:xv,it:Sv,ja:_v,ko:Cv,nl:Tv,no:Dv,pl:Mv,"pt-BR":Av,pt:Iv,ro:Lv,ru:Pv,sq:Fv,tr:Es,uk:Es,"zh-TW":Ov,zh:Nv},Rv=window.localStorage.getItem("language"),Hu=wS[Rv||"en"];function A(e){return Hu||console.error("Error: kanban locale not found",Rv),Hu&&Hu[e]||Ru[e]}m();m();function Qn(e){return Array.isArray?Array.isArray(e):Kv(e)==="[object Array]"}var ES=1/0;function kS(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-ES?"-0":t}function xS(e){return e==null?"":kS(e)}function Rn(e){return typeof e=="string"}function Hv(e){return typeof e=="number"}function SS(e){return e===!0||e===!1||_S(e)&&Kv(e)=="[object Boolean]"}function Bv(e){return typeof e=="object"}function _S(e){return Bv(e)&&e!==null}function un(e){return e!=null}function Bu(e){return!e.trim().length}function Kv(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var CS="Incorrect 'index' type",TS=e=>`Invalid value for key ${e}`,DS=e=>`Pattern length exceeds max of ${e}.`,MS=e=>`Missing ${e} property in key`,IS=e=>`Property 'weight' in key '${e}' must be a positive integer`,$v=Object.prototype.hasOwnProperty,Vv=class{constructor(t){this._keys=[],this._keyMap={};let r=0;t.forEach(n=>{let i=Uv(n);r+=i.weight,this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Uv(e){let t=null,r=null,n=null,i=1,a=null;if(Rn(e)||Qn(e))n=e,t=Wv(e),r=Ku(e);else{if(!$v.call(e,"name"))throw new Error(MS("name"));let o=e.name;if(n=o,$v.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(IS(o));t=Wv(o),r=Ku(o),a=e.getFn}return{path:t,id:r,weight:i,src:n,getFn:a}}function Wv(e){return Qn(e)?e:e.split(".")}function Ku(e){return Qn(e)?e.join("."):e}function AS(e,t){let r=[],n=!1,i=(a,o,s)=>{if(!!un(a))if(!o[s])r.push(a);else{let u=o[s],l=a[u];if(!un(l))return;if(s===o.length-1&&(Rn(l)||Hv(l)||SS(l)))r.push(xS(l));else if(Qn(l)){n=!0;for(let c=0,d=l.length;ce.score===t.score?e.idx{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Rn(this.docs[0])?this.docs.forEach((t,r)=>{this._addString(t,r)}):this.docs.forEach((t,r)=>{this._addObject(t,r)}),this.norm.clear())}add(t){let r=this.size();Rn(t)?this._addString(t,r):this._addObject(t,r)}removeAt(t){this.records.splice(t,1);for(let r=t,n=this.size();r{let o=i.getFn?i.getFn(t):this.getFn(t,i.path);if(!!un(o)){if(Qn(o)){let s=[],u=[{nestedArrIndex:-1,value:o}];for(;u.length;){let{nestedArrIndex:l,value:c}=u.pop();if(!!un(c))if(Rn(c)&&!Bu(c)){let d={v:c,i:l,n:this.norm.get(c)};s.push(d)}else Qn(c)&&c.forEach((d,f)=>{u.push({nestedArrIndex:f,value:d})})}n.$[a]=s}else if(Rn(o)&&!Bu(o)){let s={v:o,n:this.norm.get(o)};n.$[a]=s}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}};function zv(e,t,{getFn:r=_e.getFn,fieldNormWeight:n=_e.fieldNormWeight}={}){let i=new ks({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(Uv)),i.setSources(t),i.create(),i}function HS(e,{getFn:t=_e.getFn,fieldNormWeight:r=_e.fieldNormWeight}={}){let{keys:n,records:i}=e,a=new ks({getFn:t,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function xs(e,{errors:t=0,currentLocation:r=0,expectedLocation:n=0,distance:i=_e.distance,ignoreLocation:a=_e.ignoreLocation}={}){let o=t/e.length;if(a)return o;let s=Math.abs(n-r);return i?o+s/i:s?1:o}function BS(e=[],t=_e.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let o=e.length;a=t&&r.push([n,i]),n=-1)}return e[a-1]&&a-n>=t&&r.push([n,a-1]),r}var Wr=32;function KS(e,t,r,{location:n=_e.location,distance:i=_e.distance,threshold:a=_e.threshold,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,includeMatches:u=_e.includeMatches,ignoreLocation:l=_e.ignoreLocation}={}){if(t.length>Wr)throw new Error(DS(Wr));let c=t.length,d=e.length,f=Math.max(0,Math.min(n,d)),p=a,g=f,y=s>1||u,b=y?Array(d):[],x;for(;(x=e.indexOf(t,g))>-1;){let K=xs(t,{currentLocation:x,expectedLocation:f,distance:i,ignoreLocation:l});if(p=Math.min(K,p),g=x+c,y){let z=0;for(;z=Z;Q-=1){let ie=Q-1,he=r[e.charAt(ie)];if(y&&(b[ie]=+!!he),se[Q]=(se[Q+1]<<1|1)&he,K&&(se[Q]|=(D[Q+1]|D[Q])<<1|1|D[Q+1]),se[Q]&H&&(C=xs(t,{errors:K,currentLocation:ie,expectedLocation:f,distance:i,ignoreLocation:l}),C<=p)){if(p=C,g=ie,g<=f)break;Z=Math.max(1,2*f-g)}}if(xs(t,{errors:K+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:l})>p)break;D=se}let T={isMatch:g>=0,score:Math.max(.001,C)};if(y){let K=BS(b,s);K.length?u&&(T.indices=K):T.isMatch=!1}return T}function $S(e){let t={};for(let r=0,n=e.length;r{this.chunks.push({pattern:f,alphabet:$S(f),startIndex:p})},d=this.pattern.length;if(d>Wr){let f=0,p=d%Wr,g=d-p;for(;f{let{isMatch:x,score:D,indices:C}=KS(t,g,y,{location:i+b,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:u,includeMatches:n,ignoreLocation:l});x&&(f=!0),d+=D,x&&C&&(c=[...c,...C])});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&n&&(p.indices=c),p}},Xn=class{constructor(t){this.pattern=t}static isMultiMatch(t){return jv(t,this.multiRegex)}static isSingleMatch(t){return jv(t,this.singleRegex)}search(){}};function jv(e,t){let r=e.match(t);return r?r[1]:null}var qv=class extends Xn{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){let r=t===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},Yv=class extends Xn{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){let n=t.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}},Jv=class extends Xn{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){let r=t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}},Gv=class extends Xn{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){let r=!t.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Qv=class extends Xn{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){let r=t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},Xv=class extends Xn{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){let r=!t.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}},Vu=class extends Xn{constructor(t,{location:r=_e.location,threshold:n=_e.threshold,distance:i=_e.distance,includeMatches:a=_e.includeMatches,findAllMatches:o=_e.findAllMatches,minMatchCharLength:s=_e.minMatchCharLength,isCaseSensitive:u=_e.isCaseSensitive,ignoreLocation:l=_e.ignoreLocation}={}){super(t);this._bitapSearch=new $u(t,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}},Uu=class extends Xn{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let r=0,n,i=[],a=this.pattern.length;for(;(n=t.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},Wu=[qv,Uu,Jv,Gv,Xv,Qv,Yv,Vu],Zv=Wu.length,VS=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,US="|";function WS(e,t={}){return e.split(US).map(r=>{let n=r.trim().split(VS).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(e[Ss.AND]||e[Ss.OR]),qS=e=>!!e[qu.PATH],YS=e=>!Qn(e)&&Bv(e)&&!Yu(e),ty=e=>({[Ss.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function ny(e,t,{auto:r=!0}={}){let n=i=>{let a=Object.keys(i),o=qS(i);if(!o&&a.length>1&&!Yu(i))return n(ty(i));if(YS(i)){let u=o?i[qu.PATH]:a[0],l=o?i[qu.PATTERN]:i[u];if(!Rn(l))throw new Error(TS(u));let c={keyId:Ku(u),pattern:l};return r&&(c.searcher=ju(l,t)),c}let s={children:[],operator:a[0]};return a.forEach(u=>{let l=i[u];Qn(l)&&l.forEach(c=>{s.children.push(n(c))})}),s};return Yu(e)||(e=ty(e)),n(e)}function JS(e,{ignoreFieldNorm:t=_e.ignoreFieldNorm}){e.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:o})=>{let s=i?i.weight:null;n*=Math.pow(o===0&&s?Number.EPSILON:o,(s||1)*(t?1:a))}),r.score=n})}function GS(e,t){let r=e.matches;t.matches=[],!!un(r)&&r.forEach(n=>{if(!un(n.indices)||!n.indices.length)return;let{indices:i,value:a}=n,o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),t.matches.push(o)})}function QS(e,t){t.score=e.score}function XS(e,t,{includeMatches:r=_e.includeMatches,includeScore:n=_e.includeScore}={}){let i=[];return r&&i.push(GS),n&&i.push(QS),e.map(a=>{let{idx:o}=a,s={item:t[o],refIndex:o};return i.length&&i.forEach(u=>{u(a,s)}),s})}var mn=class{constructor(t,r={},n){this.options={..._e,...r},this.options.useExtendedSearch,this._keyStore=new Vv(this.options.keys),this.setCollection(t,n)}setCollection(t,r){if(this._docs=t,r&&!(r instanceof ks))throw new Error(CS);this._myIndex=r||zv(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){!un(t)||(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){let r=[];for(let n=0,i=this._docs.length;n-1&&(u=u.slice(0,r)),XS(u,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(t){let r=ju(t,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:s})=>{if(!un(a))return;let{isMatch:u,score:l,indices:c}=r.searchIn(a);u&&i.push({item:a,idx:o,matches:[{score:l,value:a,norm:s,indices:c}]})}),i}_searchLogical(t){let r=ny(t,this.options),n=(s,u,l)=>{if(!s.children){let{keyId:d,searcher:f}=s,p=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(u,d),searcher:f});return p&&p.length?[{idx:l,item:u,matches:p}]:[]}let c=[];for(let d=0,f=s.children.length;d{if(un(s)){let l=n(r,s,u);l.length&&(a[u]||(a[u]={idx:u,item:s,matches:[]},o.push(a[u])),l.forEach(({matches:c})=>{a[u].matches.push(...c)}))}}),o}_searchObjectList(t){let r=ju(t,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:s})=>{if(!un(o))return;let u=[];n.forEach((l,c)=>{u.push(...this._findMatches({key:l,value:o[c],searcher:r}))}),u.length&&a.push({idx:s,item:o,matches:u})}),a}_findMatches({key:t,value:r,searcher:n}){if(!un(r))return[];let i=[];if(Qn(r))r.forEach(({v:a,i:o,n:s})=>{if(!un(a))return;let{isMatch:u,score:l,indices:c}=n.searchIn(a);u&&i.push({score:l,key:t,value:a,idx:o,norm:s,indices:c})});else{let{v:a,n:o}=r,{isMatch:s,score:u,indices:l}=n.searchIn(a);s&&i.push({score:u,key:t,value:a,norm:o,indices:l})}return i}};mn.version="6.6.2";mn.createIndex=zv;mn.parseIndex=HS;mn.config=_e;mn.parseQuery=ny;jS(ey);var xy=me(require("obsidian"));m();var ry=me(require("obsidian"));function _s(e,t,r){let n=r.getSetting("date-format"),i=r.getSetting("link-date-to-daily-note"),a=(0,ry.moment)(e).format(n),o=i?Yo(r.app,a):`{${a}}`;Lt(t.current,o),t.current.focus()}function iy({div:e,inputRef:t,cb:r,stateManager:n}){e.createEl("input",{type:"text"},i=>{e.win.setTimeout(()=>r(as(i,{now:new Date,locale:Xo(n),inline:!0,onChange:a=>{_s(a[0],t,n)},win:i.win})))})}function Ju(e,t){let r=t.clientHeight,n=t.clientWidth,i=Ze(t);e.top+r>i.innerHeight&&(t.style.top=`${(e.clientTop||0)-r}px`),e.left+n>i.innerWidth&&(t.style.left=`${(e.left||0)-n}px`)}function ay(e){let t=e.getSetting("time-trigger"),r=new RegExp(`\\B${Ln(t)}{?([^}]*)$`),n=Iu(e);return{id:"time",match:r,index:1,search:(i,a)=>{a(i?n.filter(o=>o.startsWith(i)):n)},template:i=>i,replace:i=>`${t}{${i}} `}}function oy(e){let t=e.month(),r=e.clone().startOf("month").weekday(0),n=e.diff(r,"week");e.subtract(1,"month").startOf("month").weekday(6).add(n,"week");let i=e.month();for(;t===i;)e.subtract(1,"week"),i=e.month();return e}function sy(e){let t=e.month(),r=e.clone().startOf("month").weekday(6),n=e.diff(r,"week");e.add(1,"month").startOf("month").weekday(0).add(n,"week");let i=e.month();for(;t===i;)e.add(1,"week"),i=e.month();return e}m();var ly=me(require("obsidian"));var ZS=/\B\[\[([^\]]*)$/,e_=/\B!\[\[([^\]]*)$/,t_=/\B\[\[([^#\]]+)#([^\]]*)$/,n_=/\B!\[\[([^#\]]+)#([^\]]*)$/,r_=/\B\[\[([^#\]]+)#?\^([^\]]*)$/,i_=/\B!\[\[([^#\]]+)#?\^([^\]]*)$/;function a_(e,t,r,n){let i=e.document.body.createDiv(B("file-suggestion-wrapper"));i.detach(),(0,ly.setIcon)(i.createDiv(B("file-suggestion-icon")),"lucide-forward",12),i.createDiv({},o=>{o.createDiv({cls:B("file-suggestion-title"),text:n.item.alias}),o.createDiv({cls:B("file-suggestion-subtitle"),text:t.app.metadataCache.fileToLinktext(n.item.file,r)})});let a=i.outerHTML;return i.remove(),i=null,a}function Gu(e,t,r,n,i,a,o){return{id:`link-${o?"embed":"normal"}`,match:o?e_:ZS,index:1,template:s=>s.item.file===null?`${s.item.path.split("|").pop()||s.item.path}`:s.item.alias?a_(e,i,n,s):i.app.metadataCache.fileToLinktext(s.item.file,n),search:(s,u)=>{if(!s)u(t.slice(0,10).map((l,c)=>({item:l,refIndex:c})));else{let l=s.split("|"),c=l.length>1,d=l[0],f=c?l.slice(1).join("|"):null,p=s;c&&(p={"file.basename":d,alias:f}),u([{item:{file:null,path:s,alias:""},refIndex:-1},...r.search(p)])}},replace:s=>{let u=[];o&&s.item.file.extension==="md"&&u.push("!"),s.item.file===null?u.push(`[[${s.item.path}]]`):u.push(i.app.fileManager.generateMarkdownLink(s.item.file,i.file.path,void 0,s.item.alias));let l=!!i.app.vault.getConfig("useMarkdownLinks");return a&&!l&&(u[u.length-1]=u[u.length-1].slice(0,-2)),u.join("")}}}function o_(e,t,r,n){var u;if(!r)return[];let i=r.split("|"),a=e.metadataCache.getFirstLinkpathDest(i[0],t);if(!a)return[];let o=e.metadataCache.getFileCache(a);if(!o||!((u=o.headings)==null?void 0:u.length))return[];let s=o.headings.map(l=>({file:a,heading:l.heading,alias:i[1]||""}));return n?new mn(s,{keys:["heading"]}).search(n):s.map((l,c)=>({item:l,refIndex:c}))}function Qu(e,t,r,n){return{id:`heading-${n?"embed":"normal"}`,match:n?n_:t_,index:1,template:i=>i.item.heading,search:(i,a,o)=>{a(o_(t.app,e,o[1],o[2]))},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!"),a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,"#"+i.item.heading,i.item.alias));let o=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!o?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!o&&a.push("]] "),a.join("")}}}var cy=class{constructor(){this.running=!1;this.cancelled=!1}start(){this.running=!0}stop(){this.running=!1}cancel(){this.stop(),this.cancelled=!0}isRunning(){return this.running}isCancelled(){return this.cancelled}};async function s_(e,t,r,n,i){var u;if(!r)return i([]);let a=r.split("|"),o=e.metadataCache.getFirstLinkpathDest(a[0],t);if(!o)return i([]);let s=e.metadataCache.getFileCache(o);if(!s||!((u=s.sections)==null?void 0:u.length))return i([]);try{let l=await e.metadataCache.blockCache.getForFile(new cy,o);if(!(l==null?void 0:l.blocks))return i([]);let c=l.blocks.map(d=>d.node.type==="heading"?null:{file:o,searchString:d.display,blockId:d.node.id,block:{type:d.node.type,start:d.node.position.start.offset,end:d.node.position.end.offset},alias:a[1]||""}).filter(d=>d);i(n?new mn(c,{keys:["searchString","blockId"]}).search(n):c.map((d,f)=>({item:d,refIndex:f})))}catch(l){i([])}}function l_(e){return["blockquote","code","table","comment","footnoteDefinition"].includes(e)}function Xu(e,t,r,n){return{id:`block-${n?"embed":"normal"}`,match:n?i_:r_,index:1,template:i=>i.item.blockId?`
    ${i.item.searchString}
    ${i.item.blockId}
    `:i.item.searchString,search:(i,a,o)=>{s_(t.app,e,o[1],o[2],a)},replace:i=>{let a=[];n&&i.item.file.extension==="md"&&a.push("!");let o="#^";if(i.item.blockId)o+=i.item.blockId;else{let u=Ae(),l=l_(i.item.block.type)?` + +`:" ";t.app.vault.cachedRead(i.item.file).then(c=>{let d=`${c.slice(0,i.item.block.end)}${l}^${u}${c.slice(i.item.block.end)}`;t.app.vault.modify(i.item.file,d)}).catch(c=>{t.setError(c),console.error(c)}),o+=u}a.push(t.app.fileManager.generateMarkdownLink(i.item.file,t.file.path,o,i.item.alias));let s=!!t.app.vault.getConfig("useMarkdownLinks");return r&&!s?a[a.length-1]=a[a.length-1].slice(0,-2):!r&&!s&&a.push("]] "),a.join("")}}}m();var c_=/\B#([^\s]*)?$/;function uy(e,t){return{id:"tag",match:c_,index:1,search:(r,n)=>{n(r?[{item:`#${r}`,refIndex:-1},...t.search(r,{limit:50})]:e.slice(0,50).map((i,a)=>({item:i,refIndex:a})))},template:r=>r.item,replace:r=>`${r.item.replace(/<\/?em>/g,"")} `}}m();m();var fy=me(Ma());m();m();var f_=/\$&/g,p_=/\$(\d)/g,ed=class{constructor(t,r,n){this.data=t;this.term=r;this.strategy=n}getReplacementData(t){let r=this.strategy.replace(this.data);if(r==null)return null;let n="";Array.isArray(r)&&(n=r[1],r=r[0]);let i=this.strategy.match(t);if(i==null||i.index==null)return null;let a=r.replace(f_,i[0]).replace(p_,(o,s)=>i[parseInt(s)]);return{start:i.index,end:i.index+i[0].length,beforeCursor:a,afterCursor:n}}replace(t,r){let n=this.getReplacementData(t);if(n!==null)return r=n.afterCursor+r,[[t.slice(0,n.start),n.beforeCursor,t.slice(n.end)].join(""),r]}render(){return this.strategy.renderTemplate(this.data,this.term)}getStrategyId(){return this.strategy.getId()}};var h_=1,td=class{constructor(t){this.props=t;this.cache={}}destroy(){return this.cache={},this}replace(t){return this.props.replace(t)}execute(t,r){var a;let n=this.matchWithContext(t);if(!n)return!1;let i=n[(a=this.props.index)!=null?a:h_];return this.search(i,o=>{r(o.map(s=>new ed(s,i,this)))},n),!0}renderTemplate(t,r){if(this.props.template)return this.props.template(t,r);if(typeof t=="string")return t;throw new Error(`Unexpected render data type: ${typeof t}. Please implement template parameter by yourself`)}getId(){return this.props.id||null}match(t){return typeof this.props.match=="function"?this.props.match(t):t.match(this.props.match)}search(t,r,n){this.props.cache?this.searchWithCach(t,r,n):this.props.search(t,r,n)}matchWithContext(t){let r=this.context(t);return r===!1?null:this.match(r===!0?t:r)}context(t){return this.props.context?this.props.context(t):!0}searchWithCach(t,r,n){this.cache[t]!=null?r(this.cache[t]):this.props.search(t,i=>{this.cache[t]=i,r(i)},n)}};var nd=class extends fy.EventEmitter{constructor(t){super();this.handleQueryResult=t=>{this.emit("hit",{searchResults:t})};this.strategies=t.map(r=>new td(r))}destroy(){return this.strategies.forEach(t=>t.destroy()),this}run(t){for(let r of this.strategies)if(r.execute(t,this.handleQueryResult))return;this.handleQueryResult([])}};m();var py=me(Ma());m();var m_=typeof window!="undefined"&&!!window.CustomEvent,Vt=(e,t,r)=>{if(m_)return new CustomEvent(t,r);let n=e.createEvent("CustomEvent");return n.initCustomEvent(t,!1,(r==null?void 0:r.cancelable)||!1,(r==null?void 0:r.detail)||void 0),n};var g_=10,v_="auto",y_="dropdown-menu textcomplete-dropdown",hy="textcomplete-item",b_=`${hy} active`,Ia=class extends py.EventEmitter{constructor(t,r){super();this.el=t;this.option=r;this.shown=!1;this.items=[];this.activeIndex=null}static create(t){let r=t.parent||window.document.body,i=r.doc.createElement("ul");return i.className=t.className||y_,Object.assign(i.style,{display:"none",position:"absolute",zIndex:"1000"},t.style),r==null||r.appendChild(i),new Ia(i,t)}render(t,r){let n=Vt(this.el.doc,"render",{cancelable:!0});return this.emit("render",n),n.defaultPrevented?this:(this.clear(),t.length===0?this.hide():(this.items=t.slice(0,this.option.maxCount||g_).map((i,a)=>{var o;return new my(this,a,i,((o=this.option)==null?void 0:o.item)||{})}),this.setStrategyId(t[0]).renderEdge(t,"header").renderItems().renderEdge(t,"footer").show().setOffset(r).activate(0),this.emit("rendered",Vt(this.el.doc,"rendered")),this))}destroy(){var t;return this.clear(),(t=this.el.parentNode)==null||t.removeChild(this.el),this}select(t){let r={searchResult:t.searchResult},n=Vt(this.el.doc,"select",{cancelable:!0,detail:r});return this.emit("select",n),n.defaultPrevented?this:(this.hide(),this.emit("selected",Vt(this.el.doc,"selected",{detail:r})),this)}show(){if(!this.shown){let t=Vt(this.el.doc,"show",{cancelable:!0});if(this.emit("show",t),t.defaultPrevented)return this;this.el.style.display="block",this.shown=!0,this.emit("shown",Vt(this.el.doc,"shown"))}return this}hide(){if(this.shown){let t=Vt(this.el.doc,"hide",{cancelable:!0});if(this.emit("hide",t),t.defaultPrevented)return this;this.el.style.display="none",this.shown=!1,this.clear(),this.emit("hidden",Vt(this.el.doc,"hidden"))}return this}clear(){return this.items.forEach(t=>t.destroy()),this.items=[],this.el.innerHTML="",this.activeIndex=null,this}up(t){return this.shown?this.moveActiveItem("prev",t):this}down(t){return this.shown?this.moveActiveItem("next",t):this}moveActiveItem(t,r){if(this.activeIndex!=null){let n=t==="next"?this.getNextActiveIndex():this.getPrevActiveIndex();n!=null&&(this.activate(n),r.preventDefault())}return this}activate(t){return this.activeIndex!==t&&(this.activeIndex!=null&&this.items[this.activeIndex].deactivate(),this.activeIndex=t,this.items[t].activate()),this}isShown(){return this.shown}getActiveItem(){return this.activeIndex!=null?this.items[this.activeIndex]:null}setOffset(t){let n=this.el.doc.documentElement;if(n){let i=this.el.offsetWidth;if(t.left){let s=this.option.dynamicWidth?n.scrollWidth:n.clientWidth;t.left+i>s&&(t.left=s-i),this.el.style.left=`${t.left}px`}else t.right&&(t.right-i<0&&(t.right=0),this.el.style.right=`${t.right}px`);let a=!1,o=this.option.placement||v_;if(o==="auto"){let s=this.el.clientHeight;a=t.clientTop!=null&&t.clientTop+s>n.clientHeight}o==="top"||a?(this.el.style.bottom=`${n.clientHeight-t.top+t.lineHeight}px`,this.el.style.top="auto"):(this.el.style.top=`${t.top}px`,this.el.style.bottom="auto")}return this}getNextActiveIndex(){if(this.activeIndex==null)throw new Error;return this.activeIndexo.data)):n||"",this.el.appendChild(a),this}},my=class{constructor(t,r,n,i){this.dropdown=t;this.index=r;this.searchResult=n;this.props=i;this.active=!1;this.onClick=t=>{t.preventDefault(),this.dropdown.select(this)};this.className=this.props.className||hy,this.activeClassName=this.props.activeClassName||b_;let a=t.el.doc,o=a.createElement("li");o.className=this.active?this.activeClassName:this.className;let s=a.createElement("span");s.tabIndex=-1,s.innerHTML=this.searchResult.render(),o.appendChild(s),o.addEventListener("mousedown",this.onClick),o.addEventListener("touchstart",this.onClick),this.el=o}destroy(){var r;let t=this.el;return(r=t.parentNode)==null||r.removeChild(t),t.removeEventListener("mousedown",this.onClick,!1),t.removeEventListener("touchstart",this.onClick,!1),this}activate(){return this.active||(this.active=!0,this.el.className=this.activeClassName,this.dropdown.el.scrollTop=this.el.offsetTop),this}deactivate(){return this.active&&(this.active=!1,this.el.className=this.className),this}};m();var gy=me(Ma());var rd=class extends gy.EventEmitter{destroy(){return this}applySearchResult(t){throw new Error("Not implemented.")}getCursorOffset(){throw new Error("Not implemented.")}getBeforeCursor(){throw new Error("Not implemented.")}emitMoveEvent(t){let r=Vt(activeDocument,"move",{cancelable:!0,detail:{code:t}});return this.emit("move",r),r}emitEnterEvent(){let t=Vt(activeDocument,"enter",{cancelable:!0});return this.emit("enter",t),t}emitChangeEvent(){let t=Vt(activeDocument,"change",{detail:{beforeCursor:this.getBeforeCursor()}});return this.emit("change",t),t}emitEscEvent(){let t=Vt(activeDocument,"esc",{cancelable:!0});return this.emit("esc",t),t}getCode(t){return t.keyCode===9||t.keyCode===13?"ENTER":t.keyCode===27?"ESC":t.keyCode===38?"UP":t.keyCode===40||t.keyCode===78&&t.ctrlKey?"DOWN":t.keyCode===80&&t.ctrlKey?"UP":"OTHER"}};m();var vy=me(Ma());var w_=["show","shown","render","rendered","selected","hidden","hide"],id=class extends vy.EventEmitter{constructor(t,r,n){super();this.editor=t;this.isQueryInFlight=!1;this.nextPendingQuery=null;this.handleHit=({searchResults:t})=>{t.length?this.dropdown.render(t,this.editor.getCursorOffset()):this.dropdown.hide(),this.isQueryInFlight=!1,this.nextPendingQuery!==null&&this.trigger(this.nextPendingQuery)};this.handleMove=t=>{t.detail.code==="UP"?this.dropdown.up(t):this.dropdown.down(t)};this.handleEnter=t=>{let r=this.dropdown.getActiveItem();r?(this.dropdown.select(r),t.preventDefault()):this.dropdown.hide()};this.handleEsc=t=>{this.dropdown.isShown()&&(this.dropdown.hide(),t.preventDefault())};this.handleChange=t=>{t.detail.beforeCursor!=null?this.trigger(t.detail.beforeCursor):this.dropdown.hide()};this.handleSelect=t=>{this.emit("select",t),t.defaultPrevented||this.editor.applySearchResult(t.detail.searchResult)};this.handleResize=()=>{this.dropdown.isShown()&&this.dropdown.setOffset(this.editor.getCursorOffset())};this.completer=new nd(r),this.dropdown=Ia.create((n==null?void 0:n.dropdown)||{}),this.startListening()}destroy(t=!0){return this.completer.destroy(),this.dropdown.destroy(),t&&this.editor.destroy(),this.stopListening(),this}isShown(){return this.dropdown.isShown()}hide(){return this.dropdown.hide(),this}trigger(t){return this.isQueryInFlight?this.nextPendingQuery=t:(this.isQueryInFlight=!0,this.nextPendingQuery=null,this.completer.run(t)),this}startListening(){var t;this.editor.on("move",this.handleMove).on("enter",this.handleEnter).on("esc",this.handleEsc).on("change",this.handleChange),this.dropdown.on("select",this.handleSelect);for(let r of w_)this.dropdown.on(r,n=>this.emit(r,n));this.completer.on("hit",this.handleHit),(t=Ze(this.dropdown.el))==null||t.addEventListener("resize",this.handleResize)}stopListening(){var t;(t=Ze(this.dropdown.el))==null||t.removeEventListener("resize",this.handleResize),this.completer.removeAllListeners(),this.dropdown.removeAllListeners(),this.editor.removeListener("move",this.handleMove).removeListener("enter",this.handleEnter).removeListener("esc",this.handleEsc).removeListener("change",this.handleChange)}};m();m();m();m();var yy=e=>{let t=e.getBoundingClientRect(),r=e.doc;if(r==null)throw new Error("Given element does not belong to document");let{defaultView:n,documentElement:i}=r;if(n==null)throw new Error("Given element does not belong to window");let a={top:t.top+n.pageYOffset,left:t.left+n.pageXOffset};return i&&(a.top-=i.clientTop,a.left-=i.clientLeft),a};m();var E_="0".charCodeAt(0),k_="9".charCodeAt(0),by=e=>E_<=e&&e<=k_,wy=e=>{let t=getComputedStyle(e),r=t.lineHeight;if(by(r.charCodeAt(0))){let n=parseFloat(r);return by(r.charCodeAt(r.length-1))?n*parseFloat(t.fontSize):n}return x_(e.doc,e.nodeName,t)},x_=(e,t,r)=>{let n=e.body;if(!n)return 0;let i=e.createElement(t);i.innerHTML=" ",Object.assign(i.style,{fontSize:r.fontSize,fontFamily:r.fontFamily,padding:"0"}),n.appendChild(i),i.instanceOf(HTMLTextAreaElement)&&(i.rows=1);let a=i.offsetHeight;return n.removeChild(i),a};m();m();function Ey(e,t,r){let n=e.doc,i=e.value,a=t+(r||""),o=n.activeElement,s=0,u=0;for(;s=0&&a.length-u-1>=0&&i[i.length-u-1]===a[a.length-u-1];)u++;s=Math.min(s,Math.min(i.length,a.length)-u),e.setSelectionRange(s,i.length-u);let l=a.substring(s,a.length-u);if(e.focus(),!n.execCommand("insertText",!1,l)){e.value=a;let c=n.createEvent("Event");c.initEvent("input",!0,!0),e.dispatchEvent(c)}return e.setSelectionRange(t.length,t.length),o.focus(),e}m();var S_=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];function ky(e,t){let r=e.doc,n=e.win,i=r.createElement("div");i.id="input-textarea-caret-position-mirror-div",r.body.appendChild(i);let a=i.style,o=n.getComputedStyle(e);a.whiteSpace="pre-wrap",a.position="absolute",S_.forEach(l=>{a[l]=o[l]}),a.overflow="hidden",i.textContent=e.value.substring(0,t);let s=r.createElement("span");s.textContent=e.value.substring(t)||".",i.appendChild(s);let u={top:s.offsetTop+parseInt(o.borderTopWidth),left:s.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return r.body.removeChild(i),u}var Ts=class extends rd{constructor(t){super();this.el=t;this.onInput=()=>{this.emitChangeEvent()};this.onKeydown=t=>{let r=this.getCode(t),n;r==="UP"||r==="DOWN"?n=this.emitMoveEvent(r):r==="ENTER"?n=this.emitEnterEvent():r==="ESC"&&(n=this.emitEscEvent()),n&&n.defaultPrevented&&t.preventDefault()};this.startListening()}destroy(){return super.destroy(),this.stopListening(),this}applySearchResult(t){let r=this.getBeforeCursor();if(r!=null){let n=t.replace(r,this.getAfterCursor());this.el.focus(),Array.isArray(n)&&(Ey(this.el,n[0],n[1]),this.el&&this.el.dispatchEvent(Vt(this.el.doc,"input")))}}getCursorOffset(){let t=yy(this.el),r=this.getElScroll(),n=this.getCursorPosition(),i=wy(this.el),a=t.top-r.top+n.top+i,o=t.left-r.left+n.left,s=this.el.getBoundingClientRect().top,u=this.el.doc;if(this.el.dir!=="rtl")return{top:a,left:o,lineHeight:i,clientTop:s};{let l=u.documentElement?u.documentElement.clientWidth-o:0;return{top:a,right:l,lineHeight:i,clientTop:s}}}getBeforeCursor(){return this.el.selectionStart!==this.el.selectionEnd?null:this.el.value.slice(0,this.el.selectionEnd)}getAfterCursor(){return this.el.value.slice(this.el.selectionEnd)}getElScroll(){return{top:this.el.scrollTop,left:this.el.scrollLeft}}getCursorPosition(){return ky(this.el,this.el.selectionEnd)}startListening(){this.el.addEventListener("input",this.onInput),this.el.addEventListener("keydown",this.onKeydown)}stopListening(){this.el.removeEventListener("input",this.onInput),this.el.removeEventListener("keydown",this.onKeydown)}};function __({inputRef:e,isAutocompleteVisibleRef:t,obsidianContext:r,excludeDatePicker:n}){let{stateManager:i,filePath:a,view:o}=r,s=null,u=null,l=i.getSetting("date-trigger"),c=new RegExp(`(?:^|\\s)${Ln(l)}$`),d=Object.keys(i.app.metadataCache.getTags()).sort(),f=new mn(d),p=i.app.metadataCache.getLinkSuggestions().filter(H=>!!H.file),g=new mn(p,{keys:["file.basename","alias"]}),y=o.app.vault.getConfig("autoPairBrackets"),b=[uy(d,f),Xu(a,i,y,!0),Xu(a,i,y,!1),Qu(a,i,y,!0),Qu(a,i,y,!1),Gu(o.getWindow(),p,g,a,i,y,!0),Gu(o.getWindow(),p,g,a,i,y,!1)];n||b.push(ay(i));let x=new Ts(e.current),D=new id(x,b,{dropdown:{parent:ur(e.current),maxCount:96,className:`${B("autocomplete")} ${B("ignore-click-outside")}`,rotate:!0,item:{className:`${B("autocomplete-item")} ${B("ignore-click-outside")}`,activeClassName:`${B("autocomplete-item-active")} ${B("ignore-click-outside")}`}}}),C=()=>{D.isShown()||(t.current=!1);let H=s.win;u.destroy(),s.remove(),H.setTimeout(()=>{s=null})};D.on("show",()=>{t.current=!0}),D.on("hidden",()=>{t.current=!1});let L;if(!n){L=T=>{if(D.isShown&&["#","^"].contains(T.key)){let z=D.dropdown.getActiveItem(),V=z==null?void 0:z.searchResult;if(V&&V.strategy.props.id.startsWith("link")){T.preventDefault(),x.applySearchResult(V),Lt(e.current,T.key==="^"?"#^":"#");return}}if(!s)return;if(T.key==="Enter"){T.preventDefault();let z=u.selectedDates;return z.length?_s(z[0],e,i):_s(new Date,e,i),C()}if(T.key==="Escape")return T.preventDefault(),C();let K=(0,xy.moment)(u.selectedDates[0]||new Date);if(T.key==="ArrowRight"){T.preventDefault(),K.weekday()===6?u.setDate(sy(K).toDate(),!1):u.setDate(K.add(1,"day").toDate(),!1);return}if(T.key==="ArrowLeft"){T.preventDefault(),K.weekday()===0?u.setDate(oy(K).toDate(),!1):u.setDate(K.subtract(1,"day").toDate(),!1);return}if(T.key==="ArrowUp"){T.preventDefault(),u.setDate(K.subtract(1,"week").toDate(),!1);return}if(T.key==="ArrowDown"){T.preventDefault(),u.setDate(K.add(1,"week").toDate(),!1);return}},e.current.addEventListener("keydown",L);let H=e.current.doc;x.on("change",T=>{let K=T.detail.beforeCursor;if(K&&c.test(K)){let z=x.getCursorOffset();s?(s.style.left=`${z.left||0}px`,s.style.top=`${z.top||0}px`,Ju(z,s)):s=H.body.createDiv({cls:`${B("date-picker")} ${B("ignore-click-outside")}`},V=>{V.style.left=`${z.left||0}px`,V.style.top=`${z.top||0}px`,iy({div:V,inputRef:e,stateManager:i,cb:Z=>{u=Z,t.current=!0,Ju(z,s)}})})}else s&&C()})}return()=>{!n&&e.current&&e.current.removeEventListener("keydown",L),s&&C(),D.destroy(),x.destroy()}}function Sy({isInputVisible:e,onEnter:t,onEscape:r,onKeyDown:n,excludeDatePicker:i}){let a=P.useContext(We),o=P.useRef(!1),s=P.useRef(),{oncompositionstart:u,oncompositionend:l,getShouldIMEBlockAction:c}=yo();return P.useEffect(()=>{let d=s.current;if(e&&d)return d.focus(),d.selectionStart=d.selectionEnd=d.value.length,__({inputRef:s,isAutocompleteVisibleRef:o,obsidianContext:a,excludeDatePicker:i})},[e]),{ref:s,oncompositionstart:u,oncompositionend:l,onKeyDownCapture:d=>{c()||o.current||n(d)||(d.key==="Enter"?t&&t(d):d.key==="Escape"&&r&&r(d))}}}m();var _y=/^[*_]{2}(.+)[*_]{2}$/;function C_(e){return e.replace(_y,"$1")}var Cy=/^[*_]{1}(.+)[*_]{1}$/;function T_(e){return e.replace(Cy,"$1")}var Ty=/^`{1}(.+)`{1}$/;function D_(e){return e.replace(Ty,"$1")}var Dy=/^={2}(.+)={2}$/;function M_(e){return e.replace(Dy,"$1")}var My=/^~{2}(.+)~{2}$/;function I_(e){return e.replace(My,"$1")}var A_=/^(?:>.+?(?:[\r\n]|$))+$/;function L_(e){return e.split(` +`).map(r=>r[0]===">"?r:`> ${r}`).join(` +`)}function P_(e){return e.split(` +`).map(r=>r[0]!==">"?r:r.replace(/^>+\s*/,"")).join(` +`)}var Aa=/^(?:\s*\d+[.)]\s+.*?(?:[\r\n]|$))+$/,ad=/^(?:\s*\d+[.)]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,od=/^(?:\s*\d+[.)]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function F_(e){return e.match(/^\s*/)[0].length}function N_(e){return parseInt(e.match(/^\s*(\d+)/)[1],10)}function O_(e){let t=[0],r=0;return e.split(` +`).map(n=>{let i=F_(n);if(i>r?t.push(0):iAa.test(t)?t.replace(/^(\s*)\d+[.)]\s+/,"$1"):t).join(` +`)}var La=/^(?:\s*[-*+]\s+.*?(?:[\r\n]|$))+$/,sd=/^(?:\s*[-*+]\s+\[\s+\]\s+.*?(?:[\r\n]|$))+$/,ld=/^(?:\s*[-*+]\s+\[[^\]\s]+\]\s+.*?(?:[\r\n]|$))+$/;function Iy(e){return e.split(` +`).map(r=>La.test(r)?r:r.replace(/^(\s*)/,"$1- ")).join(` +`)}function H_(e){return e.split(` +`).map(t=>sd.test(t)||ld.test(t)?t:t.replace(/^(\s*[-*+]\s+)/,"$1[ ] ")).join(` +`)}function B_(e){return e.split(` +`).map(t=>ad.test(t)||od.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)/,"$1[ ] ")).join(` +`)}function K_(e){return e.split(` +`).map(t=>sd.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")).join(` +`)}function $_(e){return e.split(` +`).map(t=>ad.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[[^\]]{1}\]/,"$1[ ]")).join(` +`)}function V_(e){return e.split(` +`).map(t=>ld.test(t)?t:t.replace(/^(\s*[-*+]\s+)\[\s\]/,"$1[x]")).join(` +`)}function U_(e){return e.split(` +`).map(t=>od.test(t)?t:t.replace(/^(\s*\d+[.)]\s+)\[\s\]/,"$1[x]")).join(` +`)}function W_(e){return e.split(` +`).map(r=>La.test(r)?r.replace(/^(\s*)[-+*]\s+/,"$1"):r).join(` +`)}var Ay={"editor:toggle-bold":e=>{Ai(e,_y,C_,"**")},"editor:toggle-code":e=>{Ai(e,Ty,D_,"`")},"editor:toggle-italics":e=>{Ai(e,Cy,T_,"*")},"editor:toggle-highlight":e=>{Ai(e,Dy,M_,"==")},"editor:toggle-strikethrough":e=>{Ai(e,My,I_,"~~")},"editor:toggle-blockquote":e=>{ys(e,A_,L_,P_)},"editor:toggle-bullet-list":e=>{ys(e,La,Iy,W_)},"editor:toggle-numbered-list":e=>{ys(e,Aa,O_,R_)},"editor:toggle-checklist-status":e=>{let t=On(e),r=t.selection.end===t.selection.start,n=Ii({text:t.text,selection:t.selection}),i=Pt(e,n),a=i.selectedText,o=La.test(a),s=Aa.test(a);!o&&!s?a=Iy(a):o?sd.test(a)?a=V_(a):ld.test(a)?a=K_(a):a=H_(a):ad.test(a)?a=U_(a):od.test(a)?a=$_(a):a=B_(a);let u=Lt(e,a);if(r){let l=a.length-i.selectedText.length;Pt(e,{start:t.selection.start+l,end:t.selection.end+l})}else Pt(e,{start:i.selection.start,end:u.selection.end})}},cd={"(":e=>cn(e,"(",")",!1),"[":e=>cn(e,"[","]",!1,!0),"{":e=>cn(e,"{","}",!1),"'":e=>cn(e,"'","'",!1),'"':e=>cn(e,'"','"',!1)},ud={"*":e=>cn(e,"*","*",!1),_:e=>cn(e,"_","_",!1),"`":e=>cn(e,"`","`",!1),"=":e=>cn(e,"=","=",!0),"~":e=>cn(e,"~","~",!0),$:e=>cn(e,"$","$",!0),"%":e=>cn(e,"%","%",!0)},z_={"(":")","[":"]","{":"}","'":"'",'"':'"',"*":"*",_:"_","`":"`","=":"=","~":"~",$:"$","%":"%"};function Ly(e,t){let r=On(e);if(r.selection.end!==r.selection.start||r.selection.end===r.text.length)return!1;let n=r.text[r.selection.end-1],i=r.text[r.selection.end];if(t[n]&&i===z_[n])return Pt(e,{start:r.selection.end,end:r.selection.end+1}),Lt(e,""),!0}function Py(e){return Ly(e,cd)}function Fy(e){return Ly(e,ud)}function j_(e,t,r){let n=t?" ":" ".repeat(r);return e.split(` +`).map(i=>n+i).join(` +`)}function q_(e,t,r){let n=t?"\\t":" ".repeat(r),i=new RegExp(`^${n}`);return e.split(` +`).map(a=>i.test(a)?a.replace(i,""):a).join(` +`)}function Ny(e,t,r,n){let i=On(e);if(t){let l=Ii(i),c=Pt(e,l);if(Lt(e,q_(c.selectedText,r,n)),i.selection.start===i.selection.end){let d=r?1:n;Pt(e,{start:i.selection.start-d,end:i.selection.end-d})}return!0}let a=Ii(i),o=Pt(e,a),u=j_(o.selectedText,r,n).replace(/^(\s*)(\d+)([.)]\s)/,(l,c,d,f)=>`${c}1${f}`);return Lt(e,u),!0}function Oy(e){let t=On(e);if(t.selection.start!==t.selection.end)return!1;let r=Ii(t),n=e.value.slice(r.start,t.selection.end),i=e.value.slice(r.start,r.end);if(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Pt(e,{start:r.start-1,end:r.end}),Lt(e,` +`),!0;if(/^(\s*\d[.)]\s+(?:\[[^\]]\]\s*)?)$/.test(i))return Pt(e,{start:r.start-1,end:r.end}),Lt(e,` +`),!0;if(La.test(n)){let a=n.match(/^(\s*[-*+]\s+(?:\[[^\]]\]\s*)?)/)[1];return Ta(e,` +${a.replace(/^(\s*[-*+]\s+)\[[^\]]\]/,"$1[ ]")}`),!0}if(Aa.test(n)){let s=n.match(/^(\s*\d+[.)]\s+(?:\[[^\]]\]\s*)?)/)[1].replace(/^(\s*\d+[.)]\s+)\[[^\]]\]/,"$1[ ]").replace(/^(\s*)(\d+)/,(u,l,c)=>`${l}${parseInt(c)+1}`);return Ta(e,` +${s}`),!0}return!1}function Zn(e,t){return dd.Platform.isMobile?e.key==="Enter"&&!0:t.getSetting("new-line-trigger")==="enter"?e.key==="Enter"&&!(e.shiftKey||e.metaKey||e.ctrlKey):e.key==="Enter"&&e.shiftKey}var xr=P.forwardRef(function({onEnter:t,onEscape:r,onSubmit:n,...i},a){let{view:o,stateManager:s}=P.useContext(We),u=app.vault.getConfig("autoPairMarkdown"),l=app.vault.getConfig("autoPairBrackets"),c=app.vault.getConfig("useTab"),d=app.vault.getConfig("tabSize"),f=!!app.vault.getConfig("useMarkdownLinks"),p=Sy({isInputVisible:!0,onEnter:t,onEscape:r,onKeyDown:g=>{if(g.key==="Backspace"){let y=Py(g.target);return y||Fy(g.target)}if(Zn(g,s)){let y=Oy(g.target);if(y)return g.preventDefault(),y}if(g.key==="Tab")return g.preventDefault(),Ny(g.target,g.shiftKey,c,d);if(u){let y=ud[g.key];if(y&&y(g.target))return g.preventDefault(),!0}if(l){if(f&&g.key==="[")return!1;let y=cd[g.key];if(y&&y(g.target))return g.preventDefault(),!0}return!1}});return P.useEffect(()=>{let g=y=>{let b=Ay[y];b&&b(p.ref.current)};return o.emitter.on("hotkey",g),()=>{o.emitter.off("hotkey",g)}},[o]),h(S,null,h("div",{"data-replicated-value":i.value,className:B("grow-wrap")},h("textarea",{"data-ignore-drag":!0,rows:1,className:B("item-input"),...i,...p,ref:g=>{p.ref.current=g,a&&typeof a=="function"?a(g):a&&(a.current=g)}})),dd.Platform.isMobile&&h("button",{onPointerDown:n,className:B("item-submit-button")},A("Submit")))});m();var hd=me(Ry());m();var Sr=me(require("obsidian"));var Y_=["bmp","png","jpg","jpeg","gif","svg"],J_=["mp3","wav","m4a","3gp","flac","ogg","oga"],G_=["mp4","webm","ogv"],Q_=/\u00A0/g,X_=/[!"#$%&()*+,.:;<=>?@^`{|}~/[\]\\]/g;function Hy(e){return e.replace(X_," ").replace(/\s+/g," ").trim()}function zr(e){let r=e.replace(Q_," ").normalize("NFC").split(/\|(.*)/),n=r[0].split(/#(.*)/);return{root:n[0],subpath:n[1]?"#"+n[1]:"",alias:r[1]||""}}function Z_(e,t){if(!e||!t)return null;let r=t.split("#").filter(l=>!!l);if(!r||r.length===0)return null;if(r.length===1){let l=r[0];if(l.startsWith("^")){let c=l.slice(1).toLowerCase(),d=e.blocks;if(d&&d[c]){let f=d[c];return{type:"block",block:f,start:f.position.start.offset,end:f.position.end.offset,startLine:f.position.start.line,endLine:f.position.end.line}}else return null}}let n=e.headings;if(!n||n.length===0)return null;let i=0,a=0,o=0,s=null,u=null;for(;ao&&Hy(l.heading).toLowerCase()===Hy(r[i]).toLowerCase()&&(i++,o=l.level,i===r.length&&(s=l))}return s?{type:"heading",current:s,next:u,start:s.position.start.offset,end:u?u.position.start.offset:null,startLine:s.position.start.line,endLine:u?u.position.end.line:null}:null}function eC(e){e.querySelectorAll(".task-list-item-checkbox").forEach((r,n)=>{r.dataset.checkboxIndex=n.toString()})}function tC(e,t){e.querySelectorAll(".internal-link").forEach(n=>{let i=zr(n.getAttr("href"));t.app.metadataCache.getFirstLinkpathDest(i.root,t.file.path)||n.addClass("is-unresolved")})}function nC(e,t,r){e.empty(),e.createEl("img",{attr:{src:r.app.vault.getResourcePath(t)}},n=>{e.hasAttribute("width")&&n.setAttribute("width",e.getAttribute("width")),e.hasAttribute("height")&&n.setAttribute("height",e.getAttribute("height")),e.hasAttribute("alt")&&n.setAttribute("alt",e.getAttribute("alt"))}),e.addClasses(["image-embed","is-loaded"])}function By(e,t,r){e.empty(),e.createEl("audio",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}}),e.addClasses(["media-embed","is-loaded"])}function rC(e,t,r){e.empty(),e.createEl("video",{attr:{controls:"",src:r.app.vault.getResourcePath(t)}},n=>{let i=()=>{n.removeEventListener("loadedmetadata",i),n.videoWidth===0&&n.videoHeight===0&&(e.empty(),By(e,t,r))};n.addEventListener("loadedmetadata",i)}),e.addClasses(["media-embed","is-loaded"])}async function Ky(e,t,r){let n=r.app.metadataCache.getFileCache(e);if(!n)return null;let i=await r.app.vault.cachedRead(e);if(!t.subpath)return{markdown:i,boundary:null};let a=Z_(n,t.subpath);if(a)return{markdown:i.substring(a.start,a.end===null?void 0:a.end),boundary:a};if(t.subpath)return{markdown:`${A("Unable to find")} ${t.root}${t.subpath}`,boundary:null}}function $y(e,t,r,n){r.getWindow().setTimeout(async()=>{if(!r.plugin.windowRegistry.has(r.getWindow()))return;if(r.plugin.windowRegistry.get(r.getWindow()).viewMap.has(r.id)){let{markdown:a}=await Ky(e,t,r);if(!a)return;a.startsWith(A("Unable to find"))?n>0&&$y(e,t,r,--n):r.plugin.stateManagers.forEach(o=>{o.onFileMetadataChange()})}},2e3)}async function iC(e,t,r,n,i){var u;let{markdown:a,boundary:o}=await Ky(t,r,n);if(!a)return;e.empty();let s=e.createDiv();if(s.addClasses(["markdown-preview-view",B("markdown-preview-view")]),s.createDiv(B("embed-link-wrapper"),l=>{l.createEl("a",{href:e.getAttr("src")||t.basename,cls:`internal-link ${B("embed-link")}`},c=>{(0,Sr.setIcon)(c,"link"),c.setAttr("aria-label",t.basename)})}),await Sr.MarkdownRenderer.renderMarkdown(a,s.createDiv(),t.path,n),e.addClass("is-loaded"),a.startsWith(A("Unable to find"))&&r.subpath&&r.subpath!=="#")$y(t,r,n,4);else{let l=e.findAll(".task-list-item-checkbox");(l==null?void 0:l.length)&&((u=app.metadataCache.getFileCache(t).listItems)==null||u.filter(d=>o?d.position.start.line>=o.startLine&&d.position.end.line<=o.endLine:!0).forEach((d,f)=>{l[f]&&(l[f].dataset.oStart=d.position.start.offset.toString(),l[f].dataset.oEnd=d.position.end.offset.toString(),l[f].dataset.src=t.path)}))}i>0&&await Vy(s,n,--i)}function aC(e,t){e.addClass("is-loaded"),e.empty(),e.createEl("a",{cls:"file-link",href:e.getAttribute("src"),text:t.name},r=>{r.setAttribute("aria-label",A("Open in default app")),r.createSpan({},n=>(0,Sr.setIcon)(n,"lucide-arrow-up-right"))})}function Vy(e,t,r){return Promise.all(e.findAll(".internal-embed").map(async n=>{let i=n.getAttribute("src"),a=zr(i),o=typeof i=="string"&&t.app.metadataCache.getFirstLinkpathDest(a.root,t.file.path);if(o instanceof Sr.TFile)return Y_.contains(o.extension)?nC(n,o,t):J_.contains(o.extension)?By(n,o,t):G_.contains(o.extension)?rC(n,o,t):o.extension==="md"?await iC(n,o,a,t,r):aC(n,o)}))}async function Pa(e,t){let r=e.getWindow().document.body.createDiv();r.detach();try{await Sr.MarkdownRenderer.renderMarkdown(t,r,e.file.path,e),eC(r),tC(r,e),await Vy(r,e,5)}catch(n){console.error(n)}return r}function md(e,t){!t||!e||(e&&!e.firstChild?e.appendChild(t):e.firstChild&&e.firstChild!==t&&e.replaceChild(t,e.firstChild))}var Fa=P.memo(function({className:t,markdownString:r,searchQuery:n,...i}){let{stateManager:a}=P.useContext(We),o=P.useRef(),s=P.useRef(),u=P.useRef();return P.useEffect(()=>{Pa(a.getAView(),r).then(l=>{s.current=l,u.current=new hd.default(l),o.current&&md(o.current,l)}).catch(l=>{a.setError(l),console.error(l)})},[a,r]),P.useEffect(()=>{var l,c;(l=u.current)==null||l.unmark(),n&&n.trim()&&((c=u.current)==null||c.mark(n))},[n]),h("div",{ref:l=>{o.current=l,md(l,s.current)},className:et(["markdown-preview-view",B("markdown-preview-view"),t]),...i})}),Uy=P.memo(function({dom:t,className:r,searchQuery:n,...i}){let{stateManager:a}=P.useContext(We),o=P.useMemo(()=>t?t.cloneNode(!0):createDiv(),[t,a]),s=P.useMemo(()=>new hd.default(o),[o]);return P.useEffect(()=>{s.unmark(),n&&n.trim()&&s.mark(n)},[s,n]),h("div",{ref:u=>{md(u,o)},className:et(["markdown-preview-view",B("markdown-preview-view"),r]),...i})});m();var Na=me(require("obsidian"));function oC(e,t){if(t)return t.from((0,Na.moment)());let r=(0,Na.moment)().startOf("day");if(r.isSame(e,"day"))return A("today");let n=e.diff(r,"day");return n===-1?A("yesterday"):n===1?A("tomorrow"):e.from(r)}function Wy({item:e,stateManager:t}){if(!t.useSetting("show-relative-date")||!e.data.metadata.date)return null;let n=oC(e.data.metadata.date,e.data.metadata.time);return h("span",{className:B("item-metadata-date-relative")},n)}function zy({item:e,stateManager:t,filePath:r,onEditDate:n,onEditTime:i,getDateColor:a}){let o=t.useSetting("hide-date-display"),s=t.useSetting("date-format"),u=t.useSetting("time-format"),l=t.useSetting("date-display-format"),c=t.useSetting("link-date-to-daily-note"),d=P.useMemo(()=>e.data.metadata.date?a(e.data.metadata.date):null,[e.data.metadata.date,a]);if(o||!e.data.metadata.date)return null;let f=e.data.metadata.date.format(s);if(!f)return null;let p=!!e.data.metadata.time,g=e.data.metadata.date.format(l),y=p?e.data.metadata.time.format(u):null,b=f?(0,Na.getLinkpath)(f):null,x=f?t.app.metadataCache.getFirstLinkpathDest(b,r):null,D=b&&c?h("a",{href:b,"data-href":b,className:`internal-link ${x?"":"is-unresolved"}`,target:"blank",rel:"noopener"},g):g,C={};return c||(C["aria-label"]=A("Change date"),C.onClick=n),h("span",{style:d&&{"--date-color":d.color,"--date-background-color":d.backgroundColor},className:et([B("item-metadata-date-wrapper"),{"has-background":!!(d==null?void 0:d.backgroundColor)}])},h("span",{...C,className:`${B("item-metadata-date")} ${c?"":"is-button"}`},D)," ",p&&h("span",{onClick:i,className:`${B("item-metadata-time")} is-button`,"aria-label":A("Change time")},y))}function sC(e){let{stateManager:t,boardModifiers:r}=P.useContext(We),n=zn();return P.useMemo(()=>({onEditDate:o=>{var s;os(o.view,t,{x:o.clientX,y:o.clientY},ss({stateManager:t,boardModifiers:r,item:e,hasDate:!0,path:n}),(s=e.data.metadata.date)==null?void 0:s.toDate())},onEditTime:o=>{ls(o.view,t,{x:o.clientX,y:o.clientY},cs({stateManager:t,boardModifiers:r,item:e,hasTime:!0,path:n}),e.data.metadata.time)}}),[r,n,e,t])}function lC(e,t){let r=0;return e.replace(/^(\s*[-+*]\s+?\[)([^\]])(\]\s+)/gm,(n,i,a,o)=>{let s=n;return r===t&&(a===" "?s=`${i}x${o}`:s=`${i} ${o}`),r++,s})}async function cC(e){let t=app.vault.getAbstractFileByPath(e.dataset.src);if(!(t instanceof jy.TFile))return;let r=await app.vault.cachedRead(t),n=parseInt(e.dataset.oStart),i=parseInt(e.dataset.oEnd),o=r.substring(n,i).replace(/^(.+?)\[(.)\](.+)$/,(s,u,l,c)=>l!==" "?(e.parentElement.removeClass("is-checked"),e.parentElement.dataset.task="",`${u}[ ]${c}`):(e.parentElement.addClass("is-checked"),e.parentElement.dataset.task="x",`${u}[x]${c}`));await app.vault.modify(t,`${r.substring(0,n)}${o}${r.substring(i)}`)}var qy=P.memo(function({item:t,isEditing:r,setIsEditing:n,searchQuery:i}){var H;let[a,o]=P.useState(t.data.titleRaw),{stateManager:s,filePath:u,boardModifiers:l,view:c,getTagColor:d,getDateColor:f}=P.useContext(We),p=s.useSetting("hide-tags-display"),g=zn(),{onEditDate:y,onEditTime:b}=sC(t);P.useEffect(()=>{r&&o(t.data.titleRaw)},[r]);let x=P.useCallback(T=>{if(!Zn(T,s))return T.preventDefault(),s.updateItemContent(t,a).then(K=>{l.updateItem(g,K)}).catch(K=>{s.setError(K),console.error(K)}),n(!1),!0},[s,a,t,g]),D=P.useCallback(()=>{s.updateItemContent(t,a).then(T=>{l.updateItem(g,T)}).catch(T=>{s.setError(T),console.error(T)}),n(!1)},[s,a,t,g]),C=P.useCallback(()=>(n(!1),o(t.data.titleRaw),!0),[t]),L=P.useCallback(T=>{let K=T.target;if(K.hasClass("task-list-item-checkbox")){if(K.dataset.src)return cC(K);let z=parseInt(K.dataset.checkboxIndex,10);s.updateItemContent(t,lC(t.data.titleRaw,z)).then(V=>{l.updateItem(g,V)}).catch(V=>{s.setError(V),console.error(V)})}},[g,l,s,t]);return r?h("div",{className:B("item-input-wrapper")},h(xr,{className:B("item-input"),onChange:T=>o(T.target.value),onEnter:x,onEscape:C,onSubmit:D,value:a,onPaste:T=>{ws(T,s,c.getWindow())}})):h("div",{className:B("item-title")},h(Uy,{className:B("item-markdown"),dom:t.data.dom,searchQuery:i,onPointerDown:L}),h("div",{className:B("item-metadata")},h(Wy,{item:t,stateManager:s}),h(zy,{item:t,stateManager:s,filePath:u,onEditDate:y,onEditTime:b,getDateColor:f}),!p&&!!((H=t.data.metadata.tags)==null?void 0:H.length)&&h("div",{className:B("item-tags")},t.data.metadata.tags.map((T,K)=>{let z=d(T);return h("a",{href:T,key:K,className:`tag ${B("item-tag")} ${T.toLocaleLowerCase().contains(i)?"is-search-match":""}`,style:z&&{"--tag-color":z.color,"--tag-background-color":z.backgroundColor}},h("span",null,T[0]),T.slice(1))}))))});m();var Ds=me(require("obsidian"));var uC=/[\\/:"*?<>|]+/g,dC=/!?\[\[([^\]]*)\.[^\]]+\]\]/g,fC=/!?\[\[([^\]]*)\]\]/g,pC=/!?\[([^\]]*)\]\([^)]*\)/g;function Yy({setIsEditing:e,item:t,path:r,boardModifiers:n,stateManager:i}){return P.useCallback((a,o)=>{if(o)app.workspace.onLinkContextMenu(a,(0,Ds.getLinkpath)(o),i.file.path);else{let s={x:a.clientX,y:a.clientY},u=!!t.data.metadata.date,l=!!t.data.metadata.time,c=new Ds.Menu().addItem(d=>{d.setIcon("lucide-edit").setTitle(A("Edit card")).onClick(()=>e(!0))});c.addItem(d=>{d.setIcon("lucide-file-plus-2").setTitle(A("New note from card")).onClick(async()=>{let f=t.data.title.split(` +`)[0].trim(),p=f.replace(dC,"$1").replace(fC,"$1").replace(pC,"$1").replace(uC," ").trim(),g=i.getSetting("new-note-folder"),y=i.getSetting("new-note-template"),b=g?i.app.vault.getAbstractFileByPath(g):i.app.fileManager.getNewFileParent(i.file.path),x=await i.app.fileManager.createNewMarkdownFile(b,p),D=i.app.workspace.splitActiveLeaf();await D.openFile(x),i.app.workspace.setActiveLeaf(D,!1,!0),await Ip(i,y);let C=t.data.titleRaw.replace(f,i.app.fileManager.generateMarkdownLink(x,i.file.path));i.updateItemContent(t,C).then(L=>{n.updateItem(r,L)}).catch(L=>{i.setError(L),console.error(L)})})}).addItem(d=>{d.setIcon("lucide-link").setTitle(A("Copy link to card")).onClick(()=>{if(t.data.blockId)navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+t.data.blockId)}`);else{let f=Ae(6);navigator.clipboard.writeText(`${this.app.fileManager.generateMarkdownLink(i.file,"","#^"+f)}`),i.updateItemContent(t,`${t.data.titleRaw} ^${f}`).then(p=>{n.updateItem(r,p)}).catch(p=>{i.setError(p),console.error(p)})}})}).addSeparator(),/\n/.test(t.data.titleRaw)&&c.addItem(d=>{d.setIcon("lucide-wrap-text").setTitle(A("Split card")).onClick(async()=>{let f=t.data.titleRaw.split(/[\r\n]+/g).map(g=>g.trim()),p=await Promise.all(f.map(g=>i.getNewItem(g)));n.splitItem(r,p)})}),c.addItem(d=>{d.setIcon("lucide-copy").setTitle(A("Duplicate card")).onClick(()=>n.duplicateEntity(r))}).addItem(d=>{d.setIcon("lucide-list-start").setTitle(A("Insert card before")).onClick(async()=>n.insertItems(r,[await i.getNewItem("",!1,!0)]))}).addItem(d=>{d.setIcon("lucide-list-end").setTitle(A("Insert card after")).onClick(async()=>{let f=[...r];f[f.length-1]=f[f.length-1]+1,n.insertItems(f,[await i.getNewItem("",!1,!0)])})}).addItem(d=>{d.setIcon("lucide-arrow-up").setTitle(A("Move to top")).onClick(()=>n.moveItemToTop(r))}).addItem(d=>{d.setIcon("lucide-arrow-down").setTitle(A("Move to bottom")).onClick(()=>n.moveItemToBottom(r))}).addItem(d=>{d.setIcon("lucide-archive").setTitle(A("Archive card")).onClick(()=>n.archiveItem(r))}).addItem(d=>{d.setIcon("lucide-trash-2").setTitle(A("Delete card")).onClick(()=>n.deleteEntity(r))}).addSeparator().addItem(d=>{d.setIcon("lucide-calendar-check").setTitle(u?A("Edit date"):A("Add date")).onClick(()=>{var f;os(a.view,i,s,ss({stateManager:i,boardModifiers:n,item:t,hasDate:u,path:r}),(f=t.data.metadata.date)==null?void 0:f.toDate())})}),u&&(c.addItem(d=>{d.setIcon("lucide-x").setTitle(A("Remove date")).onClick(()=>{let f=i.getSetting("link-date-to-daily-note"),p=i.getSetting("date-trigger"),g=f?"(?:\\[[^\\]]+\\]\\([^\\)]+\\)|\\[\\[[^\\]]+\\]\\])":"{[^}]+}",y=new RegExp(`(^|\\s)${Ln(p)}${g}`),b=t.data.titleRaw.replace(y,"").trim();i.updateItemContent(t,b).then(x=>{n.updateItem(r,x)}).catch(x=>{i.setError(x),console.error(x)})})}),c.addItem(d=>{d.setIcon("lucide-clock").setTitle(l?A("Edit time"):A("Add time")).onClick(()=>{ls(a.view,i,s,cs({stateManager:i,boardModifiers:n,item:t,hasTime:l,path:r}),t.data.metadata.time)})}),l&&c.addItem(d=>{d.setIcon("lucide-x").setTitle(A("Remove time")).onClick(()=>{let f=i.getSetting("time-trigger"),p=new RegExp(`(^|\\s)${Ln(f)}{([^}]+)}`),g=t.data.titleRaw.replace(p,"").trim();i.updateItemContent(t,g).then(y=>{n.updateItem(r,y)}).catch(y=>{i.setError(y),console.error(y)})})})),c.showAtPosition(s)}},[e,t,r,n,i])}m();var Jy=P.memo(function({isEditing:t,setIsEditing:r,showMenu:n}){let i=P.useMemo(()=>t?{"data-ignore-drag":!0}:{},[t]);return h("div",{...i,className:B("item-postfix-button-wrapper")},t?h("a",{"data-ignore-drag":!0,onPointerDown:a=>{a.preventDefault()},onClick:()=>{r(!1)},className:`${B("item-postfix-button")} is-enabled clickable-icon`,"aria-label":A("Cancel")},h(_t,{name:"lucide-x"})):h("a",{"data-ignore-drag":!0,onPointerDown:a=>a.preventDefault(),onClick:n,className:`${B("item-postfix-button")} clickable-icon`,"aria-label":A("More options")},h(_t,{name:"lucide-more-vertical"})))});m();var Ms=me(require("obsidian"));function Gy({item:e,isSettingsVisible:t,searchQuery:r}){return t||!e.data.metadata.fileMetadata?null:h("div",{className:B("item-metadata-wrapper")},h(mC,{metadata:e.data.metadata.fileMetadata,order:e.data.metadata.fileMetadataOrder,searchQuery:r}))}function Qy(e,t){if(e.ts){let r=t.getSetting("date-display-format");return(0,Ms.moment)(e.ts).format(r)}return null}function Xy(e,t){if(!e.path)return null;let r=app.vault.getAbstractFileByPath(e.path);if(r&&r instanceof Ms.TFile){let n=app.fileManager.generateMarkdownLink(r,t.file.path,e.subpath,e.display);return`${e.embed&&n[0]!=="!"?"!":""}${n}`}return`${e.embed?"!":""}[[${e.path}${e.display?`|${e.display}`:""}]]`}function hC({data:e,searchQuery:t}){let{view:r,stateManager:n}=P.useContext(We);if(Array.isArray(e.value))return h("span",{className:B("meta-value")},e.value.map((s,u,l)=>{let c=`${s}`,d=typeof s=="object"&&!Array.isArray(s)&&(Qy(s,n)||Xy(s,r)),f=c.toLocaleLowerCase().contains(t);return h(S,null,d||e.containsMarkdown?h(Fa,{className:"inline",markdownString:d||c,searchQuery:t}):f?h("span",{className:"is-search-match"},c):c,u{let a=t[i];return h("tr",{key:i,className:B("meta-row")},!a.shouldHideLabel&&h("td",{className:`${B("meta-key")} ${(a.label||i).toLocaleLowerCase().contains(n)?"is-search-match":""}`,"data-key":i},h("span",null,a.label||i)),h("td",{colSpan:a.shouldHideLabel?2:1,className:B("meta-value-wrapper"),"data-value":Array.isArray(a.value)?a.value.join(", "):`${a.value}`},i==="tags"?a.value.map((o,s)=>h("a",{href:o,key:s,className:`tag ${B("item-tag")} ${o.toLocaleLowerCase().contains(n)?"is-search-match":""}`},h("span",null,o[0]),o.slice(1))):h(hC,{data:a,searchQuery:n})))})))});var Zy=P.memo(function({item:t,shouldMarkItemsComplete:r,isMatch:n,searchQuery:i}){let{stateManager:a,boardModifiers:o}=P.useContext(We),[s,u]=P.useState(!1),l=P.useContext(xt);P.useEffect(()=>{let y=()=>{s&&u(!1)};return l.dragManager.emitter.on("dragStart",y),()=>{l.dragManager.emitter.off("dragStart",y)}},[l,s]),P.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]);let c=zn(),d=Yy({boardModifiers:o,item:t,setIsEditing:u,stateManager:a,path:c}),f=P.useCallback(y=>{if(y.target instanceof y.view.HTMLTextAreaElement)return;y.preventDefault(),y.stopPropagation();let b=y.target instanceof y.view.HTMLAnchorElement&&y.target.hasClass("internal-link")?y.target.dataset.href:void 0;d(y,b)},[d]),p=P.useCallback(()=>{u(!0)},[u]),g=P.useMemo(()=>s?{"data-ignore-drag":!0}:{},[s]);return h("div",{onContextMenu:f,onDblClick:p,className:B("item-content-wrapper"),...g},h("div",{className:B("item-title-wrapper"),...g},h(fv,{boardModifiers:o,item:t,path:c,shouldMarkItemsComplete:r,stateManager:a}),h(qy,{isEditing:s,item:t,searchQuery:n?i:void 0,setIsEditing:u}),h(Jy,{isEditing:s,setIsEditing:u,showMenu:d})),h(Gy,{searchQuery:n?i:void 0,isSettingsVisible:s,item:t}))}),gd=P.memo(function(t){let r=P.useRef(null),n=P.useRef(null),i=P.useContext(go),{itemIndex:a,...o}=t;Mi(n,n);let s=i?o.item.data.titleSearch.contains(i):!1,u=rv(o.item);return i&&(s?u.push("is-search-hit"):u.push("is-search-miss")),h("div",{ref:n,className:B("item-wrapper")},h("div",{ref:r,className:et([B("item"),...u])},t.isStatic?h(Zy,{...o,isMatch:s,searchQuery:i}):h(gr,{elementRef:r,measureRef:n,id:t.item.id,index:a,data:t.item},h(Zy,{...o,isMatch:s,searchQuery:i}))))}),eb=P.memo(function({isStatic:t,items:r,shouldMarkItemsComplete:n}){return h(S,null,r.map((i,a)=>h(gd,{key:i.id,item:i,itemIndex:a,shouldMarkItemsComplete:n,isStatic:t})))});m();m();var gC=function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(c){try{l(n.next(c))}catch(d){o(d)}}function u(c){try{l(n.throw(c))}catch(d){o(d)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((n=n.apply(e,t||[])).next())})};function Is(e){let t=0,r=0,n=e;do t+=n.offsetTop||0,r+=n.offsetLeft||0,n=n.offsetParent;while(n);return{top:t,left:r}}var tb=class{constructor(t){this.element=t}getHorizontalScroll(){return this.element.scrollLeft}getVerticalScroll(){return this.element.scrollTop}getMaxHorizontalScroll(){return this.element.scrollWidth-this.element.clientWidth}getMaxVerticalScroll(){return this.element.scrollHeight-this.element.clientHeight}getHorizontalElementScrollOffset(t,r){return Is(t).left-Is(r).left}getVerticalElementScrollOffset(t,r){return Is(t).top-Is(r).top}scrollTo(t,r){this.element.scrollLeft=t,this.element.scrollTop=r}},nb=class{constructor(){this.element=window}getHorizontalScroll(){return window.scrollX||document.documentElement.scrollLeft}getVerticalScroll(){return window.scrollY||document.documentElement.scrollTop}getMaxHorizontalScroll(){return Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth)-window.innerWidth}getMaxVerticalScroll(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)-window.innerHeight}getHorizontalElementScrollOffset(t){return(window.scrollX||document.documentElement.scrollLeft)+t.getBoundingClientRect().left}getVerticalElementScrollOffset(t){return(window.scrollY||document.documentElement.scrollTop)+t.getBoundingClientRect().top}scrollTo(t,r){window.scrollTo(t,r)}},er={elements:[],cancelMethods:[],add:(e,t)=>{er.elements.push(e),er.cancelMethods.push(t)},remove:(e,t)=>{let r=er.elements.indexOf(e);r>-1&&(t&&er.cancelMethods[r](),er.elements.splice(r,1),er.cancelMethods.splice(r,1))}},rb=typeof window!="undefined",vC={cancelOnUserAction:!0,easing:e=>--e*e*e+1,elementToScroll:rb?window:null,horizontalOffset:0,maxDuration:3e3,minDuration:250,speed:500,verticalOffset:0};function yC(e,t={}){return gC(this,void 0,void 0,function*(){if(rb){if(!window.Promise)throw"Browser doesn't support Promises, and animated-scroll-to depends on it, please provide a polyfill."}else return new Promise(L=>{L(!1)});let r,n,i,a=Object.assign(Object.assign({},vC),t),o=a.elementToScroll===window,s=!!a.elementToScroll.nodeName;if(!o&&!s)throw"Element to scroll needs to be either window or DOM element.";let u=o?document.documentElement:a.elementToScroll;getComputedStyle(u).getPropertyValue("scroll-behavior")==="smooth"&&console.warn(`${u.tagName} has "scroll-behavior: smooth" which can mess up with animated-scroll-to's animations`);let c=o?new nb:new tb(a.elementToScroll);if(e instanceof Element){if(i=e,s&&(!a.elementToScroll.contains(i)||a.elementToScroll.isSameNode(i)))throw"options.elementToScroll has to be a parent of scrollToElement";r=c.getHorizontalElementScrollOffset(i,a.elementToScroll),n=c.getVerticalElementScrollOffset(i,a.elementToScroll)}else if(typeof e=="number")r=c.getHorizontalScroll(),n=e;else if(Array.isArray(e)&&e.length===2)r=e[0]===null?c.getHorizontalScroll():e[0],n=e[1]===null?c.getVerticalScroll():e[1];else throw`Wrong function signature. Check documentation. +Available method signatures are: + animateScrollTo(y:number, options) + animateScrollTo([x:number | null, y:number | null], options) + animateScrollTo(scrollToElement:Element, options)`;r+=a.horizontalOffset,n+=a.verticalOffset;let d=c.getMaxHorizontalScroll(),f=c.getHorizontalScroll();r>d&&(r=d);let p=r-f,g=c.getMaxVerticalScroll(),y=c.getVerticalScroll();n>g&&(n=g);let b=n-y,x=Math.abs(Math.round(p/1e3*a.speed)),D=Math.abs(Math.round(b/1e3*a.speed)),C=x>D?x:D;return Ca.maxDuration&&(C=a.maxDuration),new Promise((L,H)=>{p===0&&b===0&&L(!0),er.remove(c.element,!0);let T,K=()=>{se(),cancelAnimationFrame(T),L(!1)};er.add(c.element,K);let z=ie=>ie.preventDefault(),V=a.cancelOnUserAction?K:z,Z=a.cancelOnUserAction?{passive:!0}:{passive:!1},J=["wheel","touchstart","keydown","mousedown"],se=()=>{J.forEach(ie=>{c.element.removeEventListener(ie,V,Z)})};J.forEach(ie=>{c.element.addEventListener(ie,V,Z)});let G=Date.now(),Q=()=>{var ie=Date.now()-G,he=ie/C;let pe=Math.round(f+p*a.easing(he)),ge=Math.round(y+b*a.easing(he));ie{this.activeScroll.size===0&&(this.scrollState=zl(this.scrollEl),this.handleEntityRegistration())};this.onDragEnd=()=>{this.activeScroll.clear()};this.handleBeginDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||(this.activeScroll.set(t,r),this.handleDragScroll())};this.handleUpdateDragScroll=({scrollEntitySide:t,scrollStrength:r})=>{this.isDoneScrolling(t)||this.activeScroll.set(t,r)};this.handleEndDragScroll=({scrollEntitySide:t})=>{this.activeScroll.delete(t)};this.dndManager=t,this.instanceId=Ae(),this.scopeId=r,this.triggerTypes=n,this.scrollState=on,this.parent=i,this.activeScroll=new Map,this.pollForNodes(a)}pollForNodes(t){!t()||this.parent&&!this.parent.observerHandlers?this.dndManager.win.requestAnimationFrame(()=>this.pollForNodes(t)):this.initNodes(t())}initNodes(t){this.scrollEl=t,this.scrollEl.dataset.hitboxid=this.instanceId,this.scrollEl.dataset.scrollid=this.instanceId,this.top=this.createScrollEntity("top"),this.right=this.createScrollEntity("right"),this.bottom=this.createScrollEntity("bottom"),this.left=this.createScrollEntity("left"),this.bindScrollHandlers(),this.observerHandlers=new Map,this.observer=new IntersectionObserver(r=>{r.forEach(n=>{var a;let i=(a=n.target.dataset)==null?void 0:a.hitboxid;if(i&&this.observerHandlers.has(i)){let o=this.observerHandlers.get(i);o&&o(n)}})},{root:t,threshold:.1}),this.scrollEl.addEventListener("scroll",this.onScroll,{passive:!0,capture:!1}),this.dndManager.emitter.on("scrollResize",this.onScroll),this.scrollEl.win.setTimeout(()=>{this.onScroll()}),this.dndManager.observeResize(this.scrollEl),this.parent?this.parent.registerObserverHandler(this.instanceId,this.scrollEl,r=>{r.isIntersecting?this.handleEntityRegistration():this.handleEntityUnregistration()}):this.handleEntityRegistration()}destroy(){var t;this.handleEntityUnregistration(),this.observer.disconnect(),this.unbindScrollHandlers(),this.scrollEl.removeEventListener("scroll",this.onScroll),this.dndManager.emitter.off("scrollResize",this.onScroll),(t=this.parent)==null||t.unregisterObserverHandler(this.instanceId,this.scrollEl),this.dndManager.unobserveResize(this.scrollEl)}handleEntityRegistration(){Ps.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t),i=this.dndManager.scrollEntities.has(n),a=this.isDoneScrolling(t);!a&&!i?this.dndManager.registerScrollEntity(n,this[t],r):a&&i&&this.dndManager.unregisterScrollEntity(n,r)})}handleEntityUnregistration(){Ps.forEach(t=>{let r=Ze(this.scrollEl),n=this.getId(t);this.dndManager.unregisterScrollEntity(n,r)})}registerObserverHandler(t,r,n){this.observerHandlers.set(t,n),this.observer.observe(r)}unregisterObserverHandler(t,r){this.observerHandlers.delete(t),this.observer.unobserve(r)}bindScrollHandlers(){Ps.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.on("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.on("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.on("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.on("dragEnd",this.onDragEnd)})}unbindScrollHandlers(){Ps.forEach(t=>{let r=this.getId(t);this.dndManager.dragManager.emitter.off("beginDragScroll",this.handleBeginDragScroll,r),this.dndManager.dragManager.emitter.off("updateDragScroll",this.handleUpdateDragScroll,r),this.dndManager.dragManager.emitter.off("endDragScroll",this.handleEndDragScroll,r),this.dndManager.dragManager.emitter.off("dragEnd",this.onDragEnd)})}isDoneScrolling(t){switch(t){case"top":return this.scrollState.y===0;case"right":return this.scrollState.x===this.scrollState.maxX;case"bottom":return this.scrollState.y===this.scrollState.maxY;case"left":return this.scrollState.x===0}}handleDragScroll(){this.activeScroll.size!==0&&this.scrollEl.win.requestAnimationFrame(()=>{let t={left:0,top:0};this.activeScroll.forEach((r,n)=>{if(this.isDoneScrolling(n))return this.activeScroll.delete(n);let i=["left","right"].includes(n)?"left":"top",a=["right","bottom"].includes(n);t[i]=a?Math.max(Ls-Ls*r/35,0):Math.min(-Ls+Ls*r/35,0)}),this.scrollEl.scrollBy(t),this.scrollState=zl(this.scrollEl),this.handleEntityRegistration(),this.handleDragScroll()})}getId(t){return`${this.instanceId}-${t}`}getPath(t){var r,n,i,a;switch(t){case"right":return[...((r=this.parent)==null?void 0:r.getPath())||[],1];case"bottom":return[...((n=this.parent)==null?void 0:n.getPath())||[],2];case"left":return[...((i=this.parent)==null?void 0:i.getPath())||[],3]}return[...((a=this.parent)==null?void 0:a.getPath())||[],0]}getScrollShift(){var r,n,i;let t=(r=this.parent)==null?void 0:r.getScrollShift();return{x:Xe((n=this.parent)==null?void 0:n.scrollState.x)+Xe(t==null?void 0:t.x),y:Xe((i=this.parent)==null?void 0:i.scrollState.y)+Xe(t==null?void 0:t.y)}}createScrollEntity(t){var n,i;let r=this;return{scopeId:this.scopeId,entityId:r.getId(t),initial:Ul(this.scrollEl.getBoundingClientRect(),((n=this.parent)==null?void 0:n.scrollState)||on,((i=this.parent)==null?void 0:i.getScrollShift())||Pn,t),getParentScrollState(){var a;return((a=r.parent)==null?void 0:a.scrollState)||on},getParentScrollShift(){var a;return((a=r.parent)==null?void 0:a.getScrollShift())||Pn},recalcInitial(){var a,o;this.initial=Ul(r.scrollEl.getBoundingClientRect(),((a=r.parent)==null?void 0:a.scrollState)||on,((o=r.parent)==null?void 0:o.getScrollShift())||Pn,t)},getHitbox(){return So(this.initial[0],this.initial[1],this.initial[2],this.initial[3],this.getParentScrollState(),this.getParentScrollShift())},getPath(){return r.getPath(t)},getData(){return{id:r.getId(t),type:bC,side:t,accepts:r.triggerTypes||[],scrollContainer:r.scrollEl,win:Ze(r.scrollEl)}}}}};function ib({scrollRef:e,triggerTypes:t,children:r}){let n=P.useContext(xt),i=P.useContext(mr),a=P.useContext(sa),o=P.useRef(),s=P.useMemo(()=>{if(n){o.current&&o.current.destroy();let u=new vd(n,i,t||[],a,()=>e.current);return o.current=u,u}return null},[n,i,e,t,a]);return P.useEffect(()=>()=>{var u;return(u=o.current)==null?void 0:u.destroy()},[]),s?h(sa.Provider,{value:s},r):null}m();function ab({children:e}){let t=P.useMemo(()=>new oa,[]);return h(la.Provider,{value:t},e)}function ob(e,t){let r=P.useContext(mr),n=P.useRef(null),i=P.useContext(la),a=o=>{n.current=o,n.current&&o.win.requestAnimationFrame(()=>{let s=i.getScrollState(e);s&&(s.x!==0||s.y!==0)&&(n.current.scrollLeft=s.x,n.current.scrollTop=s.y)})};return P.useEffect(()=>{let o=n.current;if(!o)return;let s=ds(o.win,u=>{let l=u.target;i.setScrollState(r,e,{x:l.scrollLeft,y:l.scrollTop})});return o.addEventListener("scroll",s),()=>{o.removeEventListener("scroll",s)}},[i,e,t]),{setRef:a,scrollRef:n}}function Fs({className:e,children:t,triggerTypes:r,isStatic:n,id:i,index:a}){let{setRef:o,scrollRef:s}=ob(i,a);return h("div",{ref:o,className:et([e,B("scroll-container")])},n?t:h(ib,{scrollRef:s,triggerTypes:r},t))}m();m();var yd={width:0,height:0},wC=100,bd=class{constructor(t,r,n){this.hitboxDimensions=yd;this.handleDragStart=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n})=>{let i=t==null?void 0:t.entityId,a=i?this.sortables.has(i):null;!t||!a||!n||(this.setSortState(!0),this.hitboxDimensions=jl(n,r),this.activatePlaceholder(this.hitboxDimensions,ln.none),this.sortables.forEach(([o,s,u])=>{let l=ra(t.getPath(),o.getPath()),c=o.entityId;if(l===an.Self)return this.hidden.add(c),this.hideDraggingEntity(u);l===an.After&&(this.shifted.has(c)||this.shifted.add(c),this.shiftEl(s,ln.none,this.hitboxDimensions))}))};this.dragEndTimeout=0;this.handleDragEnd=({primaryIntersection:t,dragPosition:r,dragOriginHitbox:n,dragEntity:i})=>{if(!this.isSorting||!r||!n||!i){if(!t&&i&&this.sortables.has(i.entityId))return this.resetSelf({maintainHidden:!1});if(t&&i){let s=(t==null?void 0:t.getHitbox())||n,u=Ti({position:r,destination:{x:s[0],y:s[1]}});return this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!1})},u)}return this.resetSelf({maintainHidden:!0})}this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout);let a=(t==null?void 0:t.getHitbox())||n,o=i.scopeId==="htmldnd"?0:Ti({position:r,destination:{x:a[0],y:a[1]}});this.dragEndTimeout=this.dndManager.win.setTimeout(()=>{let s=i.entityId.split(":::").pop(),u=t==null?void 0:t.entityId.split(":::").pop();t&&this.sortables.has(t.entityId)&&u!==s&&this.dndManager.onDrop(i,t),this.resetSelf({maintainHidden:!1,shiftTransition:ln.none,placeholderTransition:ln.none})},o),this.hitboxDimensions=yd};this.dragEnterTimeout=0;this.handleDragEnter=({dragEntity:t,dragEntityMargin:r,dragOriginHitbox:n,primaryIntersection:i})=>{let a=i==null?void 0:i.entityId,o=a?this.sortables.has(a):null;if(!t||!i||!o||!n){!o&&this.isSorting&&this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0});return}t.entityId!==i.entityId&&(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragEnterTimeout=this.dndManager.win.setTimeout(()=>{this.setSortState(!0),this.hitboxDimensions=jl(n,r),this.activatePlaceholder(this.hitboxDimensions,ln.placeholder),this.sortables.forEach(([s,u])=>{let l=ra(i.getPath(),s.getPath()),c=s.entityId;!this.hidden.has(c)&&(l===an.Self||l===an.After)?this.shifted.has(c)||(this.shifted.add(c),this.shiftEl(u,ln.outOfTheWay,this.hitboxDimensions)):this.shifted.has(c)&&(this.shifted.delete(c),this.resetEl(u))})},10))};this.dragLeaveTimeout=0;this.handleDragLeave=()=>{!this.isSorting||(this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEnterTimeout),this.dragLeaveTimeout=this.dndManager.win.setTimeout(()=>{this.resetSelf({maintainHidden:!0,maintainPlaceholder:!0})},wC),this.hitboxDimensions=yd)};this.instanceId=Ae(),this.dndManager=t,this.sortables=new Map,this.shifted=new Set,this.hidden=new Set,this.isSorting=!1,this.axis=r,this.placeholder=null,this.sortListeners=n?[n]:[],t.dragManager.emitter.on("dragStart",this.handleDragStart),t.dragManager.emitter.on("dragEnd",this.handleDragEnd),t.dragManager.emitter.on("dragEnter",this.handleDragEnter),t.dragManager.emitter.on("dragLeave",this.handleDragLeave)}destroy(){this.dndManager.win.clearTimeout(this.dragLeaveTimeout),this.dndManager.win.clearTimeout(this.dragEndTimeout),this.dndManager.dragManager.emitter.off("dragStart",this.handleDragStart),this.dndManager.dragManager.emitter.off("dragEnd",this.handleDragEnd),this.dndManager.dragManager.emitter.off("dragEnter",this.handleDragEnter),this.dndManager.dragManager.emitter.off("dragLeave",this.handleDragLeave)}registerSortable(t,r,n,i){let a=r.getData().type==="placeholder";this.sortables.set(t,[r,n,i]),a?(this.placeholder=[r,n,i],i.dataset.axis=this.axis,Dn(i,"transition",ln.none)):Dn(n,"transition",ln.none)}unregisterSortable(t){this.sortables.delete(t)}resetSelf({maintainHidden:t,maintainPlaceholder:r,shiftTransition:n,placeholderTransition:i}){this.isSorting&&this.setSortState(!1),this.isPlaceholderActive&&!r&&this.deactivatePlaceholder(i),this.shifted.size>0&&(this.shifted.forEach(a=>{if(this.sortables.has(a)){let[,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.shifted.clear()),!t&&this.hidden.size>0&&(this.hidden.forEach(a=>{if(this.sortables.has(a)){let[,,o]=this.sortables.get(a);this.resetEl(o,n)}}),this.hidden.clear())}activatePlaceholder(t,r){if(this.placeholder){let n=this.axis==="horizontal",[,,i]=this.placeholder;Dn(i,"transition",r),Dn(i,n?"width":"height",`${n?t.width:t.height}px`),this.isPlaceholderActive=!0}}deactivatePlaceholder(t=ln.placeholder){if(this.placeholder){let[,,r]=this.placeholder;Dn(r,"transition",t),fs(r,"width"),fs(r,"height"),this.isPlaceholderActive=!1}}hideDraggingEntity(t){Dn(t,"display","none")}shiftEl(t,r,n){let i=this.axis==="horizontal"?`translate3d(${n.width}px, 0, 0)`:`translate3d(0, ${n.height}px, 0)`;Dn(t,"transition",r),Dn(t,"transform",i)}resetEl(t,r=ln.outOfTheWay){Dn(t,"transition",r),Dn(t,"transform","translate3d(0, 0, 0)"),fs(t,"display")}addSortNotifier(t){this.sortListeners.push(t)}removeSortNotifier(t){this.sortListeners=this.sortListeners.filter(r=>r!==t)}setSortState(t){this.isSorting!==t&&(this.isSorting=t,this.sortListeners.forEach(r=>r(t)))}};function Li({axis:e,children:t,onSortChange:r}){let n=P.useContext(xt),i=P.useRef(),a=P.useMemo(()=>{if(n){i.current&&i.current.destroy();let o=new bd(n,e,r);return i.current=o,o}return null},[n,e,r]);return P.useEffect(()=>()=>{var o;return(o=i.current)==null?void 0:o.destroy()},[]),a?h(Eo.Provider,{value:a},t):null}m();function Pi({index:e,accepts:t,className:r,isStatic:n}){let i=P.useRef(null),a=P.useRef(null),o=P.useMemo(()=>({id:Ae(),type:"placeholder",accepts:t}),t);return h("div",{ref:a,className:et([r,B("placeholder")])},h("div",{ref:i},!n&&h(gr,{elementRef:i,measureRef:a,id:o.id,index:e,data:o})))}m();m();m();Ar();Ar();function sb(e,t){for(var r in t)e[r]=t[r];return e}function wd(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Ed(e){this.props=e}function EC(e,t){function r(i){var a=this.props.ref,o=a==i.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,i)||!o:wd(this.props,i)}function n(i){return this.shouldComponentUpdate=r,h(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(Ed.prototype=new ht).isPureReactComponent=!0,Ed.prototype.shouldComponentUpdate=function(e,t){return wd(this.props,e)||wd(this.state,t)};var lb=fe.__b;fe.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),lb&&lb(e)};var kC=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function xC(e){function t(r){var n=sb({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=kC,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var cb=function(e,t){return e==null?null:wt(wt(e).map(t))},SC={map:cb,forEach:cb,count:function(e){return e?wt(e).length:0},only:function(e){var t=wt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:wt},_C=fe.__e;fe.__e=function(e,t,r,n){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),i.__c(e,t)}_C(e,t,r,n)};var ub=fe.unmount;function Ns(){this.__u=0,this.t=null,this.__b=null}function db(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function CC(e){var t,r,n;function i(a){if(t||(t=e()).then(function(o){r=o.default||o},function(o){n=o}),n)throw n;if(!r)throw t;return h(r,a)}return i.displayName="Lazy",i.__f=!0,i}function Oa(){this.u=null,this.o=null}fe.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),ub&&ub(e)},(Ns.prototype=new ht).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var i=db(n.__v),a=!1,o=function(){a||(a=!0,r.__R=null,i?i(s):s())};r.__R=o;var s=function(){if(!--n.__u){if(n.state.__e){var l=n.state.__e;n.__v.__k[0]=function d(f,p,g){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(y){return d(y,p,g)}),f.__c&&f.__c.__P===p&&(f.__e&&g.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=g)),f}(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__e:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),e.then(o,o)},Ns.prototype.componentWillUnmount=function(){this.t=[]},Ns.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function a(o,s,u){return o&&(o.__c&&o.__c.__H&&(o.__c.__H.__.forEach(function(l){typeof l.__c=="function"&&l.__c()}),o.__c.__H=null),(o=sb({},o)).__c!=null&&(o.__c.__P===u&&(o.__c.__P=s),o.__c=null),o.__k=o.__k&&o.__k.map(function(l){return a(l,s,u)})),o}(this.__b,r,n.__O=n.__P)}this.__b=null}var i=t.__e&&h(S,null,e.fallback);return i&&(i.__h=null),[h(S,null,t.__e?null:e.children),i]};var fb=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),xn(h(TC,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function MC(e,t){var r=h(DC,{__v:e,i:t});return r.containerInfo=t,r}(Oa.prototype=new ht).__e=function(e){var t=this,r=db(t.__v),n=t.o.get(e);return n[0]++,function(i){var a=function(){t.props.revealOrder?(n.push(i),fb(t,e,n)):i()};r?r(a):a()}},Oa.prototype.render=function(e){this.u=null,this.o=new Map;var t=wt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},Oa.prototype.componentDidUpdate=Oa.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){fb(e,r,t)})};var pb=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,IC=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,AC=typeof document!="undefined",LC=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function PC(e,t,r){return t.__k==null&&(t.textContent=""),xn(e,t),typeof r=="function"&&r(),e?e.__c:null}function FC(e,t,r){return Qi(e,t),typeof r=="function"&&r(),e?e.__c:null}ht.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(ht.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var hb=fe.event;function NC(){}function OC(){return this.cancelBubble}function RC(){return this.defaultPrevented}fe.event=function(e){return hb&&(e=hb(e)),e.persist=NC,e.isPropagationStopped=OC,e.isDefaultPrevented=RC,e.nativeEvent=e};var mb,gb={configurable:!0,get:function(){return this.class}},vb=fe.vnode;fe.vnode=function(e){var t=e.type,r=e.props,n=r;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var a in n={},r){var o=r[a];AC&&a==="children"&&t==="noscript"||a==="value"&&"defaultValue"in r&&o==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&o===!0?o="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+t)&&!LC(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():i&&IC.test(a)?a=a.replace(/[A-Z0-9]/,"-$&").toLowerCase():o===null&&(o=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),n[a]&&(a="oninputCapture")),n[a]=o)}t=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.value.indexOf(s.props.value)!=-1})),t=="select"&&n.defaultValue!=null&&(n.value=wt(r.children).forEach(function(s){s.props.selected=n.multiple?n.defaultValue.indexOf(s.props.value)!=-1:n.defaultValue==s.props.value})),e.props=n,r.class!=r.className&&(gb.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",gb))}e.$$typeof=pb,vb&&vb(e)};var yb=fe.__r;fe.__r=function(e){yb&&yb(e),mb=e.__c};var HC={ReactCurrentDispatcher:{current:{readContext:function(e){return mb.__n[e.__c].props.value}}}};function BC(e){return h.bind(null,e)}function bb(e){return!!e&&e.$$typeof===pb}function KC(e){return bb(e)?so.apply(null,arguments):e}function $C(e){return!!e.__k&&(xn(null,e),!0)}function VC(e){return e&&(e.base||e.nodeType===1&&e)||null}var UC=function(e,t){return e(t)},WC=function(e,t){return e(t)};var at={useState:sr,useReducer:Zi,useEffect:Sn,useLayoutEffect:Lr,useRef:Xt,useImperativeHandle:co,useMemo:lr,useCallback:cr,useContext:uo,useDebugValue:fo,version:"17.0.2",Children:SC,render:PC,hydrate:FC,unmountComponentAtNode:$C,createPortal:MC,createElement:h,createContext:ai,createFactory:BC,cloneElement:KC,createRef:ri,Fragment:S,isValidElement:bb,findDOMNode:VC,Component:ht,PureComponent:Ed,memo:EC,forwardRef:xC,flushSync:WC,unstable_batchedUpdates:UC,StrictMode:S,Suspense:Ns,SuspenseList:Oa,lazy:CC,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:HC};var zC=function(){if(typeof window=="undefined"||typeof window.addEventListener!="function")return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),r=function(){return null};return window.addEventListener("test",r,t),window.removeEventListener("test",r,t),e},jC="ignore-onclickoutside",wb=function(t,r){var n;return(n=t.classList)==null?void 0:n.contains(r)},Eb=function(t,r){for(var n=t.target||t;n;){if(Array.isArray(r)){if(r.some(function(i){return wb(n,i)}))return!0}else if(wb(n,r))return!0;n=n.parentElement}return!1},qC=function(t){return document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY},kb=function(t){return t.includes("touch")&&zC()?{passive:!0}:!1},YC=function(t,r){var n=r===void 0?{}:r,i=n.refs,a=n.disabled,o=n.eventTypes,s=o===void 0?["mousedown","touchstart"]:o,u=n.excludeScrollbar,l=n.ignoreClass,c=l===void 0?jC:l,d=n.detectIFrame,f=d===void 0?!0:d,p=sr([]),g=p[0],y=p[1],b=Xt(t);b.current=t;var x=cr(function(D){return y(function(C){return[].concat(C,[{current:D}])})},[]);return Sn(function(){if(!(!(i!=null&&i.length)&&!g.length)){var D=function(){var K=[];return(i||g).forEach(function(z){var V=z.current;return V&&K.push(V)}),K},C=function(K){!Eb(K,c)&&!(u&&qC(K))&&D().every(function(z){return!z.contains(K.target)})&&b.current(K)},L=function(K){return setTimeout(function(){var z=document,V=z.activeElement;(V==null?void 0:V.tagName)==="IFRAME"&&!Eb(V,c)&&!D().includes(V)&&b.current(K)},0)},H=function(){s.forEach(function(K){return document.removeEventListener(K,C,kb(K))}),f&&window.removeEventListener("blur",L)};if(a){H();return}return s.forEach(function(T){return document.addEventListener(T,C,kb(T))}),f&&window.addEventListener("blur",L),function(){return H()}}},[g,c,u,a,f,JSON.stringify(s)]),x},Fi=YC;function kd({addItems:e,isInputVisible:t,setIsInputVisible:r,hideButton:n}){let[i,a]=P.useState(""),{stateManager:o,view:s}=P.useContext(We),u=P.useRef(),l=Fi(()=>{r(!1)},{ignoreClass:B("ignore-click-outside")}),c=P.useCallback(()=>{a(""),r(!1)},[]),d=async g=>{try{e(await Promise.all(g.map(y=>o.getNewItem(y))))}catch(y){o.setError(y)}},f=g=>{if(!Zn(g,o)){g.preventDefault();let y=i.trim();y&&(d([y]),a(""))}},p=()=>{let g=i.trim();g&&(d([g]),a(""))};return t?h("div",{className:B("item-form"),ref:l},h("div",{className:B("item-input-wrapper")},h(xr,{ref:u,className:B("item-input"),placeholder:A("Card title..."),onEnter:f,onEscape:c,onSubmit:p,value:i,onChange:g=>{a(g.target.value)},onPaste:g=>{ws(g,o,s.getWindow())}}))):n?null:h("div",{className:B("item-button-wrapper")},h("button",{className:B("new-item-button"),onClick:()=>r(!0),onDragOver:g=>{bs(o,g.dataTransfer)&&r(!0)}},h("span",{className:B("item-button-plus")},"+")," ",A("Add a card")))}m();var Pb=me(Et());m();function Os(e,t){let r=t.end-t.start;return e.slice(0,t.start)+"\0".repeat(r)+e.slice(t.end)}function xb(e){return e.replace(/\s*\0+\s*/g," ").trim()}function Ra(e){return e.trim().replace(/(\r\n|\n)/g,"
    ")}function Rs(e){return e.replace(/
    /g,` +`).trim()}function jr(e){e=Rs(e);let t=e.match(/^(.*?)\s*\((\d+)\)$/);return t==null?{title:e,maxItems:0}:{title:t[1],maxItems:Number(t[2])}}m();function Sb(e){return h("svg",{...e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},h("path",{fill:"currentColor",d:"M5 3h2v2H5zm0 4h2v2H5zm0 4h2v2H5zm4-8h2v2H9zm0 4h2v2H9zm0 4h2v2H9z"}))}m();var xd=me(Et()),_b=me(require("obsidian"));var Cb={delete:{description:A("Are you sure you want to delete this list and all its cards?"),confirm:A("Yes, delete list")},archive:{description:A("Are you sure you want to archive this list and all its cards?"),confirm:A("Yes, archive list")},"archive-items":{description:A("Are you sure you want to archive all cards in this list?"),confirm:A("Yes, archive cards")}};function Tb({action:e,cancel:t,onAction:r,lane:n}){return P.useEffect(()=>{e&&n.children.length===0&&r()},[e,n.children.length]),!e||e&&n.children.length===0?null:h("div",{className:B("action-confirm-wrapper")},h("div",{className:B("action-confirm-text")},Cb[e].description),h("div",null,h("button",{onClick:r,className:B("confirm-action-button")},Cb[e].confirm),h("button",{onClick:t,className:B("cancel-action-button")},"Cancel")))}function Db({setIsEditing:e,path:t,lane:r}){let{stateManager:n,boardModifiers:i}=P.useContext(We),[a,o]=P.useState(null);return{settingsMenu:P.useMemo(()=>new _b.Menu().addItem(u=>{u.setIcon("lucide-edit-3").setTitle(A("Edit list")).onClick(()=>e(!0))}).addItem(u=>{u.setIcon("lucide-archive").setTitle(A("Archive cards")).onClick(()=>o("archive-items"))}).addSeparator().addItem(u=>{u.setIcon("lucide-move-vertical").setTitle(A("Sort by card text")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===Mn.TitleAsc;l.sort((d,f)=>c?f.data.titleSearch.localeCompare(d.data.titleSearch):d.data.titleSearch.localeCompare(f.data.titleSearch)),i.updateLane(t,(0,xd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===Mn.TitleAsc?Mn.TitleDsc:Mn.TitleAsc}}}))})}).addItem(u=>{u.setIcon("lucide-move-vertical").setTitle(A("Sort by date")).onClick(()=>{let l=r.children.slice(),c=r.data.sorted===Mn.DateAsc?-1:1;l.sort((d,f)=>{let p=d.data.metadata.time||d.data.metadata.date,g=f.data.metadata.time||f.data.metadata.date;return p&&!g?-1*c:g&&!p?1*c:!p&&!g?0:(p.isBefore(g)?-1:1)*c}),i.updateLane(t,(0,xd.default)(r,{children:{$set:l},data:{sorted:{$set:r.data.sorted===Mn.DateAsc?Mn.DateDsc:Mn.DateAsc}}}))})}).addSeparator().addItem(u=>{u.setIcon("corner-left-down").setTitle(A("Insert list before")).onClick(()=>i.insertLane(t,{...kr,id:Ae(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}}))}).addItem(u=>{u.setIcon("lucide-corner-right-down").setTitle(A("Insert list after")).onClick(()=>{let l=[...t];l[l.length-1]=l[l.length-1]+1,i.insertLane(l,{...kr,id:Ae(),children:[],data:{title:"",shouldMarkItemsComplete:!1,forceEditMode:!0}})})}).addSeparator().addItem(u=>{u.setIcon("lucide-archive").setTitle(A("Archive list")).onClick(()=>o("archive"))}).addItem(u=>{u.setIcon("lucide-trash-2").setTitle(A("Delete list")).onClick(()=>o("delete"))}),[n,o,t,r]),confirmAction:a,setConfirmAction:o}}m();var Mb=me(Et());function Ib({lane:e,lanePath:t}){let{boardModifiers:r}=P.useContext(We);return h("div",{className:B("lane-setting-wrapper")},h("div",{className:B("checkbox-wrapper")},h("div",{className:B("checkbox-label")},A("Mark cards in this list as complete")),h("div",{onClick:()=>r.updateLane(t,(0,Mb.default)(e,{data:{$toggle:["shouldMarkItemsComplete"]}})),className:`checkbox-container ${e.data.shouldMarkItemsComplete?"is-enabled":""}`})))}m();var Ab=me(require("obsidian"));function Lb({itemCount:e,maxItems:t,isEditing:r,setIsEditing:n,title:i,onChange:a}){let{stateManager:o}=P.useContext(We),s=P.useRef(),u=o.getSetting("hide-card-count"),l=p=>{Zn(p,o)||(p.preventDefault(),r&&n(!1))},c=()=>{r&&n(!1)},d=()=>{r&&n(!1)};P.useEffect(()=>{if(r&&s.current){let p=s.current;s.current.focus(),p.selectionStart=p.selectionEnd=p.value.length}},[r]);let f=[B("lane-title-count")];return t&&t{p.preventDefault(),p.stopPropagation();let g=p.target instanceof p.view.HTMLAnchorElement&&p.target.hasClass("internal-link")?p.target.dataset.href:void 0;g&&o.app.workspace.onLinkContextMenu(p,(0,Ab.getLinkpath)(g),o.file.path)}},h(Fa,{markdownString:i})))),!r&&!u&&h("div",{className:et(f)},e,t>0&&h(S,null,h("span",{className:B("lane-title-count-separator")},"/"),h("span",{className:B("lane-title-count-limit")},t))))}var Fb=P.memo(function({lane:t,laneIndex:r,dragHandleRef:n,setIsItemInputVisible:i}){let{boardModifiers:a,stateManager:o}=P.useContext(We),[s,u]=P.useState(!1),l=zn(r),{settingsMenu:c,confirmAction:d,setConfirmAction:f}=Db({setIsEditing:u,path:l,lane:t});return P.useEffect(()=>{t.data.forceEditMode&&u(!0)},[t.data.forceEditMode]),h(S,null,h("div",{onDblClick:()=>u(!0),className:B("lane-header-wrapper")},h("div",{className:B("lane-grip"),ref:n},h(Sb,null)),h(Lb,{isEditing:s,setIsEditing:u,itemCount:t.children.length,maxItems:t.data.maxItems,title:t.data.title,onChange:p=>{let{title:g,maxItems:y}=jr(p.target.value);a.updateLane(l,(0,Pb.default)(t,{data:{title:{$set:g},maxItems:{$set:y}}}))}}),h("div",{className:B("lane-settings-button-wrapper")},s?h("a",{onClick:()=>{u(!1)},"aria-label":A("Close"),className:`${B("lane-settings-button")} is-enabled clickable-icon`},h(_t,{name:"lucide-x"})):h(S,null,i&&h("a",{"aria-label":A("Add a card"),className:`${B("lane-settings-button")} clickable-icon`,onClick:()=>{i(!0)},onDragOver:p=>{bs(o,p.dataTransfer)&&i(!0)}},h(_t,{name:"lucide-plus-circle"})),h("a",{"aria-label":A("More options"),className:`${B("lane-settings-button")} clickable-icon`,onClick:p=>{c.showAtPosition({x:p.clientX,y:p.clientY})}},h(_t,{name:"lucide-more-vertical"}))))),s&&h(Ib,{lane:t,lanePath:l}),d&&h(Tb,{lane:t,action:d,onAction:()=>{switch(d){case"archive":a.archiveLane(l);break;case"archive-items":a.archiveLaneItems(l);break;case"delete":a.deleteEntity(l);break}f(null)},cancel:()=>f(null)}))});var Ob=[Je.Item],Sd=P.memo(function({isStatic:t,lane:r,laneIndex:n}){let{stateManager:i,boardModifiers:a,view:o}=P.useContext(We),[s,u]=P.useState(!1),l=zn(n),c=i.useSetting("lane-width"),d=i.useSetting("new-card-insertion-method"),f=!!r.data.shouldMarkItemsComplete,p=c?{width:`${c}px`}:void 0,g=P.useRef(null),y=P.useRef(null),b=P.useRef(null),[x,D]=P.useState(!1),C=d==="prepend-compact",L=C||d==="prepend";Mi(y,b);let H=z=>{a[L?"prependItems":"appendItems"]([...l,r.children.length-1],z.map(V=>(0,Nb.default)(V,{data:{isComplete:{$set:f}}}))),o.getWindow().setTimeout(()=>{var Z;let V=(Z=g.current)==null?void 0:Z.getElementsByClassName(B("lane-items"));V.length&&As([0,L?0:V[0].scrollHeight],{elementToScroll:V[0],speed:200,minDuration:150,easing:J=>J===1?1:1-Math.pow(2,-10*J)})})},T=h(S,null,h(eb,{items:r.children,isStatic:t,shouldMarkItemsComplete:f}),h(Pi,{accepts:Ob,index:r.children.length,isStatic:t})),K=h(Fs,{id:r.id,index:n,className:et([B("lane-items"),B("vertical")]),triggerTypes:Ob,isStatic:t},t?T:h(Li,{onSortChange:D,axis:"vertical"},T));return h("div",{ref:y,className:et([B("lane-wrapper"),{"is-sorting":x}]),style:p},h("div",{"data-count":r.children.length,ref:g,className:et([B("lane"),{"will-prepend":L}])},h(Fb,{dragHandleRef:b,laneIndex:n,lane:r,setIsItemInputVisible:C?u:void 0}),L&&h(kd,{addItems:H,hideButton:C,isInputVisible:s,setIsInputVisible:u}),t?K:h(gr,{elementRef:g,measureRef:y,id:r.id,index:n,data:r},K),!L&&h(kd,{addItems:H,isInputVisible:s,setIsInputVisible:u})))}),Rb=P.memo(function({lanes:t}){return h(S,null,t.map((r,n)=>h(Sd,{lane:r,laneIndex:n,key:r.id})))});m();m();var Hb=me(require("obsidian"));m();function Hs(){return{events:{},emit(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[e],a=this.events[n];if(!i&&!a){console.warn("Event emitted with no handler",e,r);return}r&&a&&a.forEach(o=>o(t)),i&&i.forEach(o=>o(t))},on(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];return i||(this.events[n]=i=[]),i.push(t),()=>this.off(e,t,r)},off(e,t,r){let n=`${String(e)}${r||""}`,i=this.events[n];i&&(i.splice(i.indexOf(t)>>>0,1),i.length===0&&delete this.events[n])}}}var _d=class{constructor(t,r){this.scrollResizeDebounce=0;this.handleResize=t=>{let r=!1;t.forEach(n=>{let i=Ze(n.target);this.win===i&&(r=!0,n.target.dataset.scrollid&&(this.win.clearTimeout(this.scrollResizeDebounce),this.scrollResizeDebounce=this.win.setTimeout(()=>{var a;((a=this.emitter.events.scrollResize)==null?void 0:a.length)&&this.emitter.emit("scrollResize",null)},50)))}),!!r&&(this.hitboxEntities.forEach(n=>{n.recalcInitial()}),this.scrollEntities.forEach(n=>{n.recalcInitial()}))};this.win=t,this.emitter=Hs(),this.hitboxEntities=new Map,this.scrollEntities=new Map,this.onDrop=r,this.resizeObserver=new ResizeObserver((0,Hb.debounce)(this.handleResize,100,!0)),this.dragManager=new Fu(t,this.emitter,this.hitboxEntities,this.scrollEntities)}destroy(){this.resizeObserver.disconnect()}observeResize(t){!t.instanceOf(HTMLElement)||this.resizeObserver.observe(t,{box:"border-box"})}unobserveResize(t){!t.instanceOf(HTMLElement)||this.resizeObserver.unobserve(t)}registerHitboxEntity(t,r,n){n===this.win&&this.hitboxEntities.set(t,r)}registerScrollEntity(t,r,n){n===this.win&&this.scrollEntities.set(t,r)}unregisterHitboxEntity(t,r){r===this.win&&this.hitboxEntities.delete(t)}unregisterScrollEntity(t,r){r===this.win&&this.scrollEntities.delete(t)}};function Bs({win:e,children:t,onDrop:r}){let n=P.useRef(r);n.current=r;let i=P.useMemo(()=>new _d(e,(a,o)=>n.current(a,o)),[]);return P.useEffect(()=>()=>{i.destroy()},[i]),h(xt.Provider,{value:i},h(ab,null,t))}m();function Cd(e,t,r,n,i,a){let o=[r[0]-n[0],r[1]-n[1],r[2]+n[2],r[3]+n[3]];return{transform:a||`translate3d(${e.x-t.x+o[0]}px, ${e.y-t.y+o[1]}px, 0px)`,width:`${o[2]-o[0]}px`,height:`${o[3]-o[1]}px`,transition:i}}function Ks({children:e}){let t=P.useContext(xt),[r,n]=P.useState(),[i,a]=P.useState();return P.useEffect(()=>{if(!t)return;let o=Pp,s=({dragEntity:c,dragOrigin:d,dragPosition:f,dragEntityMargin:p})=>{!c||!f||!d||(o=c.getHitbox(),n(c),a(Cd(f,d,o,p)))},u=({dragOrigin:c,dragPosition:d,dragEntityMargin:f})=>{!d||!c||a(Cd(d,c,o,f))},l=({dragOrigin:c,primaryIntersection:d,dragPosition:f,dragEntityMargin:p})=>{if(d&&f&&c){let g=d.getHitbox(),y={x:g[0],y:g[1]},b=Ti({position:f,destination:y}),x=ln.drop(b),D=sv.drop(y);a(Cd(f,c,o,p,x,D)),activeWindow.setTimeout(()=>{n(void 0),a(void 0)},b)}else n(void 0),a(void 0)};return t.dragManager.emitter.on("dragStart",s),t.dragManager.emitter.on("dragMove",u),t.dragManager.emitter.on("dragEnd",l),()=>{t.dragManager.emitter.off("dragStart",s),t.dragManager.emitter.off("dragMove",u),t.dragManager.emitter.off("dragEnd",l)}},[t]),!r||!i?null:P.createPortal(e(r,i),r.getData().win.document.body)}function Bb(){let e=P.useContext(xt),[t,r]=P.useState(!1);return P.useEffect(()=>{let n=()=>{r(!0)},i=({primaryIntersection:a,dragPosition:o})=>{let s=(a==null?void 0:a.getHitbox())||[0,0],u={x:s[0],y:s[1]},l=Ti({position:o||u,destination:u});activeWindow.setTimeout(()=>{r(!1)},l)};return e.dragManager.emitter.on("dragStart",n),e.dragManager.emitter.on("dragEnd",i),()=>{e.dragManager.emitter.off("dragStart",n),e.dragManager.emitter.off("dragEnd",i)}},[e]),t}m();var Ha=me(Et()),Kb=me(require("obsidian"));function $s(e){let t=r=>{let n=e.getSetting("archive-date-format"),i=e.getSetting("archive-date-separator"),a=e.getSetting("append-archive-date"),o=[(0,Kb.moment)().format(n)];i&&o.push(i),o.push(r.data.titleRaw),a&&o.reverse();let s=o.join(" ");return e.updateItemContent(r,s)};return{appendItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Hl(i,r,n))},prependItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>Dp(i,r,n))},insertItems:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>pr(i,r,n))},splitItem:(r,n)=>{n.forEach(i=>e.app.workspace.trigger("kanban:card-added",e.file,i)),e.setState(i=>pr(Fr(i,r),r,n))},moveItemToTop:r=>{e.setState(n=>aa(n,r,[r[0],0]))},moveItemToBottom:r=>{e.setState(n=>{let i=r[0],a=n.children[i];return aa(n,r,[i,a.children.length])})},addLane:r=>{e.app.workspace.trigger("kanban:lane-added",e.file,r),e.setState(n=>Hl(n,[],[r]))},insertLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-added",e.file,n),e.setState(i=>pr(i,r,[n]))},updateLane:(r,n)=>{e.app.workspace.trigger("kanban:lane-updated",e.file,n),e.setState(i=>Bl(i,r,{children:{[r[r.length-1]]:{$set:n}}}))},archiveLane:r=>{e.setState(async n=>{let i=mt(n,r),a=i.children;e.app.workspace.trigger("kanban:lane-archived",e.file,i);try{return(0,Ha.default)(Fr(n,r),{data:{archive:{$unshift:e.getSetting("archive-with-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},archiveLaneItems:r=>{e.setState(async n=>{let a=mt(n,r).children;e.app.workspace.trigger("kanban:lane-cards-archived",e.file,a);try{return(0,Ha.default)(vo(n,r,{children:{$set:[]}}),{data:{archive:{$unshift:e.getSetting("archive-with-date")?await Promise.all(a.map(t)):a}}})}catch(o){return e.setError(o),n}})},deleteEntity:r=>{e.setState(n=>{let i=mt(n,r);return e.app.workspace.trigger(`kanban:${i.type}-deleted`,e.file,i),Fr(n,r)})},updateItem:(r,n)=>{e.setState(i=>{let a=mt(i,r);return e.app.workspace.trigger("kanban:card-updated",e.file,a,n),Bl(i,r,{children:{[r[r.length-1]]:{$set:n}}})})},archiveItem:r=>{e.setState(async n=>{let i=mt(n,r);e.app.workspace.trigger("kanban:card-archived",e.file,r,i);try{return(0,Ha.default)(Fr(n,r),{data:{archive:{$push:[e.getSetting("archive-with-date")?await t(i):i]}}})}catch(a){return e.setError(a),n}})},duplicateEntity:r=>{e.setState(n=>{let i=mt(n,r);e.app.workspace.trigger(`kanban:${i.type}-duplicated`,e.file,r,i);let a=(0,Ha.default)(i,{id:{$set:Ae()}});return pr(n,r,[a])})}}}function Vb(e,t){return h(GC,{win:e,plugin:t})}var JC=P.memo(function({view:t}){return P.createPortal(t.getPortal(),t.contentEl)});function GC({win:e,plugin:t}){let r=t.useViewState(e),n=r.map(a=>h(JC,{key:a.id,view:a})),i=P.useCallback((a,o)=>{if(!a||!o)return;if(a.scopeId==="htmldnd"){let y=a.getData(),b=t.getStateManagerFromViewID(y.viewId,y.win),x=o.getPath(),D=mt(b.state,x.slice(0,-1));(L=>Promise.all(L.map(H=>b.getNewItem(H))))(y.content).then(L=>{let H=L.map(T=>{var K;return(0,$b.default)(T,{data:{isComplete:{$set:!!((K=D==null?void 0:D.data)==null?void 0:K.shouldMarkItemsComplete)}}})});return b.setState(T=>pr(T,x,H))}).catch(L=>{b.setError(L),console.error(L)});return}let s=a.getPath(),u=o.getPath(),[,l]=a.scopeId.split(":::"),[,c]=o.scopeId.split(":::"),d=a.getData(),f=o.getData();if(l===c){let y=t.getStateManagerFromViewID(a.scopeId,d.win);return t.app.workspace.trigger("kanban:card-moved",y.file,s,u,d),y.setState(b=>{var H;let x=!1,D=aa(b,s,u,T=>T.type===Je.Item?(x=!0,$l(b,s,b,u,T)):T);if(!x)return D;let C=u.slice(0,-1),L=mt(b,C);return((H=L==null?void 0:L.data)==null?void 0:H.sorted)!==void 0?vo(D,C,{data:{$unset:["sorted"]}}):D})}let p=t.getStateManagerFromViewID(a.scopeId,d.win),g=t.getStateManagerFromViewID(o.scopeId,f.win);p.setState(y=>{let b=mt(y,s);return g.setState(x=>{let D=b.type===Je.Item?$l(y,s,x,u,b):b;return pr(x,u,[D])}),Fr(y,s)})},[r]);if(n.length)return h(Bs,{win:e,onDrop:i},n,h(Ks,null,(a,o)=>{let[s,u]=P.useMemo(()=>{if(a.scopeId==="htmldnd")return[null,null];let l=a.getData(),c=t.getKanbanView(a.scopeId,l.win),d=t.stateManagers.get(c.file),f=mt(d.state,a.getPath()),p=$s(d),g=c.file.path;return[f,{view:c,stateManager:d,boardModifiers:p,filePath:g,getTagColor:bo(d),getDateColor:wo(d)}]},[a]);return(s==null?void 0:s.type)===Je.Lane?h(We.Provider,{value:u},h("div",{className:B("drag-container"),style:o},h(Sd,{lane:s,laneIndex:0,isStatic:!0}))):(s==null?void 0:s.type)===Je.Item?h(We.Provider,{value:u},h("div",{className:B("drag-container"),style:o},h(gd,{item:s,itemIndex:0,isStatic:!0}))):h("div",null)}))}m();var Aw=me(Et()),Lw=me(require("obsidian"));m();var Qb=me(Et()),Xb=me(require("obsidian")),Us=me(vc());m();function Vs({id:e,children:t}){let r=P.useContext(la),n=P.useMemo(()=>e||Ae(),[e]);return P.useEffect(()=>()=>{r.unmountScope(e)},[e]),h(mr.Provider,{value:n},t)}m();var gn="kanban-plugin",Ub;(function(t){t[t.List=0]="List"})(Ub||(Ub={}));var Wb=`**${A("Complete")}**`,zb="***",Td=["---","",`${gn}: basic`,"","---","",""].join(` +`);function jb(e){return["","","%% kanban:settings","```",JSON.stringify(e),"```","%%"].join(` +`)}function qb(e,t,r){let n=e.innerText.trim();if((t==null?void 0:t.length)&&(n+=" "+t.join(" ")),r){let i=Object.keys(r).join(" "),a=Object.values(r).map(o=>Array.isArray(o.value)?o.value.join(" "):o.value.toString()).join(" ");n+=" "+i+" "+a}return n.toLocaleLowerCase()}function QC(e,t,r){var n,i,a;if(e.plugins.enabledPlugins.has("dataview")&&((a=(i=(n=e.plugins)==null?void 0:n.plugins)==null?void 0:i.dataview)==null?void 0:a.api))return e.plugins.plugins.dataview.api.page(t.path,r.path)}function Yb(e,t){if(!e)return null;if(e[t])return e[t];let r=t.split("."),n=e;for(let i of r)if(typeof n=="object"&&i in n)n=n[i];else{n=null;break}return n}function Dd(e,t){let r=e.getSetting("metadata-keys");if(!r.length)return{};if(!t)return{};let n=e.app.metadataCache.getFileCache(t),i=QC(e.app,t,e.file);if(!n&&!i)return{};let a={},o={},s={},u=[],l=!1;return r.forEach(c=>{var p;if(s[c.metadataKey])return;if(s[c.metadataKey]=!0,c.metadataKey==="tags"){let g=(n==null?void 0:n.tags)||[];if(Array.isArray((p=n==null?void 0:n.frontmatter)==null?void 0:p.tags)&&(g=[].concat(g,n.frontmatter.tags.map(y=>({tag:`#${y}`})))),(g==null?void 0:g.length)===0)return;u.push(c.metadataKey),a.tags={...c,value:g.map(y=>y.tag).filter(y=>o[y]?!1:(o[y]=!0,!0))},l=!0;return}let d=Yb(n==null?void 0:n.frontmatter,c.metadataKey),f=Yb(i,c.metadataKey);if(d)u.push(c.metadataKey),a[c.metadataKey]={...c,value:d},l=!0;else if(f){let g=i[c.metadataKey],y=Array.isArray(g)?g:g.values||g.val||g;if(y===g&&!Array.isArray(g)&&typeof y=="object")y={...g};else if(!Array.isArray(y)&&typeof y!="string"&&typeof y!="number")return;u.push(c.metadataKey),a[c.metadataKey]={...c,value:y},l=!0}}),{fileMetadata:l?a:void 0,fileMetadataOrder:u}}function Jb(e,t){return!e&&t?!0:!["metadata-keys","date-trigger","time-trigger","link-date-to-daily-note","date-format","time-format","hide-date-in-title","hide-tags-in-title","hide-card-count","tag-colors","date-colors"].every(n=>e[n]===t[n])}m();function Gb({onNewLane:e,closeLaneForm:t}){let{boardModifiers:r,stateManager:n}=P.useContext(We),[i,a]=P.useState(!1),[o,s]=P.useState(""),u=P.useRef(),l=Fi(()=>{t()},{ignoreClass:B("ignore-click-outside")});P.useLayoutEffect(()=>{var d;(d=u.current)==null||d.focus()},[]);let c=()=>{r.addLane({...kr,id:Ae(),children:[],data:{...jr(o),shouldMarkItemsComplete:i}}),s(""),a(!1),e()};return h("div",{ref:l,className:B("lane-form-wrapper")},h("div",{className:B("lane-input-wrapper")},h(xr,{ref:u,className:B("lane-input"),onChange:d=>s(d.target.value),onEnter:d=>{Zn(d,n)||(d.preventDefault(),c())},onSubmit:()=>{c()},onEscape:t,value:o})),h("div",{className:B("checkbox-wrapper")},h("div",{className:B("checkbox-label")},A("Mark cards in this list as complete")),h("div",{onClick:()=>a(!i),className:`checkbox-container ${i?"is-enabled":""}`})),h("div",{className:B("lane-input-actions")},h("button",{className:B("lane-action-add"),onClick:c},A("Add list")),h("button",{className:B("lane-action-cancel"),onClick:t},A("Cancel"))))}var XC=[Je.Item,Je.Lane],ZC=[Je.Lane],Zb=({view:e,stateManager:t})=>{let r=t.useState(),n=Bb(),i=P.useRef(null),a=P.useRef(null),[o,s]=P.useState(""),[u,l]=P.useState(!1),[c,d]=P.useState(""),[f,p]=P.useState((r==null?void 0:r.children.length)===0),g=t.file.path,y=t.useSetting("max-archive-size"),b=t.useSetting("date-colors"),x=t.useSetting("tag-colors"),D=P.useCallback(()=>{(r==null?void 0:r.children.length)>0&&p(!1)},[r==null?void 0:r.children.length]);P.useEffect(()=>{(r==null?void 0:r.children.length)===0&&!t.hasError()&&p(!0)},[r==null?void 0:r.children.length,t]);let C=P.useCallback(()=>{var V;(V=i.current)==null||V.win.setTimeout(()=>{var J;let Z=(J=i.current)==null?void 0:J.getElementsByClassName(B("board"));(Z==null?void 0:Z.length)&&As([Z[0].scrollWidth,0],{elementToScroll:Z[0],speed:300,minDuration:150,easing:se=>se===1?1:1-Math.pow(2,-10*se)})})},[]);P.useEffect(()=>{let V=J=>{J==="editor:open-search"&&l(se=>!se)},Z=()=>{p(!0)};return e.emitter.on("hotkey",V),e.emitter.on("showLaneForm",Z),()=>{e.emitter.off("hotkey",V),e.emitter.off("showLaneForm",Z)}},[e]),P.useEffect(()=>{var V;u&&((V=a.current)==null||V.focus())},[u]),P.useEffect(()=>{let V=e.getWindow(),Z=o.trim(),J;return Z?J=V.setTimeout(()=>{d(Z)},250):d(""),()=>{V.clearTimeout(J)}},[o,e]),P.useEffect(()=>{y===void 0||y===-1||typeof y=="number"&&(r==null?void 0:r.data.archive.length)>y&&t.setState(V=>(0,Qb.default)(V,{data:{archive:{$set:V.data.archive.slice(y*-1)}}}))},[r==null?void 0:r.data.archive.length,y]);let L=P.useMemo(()=>$s(t),[t]),H=P.useCallback(V=>{let Z=V.target;Z.tagName==="A"&&Z.hasClass("internal-link")&&e.app.workspace.trigger("hover-link",{event:V,source:gn,hoverParent:e,targetEl:Z,linktext:Z.getAttr("href"),sourcePath:e.file.path})},[e]),T=P.useCallback(async V=>{if(V.type==="auxclick"||V.button===2)return;let Z=V.target,J=Z.tagName==="A"?Z:Z.closest("a");if(!!J){if(J.hasClass("file-link")){V.preventDefault();let se=J.getAttribute("href"),G=zr(se),Q=typeof se=="string"&&e.app.metadataCache.getFirstLinkpathDest(G.root,e.file.path);if(!Q)return;t.app.openWithDefaultApp(Q.path);return}if(J.hasClass("internal-link")){V.preventDefault();let se=J.getAttr("href"),G=V.button===1||V.ctrlKey||V.metaKey;if(J.hasClass("is-unresolved")&&(0,Us.appHasDailyNotesPluginLoaded)()){let ie=t.getSetting("date-format"),he=(0,Xb.moment)(se,ie,!0);if(he.isValid()){try{let pe=await(0,Us.createDailyNote)(he);await(G?app.workspace.getLeaf(!0):app.workspace.getLeaf(!1)).openFile(pe,{active:!0})}catch(pe){console.error(pe),t.setError(pe)}return}}t.app.workspace.openLinkText(se,g,G);return}if(J.hasClass("tag")){V.preventDefault(),t.app.internalPlugins.getPluginById("global-search").instance.openGlobalSearch(`tag:${J.getAttr("href")}`);return}J.hasClass("external-link")&&(V.preventDefault(),window.open(J.getAttr("href"),"_blank"))}},[t,g]),K=P.useMemo(()=>({view:e,stateManager:t,boardModifiers:L,filePath:g,getTagColor:bo(t),getDateColor:wo(t)}),[e,t,L,g,b,x]),z=cv(t);return r==null?h("div",{className:B("loading")},h("div",{className:"sk-pulse"})):r.data.errors.length>0?h("div",null,h("div",null,"Error:"),r.data.errors.map((V,Z)=>h("div",{key:Z},h("div",null,V.description),h("pre",null,V.stack)))):h(Vs,{id:e.id},h(We.Provider,{value:K},h(go.Provider,{value:c?c.toLocaleLowerCase():null},h("div",{ref:i,className:et([Kl,{"something-is-dragging":n}]),onMouseOver:H,onPointerDown:T,onClick:T,onAuxClick:T,...z},(f||r.children.length===0)&&h(Gb,{onNewLane:C,closeLaneForm:D}),u&&h("div",{className:B("search-wrapper")},h("input",{ref:a,value:o,onChange:V=>{s(V.target.value)},onKeyDown:V=>{V.key==="Escape"&&(s(""),d(""),V.target.blur(),l(!1))},type:"text",className:B("filter-input"),placeholder:A("Search...")}),h("a",{className:`${B("search-cancel-button")} clickable-icon`,onClick:()=>{s(""),d(""),l(!1)},"aria-label":A("Cancel")},h(_t,{name:"lucide-x"}))),h(Fs,{id:e.id,className:et([B("board"),B("horizontal"),{"is-adding-lane":f}]),triggerTypes:XC},h("div",null,h(Li,{axis:"horizontal"},h(Rb,{lanes:r.children}),h(Pi,{className:B("lane-placeholder"),accepts:ZC,index:r.children.length}))))))))};m();var Dw=me(Et()),He=me(require("obsidian"));m();var tw=me(ew()),zs=me(Et()),_r=me(require("obsidian"));var js="@",qs="@@";function eT(e){let t=[];return _r.Vault.recurseChildren(e.vault.getRoot(),r=>{r instanceof _r.TFolder&&t.push({value:r.path,label:r.path,selected:!1,disabled:!1})}),t}function tT(e,t){let r=[],n=t?e.vault.getAbstractFileByPath(t):null;return(!n||!(n instanceof _r.TFolder))&&(n=e.vault.getRoot()),_r.Vault.recurseChildren(n,i=>{i instanceof _r.TFile&&r.push({value:i.path,label:i.basename,selected:!1,disabled:!1})}),r}function nw(e){let{templateFolder:t,templatesEnabled:r,templaterPlugin:n}=Vl(e),i=tT(e,t),a=eT(e),o="";return!r&&!n&&(o=A("Note: No template plugins are currently enabled.")),{templateFiles:i,vaultFolders:a,templateWarning:o}}function Id({choices:e,key:t,warningText:r,local:n,placeHolderStr:i,manager:a}){return o=>{o.controlEl.createEl("select",{},s=>{s.win.setTimeout(()=>{let u=e,[l,c]=a.getSetting(t,n);if(c){let p=e.findIndex(y=>y.value===c),g=e[p];u=(0,zs.default)(u,{$splice:[[p,1]],$unshift:[(0,zs.default)(g,{placeholder:{$set:!0},value:{$set:""},label:{$apply:y=>`${y} (${A("default")})`}})]})}else u=(0,zs.default)(u,{$unshift:[{placeholder:!0,value:"",label:i,selected:!1,disabled:!1}]});let d=new tw.default(s,{placeholder:!0,position:"bottom",searchPlaceholderValue:A("Search..."),searchEnabled:u.length>10,choices:u}).setChoiceByValue("");l&&typeof l=="string"&&d.setChoiceByValue(l);let f=p=>{let g=p.detail.value;g?a.applySettingsUpdate({[t]:{$set:g}}):a.applySettingsUpdate({$unset:[t]})};s.addEventListener("change",f),a.cleanupFns.push(()=>{d.destroy(),s.removeEventListener("change",f)})}),r&&o.descEl.createDiv({},u=>{u.createEl("strong",{text:r})})})}}m();var qr=me(Et());function rw({isStatic:e,itemIndex:t,item:r,toggleShouldHideLabel:n,toggleContainsMarkdown:i,deleteKey:a,updateKey:o,updateLabel:s}){let u=P.useRef(null),l=P.useRef(null),c=P.useRef(null);Mi(l,c);let d=h("div",{className:B("setting-controls-wrapper")},h("div",{className:B("setting-input-wrapper")},h("div",null,h("div",{className:B("setting-item-label")},A("Metadata key")),h("input",{type:"text",value:r.data.metadataKey,onChange:f=>o(f.target.value)})),h("div",null,h("div",{className:B("setting-item-label")},A("Display label")),h("input",{type:"text",value:r.data.label,onChange:f=>s(f.target.value)}))),h("div",{className:B("setting-toggle-wrapper")},h("div",null,h("div",{className:`checkbox-container ${r.data.shouldHideLabel?"is-enabled":""}`,onClick:n,"aria-label":A("Hide label")}),h("div",{className:B("setting-item-label")},A("Hide label"))),h("div",null,h("div",{className:`checkbox-container ${r.data.containsMarkdown?"is-enabled":""}`,onClick:i,"aria-label":A("Field contains markdown")}),h("div",{className:B("setting-item-label")},A("Field contains markdown")))));return h("div",{ref:l,className:B("setting-item-wrapper")},h("div",{ref:u,className:B("setting-item")},e?d:h(gr,{elementRef:u,measureRef:l,id:r.id,index:t,data:r},d),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:a,"aria-label":A("Delete")},h(_t,{name:"lucide-trash-2"})),h("div",{className:"mobile-option-setting-drag-icon clickable-icon","aria-label":A("Drag to rearrange"),ref:c},h(_t,{name:"lucide-grip-horizontal"})))))}function nT({onChange:e,inputValue:t,keys:r,setKeys:n}){let i=a=>{e(a),n(a)};return{updateKey:a=>o=>{i((0,qr.default)(r,{[a]:{data:{metadataKey:{$set:o}}}}))},updateLabel:a=>o=>{i((0,qr.default)(r,{[a]:{data:{label:{$set:o}}}}))},toggleShouldHideLabel:a=>()=>{i((0,qr.default)(r,{[a]:{data:{$toggle:["shouldHideLabel"]}}}))},toggleContainsMarkdown:a=>()=>{i((0,qr.default)(r,{[a]:{data:{$toggle:["containsMarkdown"]}}}))},deleteKey:a=>()=>{i((0,qr.default)(r,{$splice:[[a,1]]}))},newKey:()=>{i((0,qr.default)(r,{$push:[{...ms,id:Ae(),data:{metadataKey:t,label:"",shouldHideLabel:!1,containsMarkdown:!1}}]}))},moveKey:(a,o)=>{let s=a.getPath(),u=o.getPath(),l=s[s.length-1],c=u[u.length-1];if(l===c)return;let d=r.slice(),[f]=d.splice(l,1);d.splice(c,0,f),i(d)}}}var rT=[Je.MetadataSetting];function iT({keys:e,portalContainer:t}){return P.createPortal(h(Ks,null,(r,n)=>{let a=r.getPath()[0],o=e[a];return h("div",{className:B("drag-container"),style:n},h(rw,{item:o,itemIndex:a,updateKey:ci,updateLabel:ci,toggleShouldHideLabel:ci,toggleContainsMarkdown:ci,deleteKey:ci,isStatic:!0}))}),t)}function aT({scrollEl:e}){let t=P.useContext(xt);return P.useEffect(()=>{let r=0,n=()=>{e.win.clearTimeout(r),r=e.win.setTimeout(()=>{t.hitboxEntities.forEach(i=>{i.recalcInitial()})},100)};return e.addEventListener("scroll",n,{passive:!0,capture:!1}),()=>{e.removeEventListener("scroll",n)}},[e,t]),null}function oT(e){let[t,r]=P.useState(e.dataKeys),[n,i]=P.useState(""),{getShouldIMEBlockAction:a,...o}=yo(),s=Ze(e.scrollEl),{updateKey:u,updateLabel:l,toggleShouldHideLabel:c,toggleContainsMarkdown:d,deleteKey:f,newKey:p,moveKey:g}=nT({onChange:e.onChange,inputValue:n,keys:t,setKeys:r,win:s});return h(S,null,h(Bs,{win:s,onDrop:g},h(aT,{scrollEl:e.scrollEl}),h(Vs,null,h(Li,{axis:"vertical"},t.map((y,b)=>h(rw,{key:y.id,item:y,itemIndex:b,updateKey:u(b),updateLabel:l(b),toggleShouldHideLabel:c(b),toggleContainsMarkdown:d(b),deleteKey:f(b)})),h(Pi,{accepts:rT,index:t.length}))),h(iT,{keys:t,portalContainer:e.portalContainer})),h("div",{className:B("setting-key-input-wrapper")},h("input",{placeholder:A("Metadata key"),type:"text",value:n,onChange:y=>i(y.target.value),onKeyDown:y=>{if(!a()){if(y.key==="Enter"){p(),i("");let b=y.target;b.win.setTimeout(()=>{b.scrollIntoView()});return}y.key==="Escape"&&(i(""),y.target.blur())}},...o}),h("button",{onClick:y=>{p(),i("");let b=y.target;b.win.setTimeout(()=>{b.scrollIntoView()})}},A("Add key"))))}function iw(e,t,r,n){P.render(h(oT,{dataKeys:r,scrollEl:t,onChange:n,portalContainer:ur(e)}),e)}function aw(e){P.unmountComponentAtNode(e)}m();m();var sT={grad:.9,turn:360,rad:360/(2*Math.PI)},tr=function(e){return typeof e=="string"?e.length>0:typeof e=="number"},Ct=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r+0},vn=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e>t?e:t},ow=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},sw=function(e){return{r:vn(e.r,0,255),g:vn(e.g,0,255),b:vn(e.b,0,255),a:vn(e.a)}},Ad=function(e){return{r:Ct(e.r),g:Ct(e.g),b:Ct(e.b),a:Ct(e.a,3)}},lT=/^#([0-9a-f]{3,8})$/i,Ys=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},lw=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:60*(s<0?s+6:s),s:a?o/a*100:0,v:a/255*100,a:i}},cw=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),u=n*(1-(1-t+a)*r),l=a%6;return{r:255*[n,s,o,o,u,n][l],g:255*[u,n,n,s,o,o][l],b:255*[o,o,u,n,n,s][l],a:i}},uw=function(e){return{h:ow(e.h),s:vn(e.s,0,100),l:vn(e.l,0,100),a:vn(e.a)}},dw=function(e){return{h:Ct(e.h),s:Ct(e.s),l:Ct(e.l),a:Ct(e.a,3)}},fw=function(e){return cw((r=(t=e).s,{h:t.h,s:(r*=((n=t.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:t.a}));var t,r,n},Ba=function(e){return{h:(t=lw(e)).h,s:(i=(200-(r=t.s))*(n=t.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,r,n,i},cT=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,uT=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,dT=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fT=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,pw={string:[[function(e){var t=lT.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?Ct(parseInt(e[3]+e[3],16)/255,2):1}:e.length===6||e.length===8?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:e.length===8?Ct(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=dT.exec(e)||fT.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:sw({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=cT.exec(e)||uT.exec(e);if(!t)return null;var r,n,i=uw({h:(r=t[1],n=t[2],n===void 0&&(n="deg"),Number(r)*(sT[n]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return fw(i)},"hsl"]],object:[[function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i===void 0?1:i;return tr(t)&&tr(r)&&tr(n)?sw({r:Number(t),g:Number(r),b:Number(n),a:Number(a)}):null},"rgb"],[function(e){var t=e.h,r=e.s,n=e.l,i=e.a,a=i===void 0?1:i;if(!tr(t)||!tr(r)||!tr(n))return null;var o=uw({h:Number(t),s:Number(r),l:Number(n),a:Number(a)});return fw(o)},"hsl"],[function(e){var t=e.h,r=e.s,n=e.v,i=e.a,a=i===void 0?1:i;if(!tr(t)||!tr(r)||!tr(n))return null;var o=function(s){return{h:ow(s.h),s:vn(s.s,0,100),v:vn(s.v,0,100),a:vn(s.a)}}({h:Number(t),s:Number(r),v:Number(n),a:Number(a)});return cw(o)},"hsv"]]},hw=function(e,t){for(var r=0;r=.5},e.prototype.toHex=function(){return t=Ad(this.rgba),r=t.r,n=t.g,i=t.b,o=(a=t.a)<1?Ys(Ct(255*a)):"","#"+Ys(r)+Ys(n)+Ys(i)+o;var t,r,n,i,a,o},e.prototype.toRgb=function(){return Ad(this.rgba)},e.prototype.toRgbString=function(){return t=Ad(this.rgba),r=t.r,n=t.g,i=t.b,(a=t.a)<1?"rgba("+r+", "+n+", "+i+", "+a+")":"rgb("+r+", "+n+", "+i+")";var t,r,n,i,a},e.prototype.toHsl=function(){return dw(Ba(this.rgba))},e.prototype.toHslString=function(){return t=dw(Ba(this.rgba)),r=t.h,n=t.s,i=t.l,(a=t.a)<1?"hsla("+r+", "+n+"%, "+i+"%, "+a+")":"hsl("+r+", "+n+"%, "+i+"%)";var t,r,n,i,a},e.prototype.toHsv=function(){return t=lw(this.rgba),{h:Ct(t.h),s:Ct(t.s),v:Ct(t.v),a:Ct(t.a,3)};var t},e.prototype.invert=function(){return In({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},e.prototype.saturate=function(t){return t===void 0&&(t=.1),In(Ld(this.rgba,t))},e.prototype.desaturate=function(t){return t===void 0&&(t=.1),In(Ld(this.rgba,-t))},e.prototype.grayscale=function(){return In(Ld(this.rgba,-1))},e.prototype.lighten=function(t){return t===void 0&&(t=.1),In(mw(this.rgba,t))},e.prototype.darken=function(t){return t===void 0&&(t=.1),In(mw(this.rgba,-t))},e.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},e.prototype.alpha=function(t){return typeof t=="number"?In({r:(r=this.rgba).r,g:r.g,b:r.b,a:t}):Ct(this.rgba.a,3);var r},e.prototype.hue=function(t){var r=Ba(this.rgba);return typeof t=="number"?In({h:t,s:r.s,l:r.l,a:r.a}):Ct(r.h)},e.prototype.isEqual=function(t){return this.toHex()===In(t).toHex()},e}(),In=function(e){return e instanceof gw?e:new gw(e)};var Qs=me(Et());m();function Js(){return(Js=Object.assign||function(e){for(var t=1;t=0||(i[r]=e[r]);return i}function Fd(e){var t=Xt(e),r=Xt(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Ni=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e0:b.buttons>0)&&i.current?a(yw(i.current,b,s.current)):y(!1)},g=function(){return y(!1)};function y(b){var x=u.current,D=Nd(i.current),C=b?D.addEventListener:D.removeEventListener;C(x?"touchmove":"mousemove",p),C(x?"touchend":"mouseup",g)}return[function(b){var x=b.nativeEvent,D=i.current;if(D&&(bw(x),!function(L,H){return H&&!Ka(L)}(x,u.current)&&D)){if(Ka(x)){u.current=!0;var C=x.changedTouches||[];C.length&&(s.current=C[0].identifier)}D.focus(),a(yw(D,x,s.current)),y(!0)}},function(b){var x=b.which||b.keyCode;x<37||x>40||(b.preventDefault(),o({left:x===39?.05:x===37?-.05:0,top:x===40?.05:x===38?-.05:0}))},y]},[o,a]),c=l[0],d=l[1],f=l[2];return Sn(function(){return f},[f]),at.createElement("div",Js({},n,{onTouchStart:c,onMouseDown:c,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Gs=function(e){return e.filter(Boolean).join(" ")},Rd=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Gs(["react-colorful__pointer",e.className]);return at.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},at.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Yt=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},d$={grad:.9,turn:360,rad:360/(2*Math.PI)};var ww=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:Yt(e.h),s:Yt(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:Yt(i/2),a:Yt(n,2)}},Hd=function(e){var t=ww(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Bd=function(e){var t=ww(e);return"hsla("+t.h+", "+t.s+"%, "+t.l+"%, "+t.a+")"},hT=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),u=n*(1-(1-t+a)*r),l=a%6;return{r:Yt(255*[n,s,o,o,u,n][l]),g:Yt(255*[u,n,n,s,o,o][l]),b:Yt(255*[o,o,u,n,n,s][l]),a:Yt(i,2)}};var mT=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?gT({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}};var gT=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:Yt(60*(s<0?s+6:s)),s:Yt(a?o/a*100:0),v:Yt(a/255*100),a:i}};var vT=at.memo(function(e){var t=e.hue,r=e.onChange,n=Gs(["react-colorful__hue",e.className]);return at.createElement("div",{className:n},at.createElement(Od,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Ni(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Yt(t),"aria-valuemax":"360","aria-valuemin":"0"},at.createElement(Rd,{className:"react-colorful__hue-pointer",left:t/360,color:Hd({h:t,s:100,v:100,a:1})})))}),yT=at.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:Hd({h:t.h,s:100,v:100,a:1})};return at.createElement("div",{className:"react-colorful__saturation",style:n},at.createElement(Od,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Ni(t.s+100*i.left,0,100),v:Ni(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Yt(t.s)+"%, Brightness "+Yt(t.v)+"%"},at.createElement(Rd,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:Hd(t)})))}),bT=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},wT=function(e,t){return e.replace(/\s/g,"")===t.replace(/\s/g,"")};function ET(e,t,r){var n=Fd(r),i=sr(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=Xt({color:t,hsva:a});Sn(function(){if(!e.equal(t,s.current.color)){var l=e.toHsva(t);s.current={hsva:l,color:t},o(l)}},[t,e]),Sn(function(){var l;bT(a,s.current.hsva)||e.equal(l=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:l},n(l))},[a,e,n]);var u=cr(function(l){o(function(c){return Object.assign({},c,l)})},[]);return[a,u]}var kT,xT=typeof window!="undefined"?Lr:Sn,ST=function(){return kT||(typeof __webpack_nonce__!="undefined"?__webpack_nonce__:void 0)};var Ew=new Map,_T=function(e){xT(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Ew.has(t)){var r=t.createElement("style");r.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Ew.set(t,r);var n=ST();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])};var CT=function(e){var t=e.className,r=e.hsva,n=e.onChange,i={backgroundImage:"linear-gradient(90deg, "+Bd(Object.assign({},r,{a:0}))+", "+Bd(Object.assign({},r,{a:1}))+")"},a=Gs(["react-colorful__alpha",t]),o=Yt(100*r.a);return at.createElement("div",{className:a},at.createElement("div",{className:"react-colorful__alpha-gradient",style:i}),at.createElement(Od,{onMove:function(s){n({a:s.left})},onKey:function(s){n({a:Ni(r.a+s.left)})},"aria-label":"Alpha","aria-valuetext":o+"%","aria-valuenow":o,"aria-valuemin":"0","aria-valuemax":"100"},at.createElement(Rd,{className:"react-colorful__alpha-pointer",left:r.a,color:Bd(r)})))},TT=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=vw(e,["className","colorModel","color","onChange"]),s=Xt(null);_T(s);var u=ET(r,i,a),l=u[0],c=u[1],d=Gs(["react-colorful",t]);return at.createElement("div",Js({},o,{ref:s,className:d}),at.createElement(yT,{hsva:l,onChange:c}),at.createElement(vT,{hue:l.h,onChange:c}),at.createElement(CT,{hsva:l,onChange:c,className:"react-colorful__last-control"}))};var DT={defaultColor:"rgba(0, 0, 0, 1)",toHsva:mT,fromHsva:function(e){var t=hT(e);return"rgba("+t.r+", "+t.g+", "+t.b+", "+t.a+")"},equal:wT},kw=function(e){return at.createElement(TT,Js({},e,{colorModel:DT}))};function xw(e){let t=In(e);if(!t.isValid())return null;let r=t.toRgb();return{rgba:`rgba(${r.r}, ${r.g}, ${r.b}, ${r.a})`,hexa:t.toHex()}}function $a({color:e,setColor:t,defaultColor:r}){let[n,i]=P.useState(e||r),[a,o]=P.useState(e||r),[s,u]=P.useState(!1),l=P.useCallback(d=>{let f=xw(d||r);f&&(o(f.hexa),i(f.rgba),t(f.rgba))},[t]);P.useEffect(()=>{if(!e||!r)return;let d=xw(e||r);d&&(i(d.rgba),o(d.hexa))},[]);let c=Fi(()=>{u(!1)});return h("div",{ref:c,className:B("color-picker-wrapper")},s&&h("div",{className:B("color-picker")},h(kw,{color:n,onChange:l})),h("input",{type:"text",value:a,onChange:d=>l(d.target.value),onFocus:()=>{u(!0)}}))}function MT({tagColorKey:e,deleteKey:t,updateKey:r,defaultColors:n}){return h("div",{className:B("setting-item-wrapper")},h("div",{className:B("setting-item")},h("div",{className:`${B("setting-controls-wrapper")} ${B("tag-color-input")}`},h("div",{className:B("setting-input-wrapper")},h("div",null,h("div",{className:B("setting-item-label")},A("Tag")),h("input",{type:"text",placeholder:"#tag",value:e.tagKey,onChange:i=>{r(i.currentTarget.value,e.color,e.backgroundColor)}})),h("div",null,h("div",{className:B("setting-item-label")},A("Background color")),h($a,{color:e.backgroundColor,setColor:i=>{r(e.tagKey,e.color,i)},defaultColor:n.backgroundColor})),h("div",null,h("div",{className:B("setting-item-label")},A("Text color")),h($a,{color:e.color,setColor:i=>{r(e.tagKey,i,e.backgroundColor)},defaultColor:n.color}))),h("div",{className:B("setting-toggle-wrapper")},h("div",null,h("div",{className:B("item-tags")},h("a",{className:`tag ${B("item-tag")}`},"#tag1"),h("a",{className:`tag ${B("item-tag")}`,style:{"--tag-color":e.color,"--tag-background-color":e.backgroundColor}},e.tagKey||"#tag"),h("a",{className:`tag ${B("item-tag")}`},"#tag2"))))),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:t,"aria-label":A("Delete")},h(_t,{name:"lucide-trash-2"})))))}function IT({dataKeys:e,onChange:t}){let[r,n]=P.useState(e),i=P.useMemo(()=>{let l=createDiv(B("item-tags")),c=l.createEl("a",B("item-tag"));l.style.position="absolute",l.style.visibility="hidden",activeDocument.body.append(l);let d=activeWindow.getComputedStyle(c),f=d.getPropertyValue("color").trim(),p=d.getPropertyValue("background-color").trim();return l.remove(),{color:f,backgroundColor:p}},[]),a=l=>{t(l),n(l)},o=()=>{a((0,Qs.default)(r,{$push:[{...gs,id:Ae(),data:{tagKey:"",color:"",backgroundColor:""}}]}))},s=l=>{a((0,Qs.default)(r,{$splice:[[l,1]]}))},u=l=>(c,d,f)=>{a((0,Qs.default)(r,{[l]:{data:{tagKey:{$set:c},color:{$set:d},backgroundColor:{$set:f}}}}))};return h("div",{className:B("tag-color-input-wrapper")},h("div",{className:"setting-item-info"},h("div",{className:"setting-item-name"},A("Display tag colors")),h("div",{className:"setting-item-description"},A("Set colors for the tags displayed below the card title."))),r.map((l,c)=>h(MT,{key:l.id,tagColorKey:l.data,deleteKey:()=>s(c),updateKey:u(c),defaultColors:i})),h("button",{className:B("add-tag-color-button"),onClick:()=>{o()}},A("Add tag color")))}function Sw(e,t,r){P.render(h(IT,{dataKeys:t,onChange:r,portalContainer:ur(e)}),e)}function _w(e){P.unmountComponentAtNode(e)}m();var Xs=me(Et());var Kd=me(require("obsidian"));function AT({dateColorKey:e,deleteKey:t,updateKey:r,defaultColors:n,getTimeFormat:i,getDateFormat:a}){let o="between";return e.isToday&&(o="today"),e.isBefore&&(o="before"),e.isAfter&&(o="after"),h("div",{className:B("setting-item-wrapper")},h("div",{className:B("setting-item")},h("div",{className:`${B("setting-controls-wrapper")} ${B("tag-color-input")}`},h("div",null,h("div",null,h("div",{className:B("setting-item-label")},A("Date is"))),h("div",{className:B("date-color-config")},h("select",{className:"dropdown",defaultValue:o,onChange:s=>{let u={...e};switch(delete u.isAfter,delete u.isBefore,delete u.isToday,s.target.value){case"today":u.isToday=!0;break;case"before":u.isBefore=!0;break;case"after":u.isAfter=!0;break}r(u)}},h("option",{value:"between"},A("Between now and")),h("option",{value:"today"},A("Today")),h("option",{value:"after"},A("After now")),h("option",{value:"before"},A("Before now"))),!e.isToday&&!e.isAfter&&!e.isBefore&&h(S,null,h("input",{type:"number",value:e.distance,onChange:s=>{r({...e,distance:parseInt(s.target.value)})}}),h("select",{className:"dropdown",defaultValue:e.unit,onChange:s=>{r({...e,unit:s.target.value})}},h("option",{value:"hours"},"Hours"),h("option",{value:"days"},"Days"),h("option",{value:"weeks"},"Weeks"),h("option",{value:"months"},"Months")),h("select",{className:"dropdown",defaultValue:e.direction,onChange:s=>{r({...e,direction:s.target.value})}},h("option",{value:"after"},A("After now")),h("option",{value:"before"},A("Before now"))))),h("div",{className:B("date-color-config")},h("div",null,h("div",{className:B("setting-item-label")},A("Background color")),h($a,{color:e.backgroundColor,setColor:s=>{r({...e,backgroundColor:s})},defaultColor:n.backgroundColor})),h("div",null,h("div",{className:B("setting-item-label")},A("Text color")),h($a,{color:e.color,setColor:s=>{r({...e,color:s})},defaultColor:n.color})))),h("div",null,h("div",{className:B("date-color-wrapper")},h("div",{className:B("item-metadata")},h("span",{style:{"--date-color":e.color,"--date-background-color":e.backgroundColor},className:et([B("item-metadata-date-wrapper"),{"has-background":!!(e==null?void 0:e.backgroundColor)}])},h("span",{className:B("item-metadata-date is-button")},(0,Kd.moment)().format(a()))," ",h("span",{className:B("item-metadata-time is-button")},(0,Kd.moment)().format(i()))))))),h("div",{className:B("setting-button-wrapper")},h("div",{className:"clickable-icon",onClick:t,"aria-label":A("Delete")},h(_t,{name:"lucide-trash-2"})))))}function LT({dataKeys:e,onChange:t,getTimeFormat:r,getDateFormat:n}){let[i,a]=P.useState(e),o=P.useMemo(()=>{let d=createDiv(B("item-metadata")),f=d.createSpan(B("item-metadata-date"));d.style.position="absolute",d.style.visibility="hidden",activeDocument.body.append(d);let p=activeWindow.getComputedStyle(f),g=p.getPropertyValue("color").trim(),y=p.getPropertyValue("background-color").trim();return d.remove(),{color:g,backgroundColor:y}},[]),s=d=>{t(d),a(d)},u=()=>{s((0,Xs.default)(i,{$push:[{...vs,id:Ae(),data:{isToday:!1,distance:1,unit:"days",direction:"after"}}]}))},l=d=>{s((0,Xs.default)(i,{$splice:[[d,1]]}))},c=d=>f=>{s((0,Xs.default)(i,{[d]:{data:{$set:f}}}))};return h("div",{className:B("date-color-input-wrapper")},h("div",{className:"setting-item-info"},h("div",{className:"setting-item-name"},A("Display date colors")),h("div",{className:"setting-item-description"},A("Set colors for the date displayed below the card based on the rules below"))),i.map((d,f)=>h(AT,{key:d.id,dateColorKey:d.data,deleteKey:()=>l(f),updateKey:c(f),defaultColors:o,getTimeFormat:r,getDateFormat:n})),h("button",{className:B("add-tag-color-button"),onClick:u},A("Add date color")))}function Cw(e,t,r,n,i){P.render(h(LT,{dataKeys:t,onChange:r,portalContainer:ur(e),getDateFormat:n,getTimeFormat:i}),e)}function Tw(e){P.unmountComponentAtNode(e)}var Mw=/^\d+(?:\.\d+)?$/,Iw={[gn]:!0,"date-display-format":!0,"date-format":!0,"date-picker-week-start":!0,"date-time-display-format":!0,"date-trigger":!0,"hide-card-count":!0,"hide-date-display":!0,"hide-date-in-title":!0,"hide-tags-display":!0,"hide-tags-in-title":!0,"lane-width":!0,"link-date-to-daily-note":!0,"max-archive-size":!0,"metadata-keys":!0,"new-card-insertion-method":!0,"new-line-trigger":!0,"new-note-folder":!0,"new-note-template":!0,"archive-with-date":!0,"append-archive-date":!0,"archive-date-format":!0,"archive-date-separator":!0,"show-checkboxes":!0,"show-relative-date":!0,"time-format":!0,"time-trigger":!0,"show-add-list":!0,"show-archive-all":!0,"show-view-as-markdown":!0,"show-board-settings":!0,"show-search":!0,"tag-colors":!0,"date-colors":!0},$d=class{constructor(t,r,n){this.cleanupFns=[];this.applyDebounceTimer=0;this.app=t.app,this.plugin=t,this.config=r,this.settings=n}applySettingsUpdate(t){this.win.clearTimeout(this.applyDebounceTimer),this.applyDebounceTimer=this.win.setTimeout(()=>{this.settings=(0,Dw.default)(this.settings,t),this.config.onSettingsChange(this.settings)},200)}getSetting(t,r){return r?[this.settings[t],this.plugin.settings[t]]:[this.settings[t],null]}constructUI(t,r,n){this.win=t.win;let{templateFiles:i,vaultFolders:a,templateWarning:o}=nw(this.app);t.createEl("h3",{text:r}),n?t.createEl("p",{text:A("These settings will take precedence over the default Kanban board settings.")}):t.createEl("p",{text:A("Set the default Kanban board settings. Settings can be overridden on a board-by-board basis.")}),new He.Setting(t).setName(A("New line trigger")).setDesc(A("Select whether Enter or Shift+Enter creates a new line. The opposite of what you choose will create and complete editing of cards and lists.")).addDropdown(s=>{s.addOption("shift-enter",A("Shift + Enter")),s.addOption("enter",A("Enter"));let[u,l]=this.getSetting("new-line-trigger",n);s.setValue(u||l||"shift-enter"),s.onChange(c=>{this.applySettingsUpdate({"new-line-trigger":{$set:c}})})}),new He.Setting(t).setName(A("Prepend / append new cards")).setDesc(A("This setting controls whether new cards are added to the beginning or end of the list.")).addDropdown(s=>{s.addOption("prepend",A("Prepend")),s.addOption("prepend-compact",A("Prepend (compact)")),s.addOption("append",A("Append"));let[u,l]=this.getSetting("new-card-insertion-method",n);s.setValue(u||l||"append"),s.onChange(c=>{this.applySettingsUpdate({"new-card-insertion-method":{$set:c}})})}),new He.Setting(t).setName(A("Note template")).setDesc(A("This template will be used when creating new notes from Kanban cards.")).then(Id({choices:i,key:"new-note-template",warningText:o,local:n,placeHolderStr:A("No template"),manager:this})),new He.Setting(t).setName(A("Note folder")).setDesc(A("Notes created from Kanban cards will be placed in this folder. If blank, they will be placed in the default location for this vault.")).then(Id({choices:a,key:"new-note-folder",local:n,placeHolderStr:A("Default folder"),manager:this})),new He.Setting(t).setName(A("Hide card counts in list titles")).setDesc(A("When toggled, card counts are hidden from the list title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-card-count",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-card-count":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-card-count",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-card-count"]})})})}),new He.Setting(t).setName(A("List width")).setDesc(A("Enter a number to set the list width in pixels.")).addText(s=>{let[u,l]=this.getSetting("lane-width",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"272"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Mw.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"lane-width":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["lane-width"]})})}),new He.Setting(t).setName(A("Maximum number of archived cards")).setDesc(A("Archived cards can be viewed in markdown mode. This setting will begin removing old cards once the limit is reached. Setting this value to -1 will allow a board's archive to grow infinitely.")).addText(s=>{let[u,l]=this.getSetting("max-archive-size",n);s.inputEl.setAttr("type","number"),s.inputEl.placeholder=`${l||"-1"} (default)`,s.inputEl.value=u?u.toString():"",s.onChange(c=>{if(c&&Mw.test(c)){s.inputEl.removeClass("error"),this.applySettingsUpdate({"max-archive-size":{$set:parseInt(c)}});return}c&&s.inputEl.addClass("error"),this.applySettingsUpdate({$unset:["max-archive-size"]})})}),new He.Setting(t).setName(A("Display card checkbox")).setDesc(A("When toggled, a checkbox will be displayed with each card")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-checkboxes",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-checkboxes":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-checkboxes",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-checkboxes"]})})})}),new He.Setting(t).setName(A("Hide tags in card titles")).setDesc(A("When toggled, tags will be hidden card titles. This will prevent tags from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-in-title"]})})})}),new He.Setting(t).setName(A("Hide card display tags")).setDesc(A("When toggled, tags will not be displayed below the card title.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-tags-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-tags-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-tags-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-tags-display"]})})})}),new He.Setting(t).setName(A("Display tag colors")).setDesc(A("Set colors for the tags displayed below the card title.")).then(s=>{let[u]=this.getSetting("tag-colors",n),l=(u||[]).map(c=>({...gs,id:Ae(),data:c}));Sw(s.settingEl,l,c=>this.applySettingsUpdate({"tag-colors":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&_w(s.settingEl)})}),t.createEl("h4",{text:A("Board Header Buttons")}),new He.Setting(t).setName(A("Add a list")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-add-list",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-add-list":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-add-list",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-add-list"]})})})}),new He.Setting(t).setName(A("Archive completed cards")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-archive-all",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-archive-all":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-archive-all",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-archive-all"]})})})}),new He.Setting(t).setName(A("Open as markdown")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-view-as-markdown",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-view-as-markdown":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-view-as-markdown",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-view-as-markdown"]})})})}),new He.Setting(t).setName(A("Open board settings")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-board-settings",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-board-settings":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-board-settings",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-board-settings"]})})})}),new He.Setting(t).setName(A("Search...")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-search",n);c!=null?l.setValue(c):d!=null?l.setValue(d):l.setValue(!0),l.onChange(f=>{this.applySettingsUpdate({"show-search":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-search",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-search"]})})})}),t.createEl("h4",{text:A("Date & Time")}),new He.Setting(t).setName(A("Date trigger")).setDesc(A("When this is typed, it will trigger the date selector")).addText(s=>{let[u,l]=this.getSetting("date-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||js),s.onChange(c=>{c?this.applySettingsUpdate({"date-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["date-trigger"]})})}),new He.Setting(t).setName(A("Time trigger")).setDesc(A("When this is typed, it will trigger the time selector")).addText(s=>{let[u,l]=this.getSetting("time-trigger",n);(u||l)&&s.setValue(u||l),s.setPlaceholder(l||qs),s.onChange(c=>{c?this.applySettingsUpdate({"time-trigger":{$set:c}}):this.applySettingsUpdate({$unset:["time-trigger"]})})}),new He.Setting(t).setName(A("Date format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(A("This format will be used when saving dates in markdown.")),f.createEl("br"),f.appendText(A("For more syntax, refer to")+" "),f.createEl("a",{text:A("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(A("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-format",n),d=Nr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-format"]})})})}),new He.Setting(t).setName(A("Time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(A("For more syntax, refer to")+" "),f.createEl("a",{text:A("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(A("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("time-format",n),d=ui(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"time-format":{$set:f}}):this.applySettingsUpdate({$unset:["time-format"]})})})}),new He.Setting(t).setName(A("Date display format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(f=>{f.appendText(A("This format will be used when displaying dates in Kanban cards.")),f.createEl("br"),f.appendText(A("For more syntax, refer to")+" "),f.createEl("a",{text:A("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},p=>{p.setAttr("target","_blank")}),f.createEl("br"),f.appendText(A("Your current syntax looks like this")+": "),u.setSampleEl(f.createEl("b",{cls:"u-pop"})),f.createEl("br")}));let[l,c]=this.getSetting("date-display-format",n),d=Nr(this.app);u.setPlaceholder(d),u.setDefaultFormat(d),(l||c)&&u.setValue(l||c),u.onChange(f=>{f?this.applySettingsUpdate({"date-display-format":{$set:f}}):this.applySettingsUpdate({$unset:["date-display-format"]})})})}),new He.Setting(t).setName(A("Show relative date")).setDesc(A("When toggled, cards will display the distance between today and the card's date. eg. 'In 3 days', 'A month ago'")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("show-relative-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"show-relative-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("show-relative-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["show-relative-date"]})})})}),new He.Setting(t).setName(A("Hide card display dates")).setDesc(A("When toggled, formatted dates will not be displayed on the card. Relative dates will still be displayed if they are enabled.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-display",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-display":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-display",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-display"]})})})}),new He.Setting(t).setName(A("Hide dates in card titles")).setDesc(A("When toggled, dates will be hidden card titles. This will prevent dates from being included in the title when creating new notes.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("hide-date-in-title",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"hide-date-in-title":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("hide-date-in-title",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["hide-date-in-title"]})})})}),new He.Setting(t).setName(A("Display date colors")).setDesc(A("Set colors for the date displayed below the card based on the rules below")).then(s=>{let[u]=this.getSetting("date-colors",n),l=(u||[]).map(c=>({...vs,id:Ae(),data:c}));Cw(s.settingEl,l,c=>this.applySettingsUpdate({"date-colors":{$set:c.map(d=>d.data)}}),()=>{let[c,d]=this.getSetting("date-display-format",n),f=Nr(this.app);return c||d||f},()=>{let[c,d]=this.getSetting("time-format",n),f=ui(this.app);return c||d||f}),this.cleanupFns.push(()=>{s.settingEl&&Tw(s.settingEl)})}),new He.Setting(t).setName(A("Link dates to daily notes")).setDesc(A("When toggled, dates will link to daily notes. Eg. [[2021-04-26]]")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("link-date-to-daily-note",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"link-date-to-daily-note":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("link-date-to-daily-note",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["link-date-to-daily-note"]})})})}),new He.Setting(t).setName(A("Add date and time to archived cards")).setDesc(A("When toggled, the current date and time will be added to the card title when it is archived. Eg. - [ ] 2021-05-14 10:00am My card title")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("archive-with-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"archive-with-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("archive-with-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["archive-with-date"]})})})}),new He.Setting(t).setName(A("Add archive date/time after card title")).setDesc(A("When toggled, the archived date/time will be added after the card title, e.g.- [ ] My card title 2021-05-14 10:00am. By default, it is inserted before the title.")).then(s=>{let u;s.addToggle(l=>{u=l;let[c,d]=this.getSetting("append-archive-date",n);c!==void 0?l.setValue(c):d!==void 0&&l.setValue(d),l.onChange(f=>{this.applySettingsUpdate({"append-archive-date":{$set:f}})})}).addExtraButton(l=>{l.setIcon("lucide-rotate-ccw").setTooltip(A("Reset to default")).onClick(()=>{let[,c]=this.getSetting("append-archive-date",n);u.setValue(!!c),this.applySettingsUpdate({$unset:["append-archive-date"]})})})}),new He.Setting(t).setName(A("Archive date/time separator")).setDesc(A("This will be used to separate the archived date/time from the title")).addText(s=>{let[u,l]=this.getSetting("archive-date-separator",n);s.inputEl.placeholder=l?`${l} (default)`:"",s.inputEl.value=u||"",s.onChange(c=>{if(c){this.applySettingsUpdate({"archive-date-separator":{$set:c}});return}this.applySettingsUpdate({$unset:["archive-date-separator"]})})}),new He.Setting(t).setName(A("Archive date/time format")).then(s=>{s.addMomentFormat(u=>{s.descEl.appendChild(createFragment(D=>{D.appendText(A("For more syntax, refer to")+" "),D.createEl("a",{text:A("format reference"),href:"https://momentjs.com/docs/#/displaying/format/"},C=>{C.setAttr("target","_blank")}),D.createEl("br"),D.appendText(A("Your current syntax looks like this")+": "),u.setSampleEl(D.createEl("b",{cls:"u-pop"})),D.createEl("br")}));let[l,c]=this.getSetting("archive-date-format",n),[d,f]=this.getSetting("date-format",n),p=d||f||Nr(this.app),[g,y]=this.getSetting("time-format",n),b=g||y||ui(this.app),x=`${p} ${b}`;u.setPlaceholder(x),u.setDefaultFormat(x),(l||c)&&u.setValue(l||c),u.onChange(D=>{D?this.applySettingsUpdate({"archive-date-format":{$set:D}}):this.applySettingsUpdate({$unset:["archive-date-format"]})})})}),new He.Setting(t).setName(A("Calendar: first day of week")).setDesc(A("Override which day is used as the start of the week")).addDropdown(s=>{s.addOption("",A("default")),s.addOption("0",A("Sunday")),s.addOption("1",A("Monday")),s.addOption("2",A("Tuesday")),s.addOption("3",A("Wednesday")),s.addOption("4",A("Thursday")),s.addOption("5",A("Friday")),s.addOption("6",A("Saturday"));let[u,l]=this.getSetting("date-picker-week-start",n);s.setValue((u==null?void 0:u.toString())||(l==null?void 0:l.toString())||""),s.onChange(c=>{c?this.applySettingsUpdate({"date-picker-week-start":{$set:Number(c)}}):this.applySettingsUpdate({$unset:["date-picker-week-start"]})})}),t.createEl("br"),t.createEl("h4",{text:A("Linked Page Metadata")}),t.createEl("p",{cls:B("metadata-setting-desc"),text:A("Display metadata for the first note linked within a card. Specify which metadata keys to display below. An optional label can be provided, and labels can be hidden altogether.")}),new He.Setting(t).then(s=>{s.settingEl.addClass(B("draggable-setting-container"));let[u]=this.getSetting("metadata-keys",n),l=(u||[]).map(c=>({...ms,id:Ae(),data:c,win:Ze(t)}));iw(s.settingEl,t,l,c=>this.applySettingsUpdate({"metadata-keys":{$set:c.map(d=>d.data)}})),this.cleanupFns.push(()=>{s.settingEl&&aw(s.settingEl)})})}cleanUp(){this.win=null,this.cleanupFns.forEach(t=>t()),this.cleanupFns=[]}},Vd=class extends He.Modal{constructor(t,r,n){super(t.app);this.view=t,this.settingsManager=new $d(t.plugin,r,n)}onOpen(){let{contentEl:t,modalEl:r}=this;r.addClass(B("board-settings-modal")),this.settingsManager.constructUI(t,this.view.file.basename,!0)}onClose(){let{contentEl:t}=this;this.settingsManager.cleanUp(),t.empty()}},Ud=class extends He.PluginSettingTab{constructor(t,r){super(t.app,t);this.plugin=t,this.settingsManager=new $d(t,r,t.settings)}display(){let{containerEl:t}=this;t.empty(),t.addClass(B("board-settings-modal")),this.settingsManager.constructUI(t,A("Kanban Plugin"),!1)}};var yn="kanban",Va="lucide-trello",Hn=class extends Lw.TextFileView{constructor(t,r){super(t);this.actionButtons={};this.plugin=r,this.emitter=Hs(),this.emitter.on("hotkey",n=>{switch(n){case"daily-notes:goto-prev":{Vm(this.app,this.file);break}case"daily-notes:goto-next":{$m(this.app,this.file);break}}}),this.register(this.containerEl.onWindowMigrated(()=>{this.plugin.removeView(this),this.plugin.addView(this,this.data,this.isPrimary)}))}get isPrimary(){var t;return((t=this.plugin.getStateManager(this.file))==null?void 0:t.getAView())===this}get id(){var t;return`${this.leaf.id}:::${(t=this.file)==null?void 0:t.path}`}get isShiftPressed(){return this.plugin.isShiftPressed}setBoard(t,r=!0){this.plugin.stateManagers.get(this.file).setState(t,r)}getBoard(){return this.plugin.stateManagers.get(this.file).state}getViewType(){return yn}getIcon(){return Va}getDisplayText(){var t;return((t=this.file)==null?void 0:t.basename)||"Kanban"}getWindow(){return Ze(this.containerEl)}async onLoadFile(t){try{return await super.onLoadFile(t)}catch(r){throw this.plugin.stateManagers.get(this.file).setError(r),r}}destroy(){this.plugin.removeView(this),Object.values(this.actionButtons).forEach(t=>t.remove()),this.actionButtons={}}async onClose(){this.destroy()}async onUnloadFile(t){return this.destroy(),await super.onUnloadFile(t)}handleRename(t,r){this.file.path===t&&this.plugin.handleViewFileRename(this,r)}requestSaveToDisk(t){this.data!==t&&this.isPrimary?(this.data=t,this.requestSave()):this.data=t}getViewData(){return this.data}setViewData(t,r){if(!Um(t)){this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.removeView(this),this.plugin.setMarkdownView(this.leaf,!1);return}this.plugin.addView(this,t,!r&&this.isPrimary)}getPortal(){let t=this.plugin.stateManagers.get(this.file);return h(Zb,{stateManager:t,view:this})}getBoardSettings(){let t=this.plugin.stateManagers.get(this.file),r=t.state;new Vd(this,{onSettingsChange:n=>{let i=(0,Aw.default)(r,{data:{settings:{$set:n}}});t.setState(i)}},r.data.settings).open()}onPaneMenu(t,r,n=!0){if(r!=="more-options"){super.onPaneMenu(t,r);return}t.addItem(i=>{i.setTitle(A("Open as markdown")).setIcon("lucide-file-text").setSection("pane").onClick(()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)})}).addItem(i=>{i.setTitle(A("Open board settings")).setIcon("lucide-settings").setSection("pane").onClick(()=>{this.getBoardSettings()})}).addItem(i=>{i.setTitle(A("Archive completed cards")).setIcon("lucide-archive").setSection("pane").onClick(()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()})}),n&&super.onPaneMenu(t,r)}initHeaderButtons(){let t=this.plugin.getStateManager(this.file);if(!!t)if(t.getSetting("show-board-settings")&&!this.actionButtons["show-board-settings"]?this.actionButtons["show-board-settings"]=this.addAction("lucide-settings",A("Open board settings"),()=>{this.getBoardSettings()}):!t.getSetting("show-board-settings")&&this.actionButtons["show-board-settings"]&&(this.actionButtons["show-board-settings"].remove(),delete this.actionButtons["show-board-settings"]),t.getSetting("show-search")&&!this.actionButtons["show-search"]?this.actionButtons["show-search"]=this.addAction("lucide-search",A("Search..."),()=>{this.emitter.emit("hotkey","editor:open-search")}):!t.getSetting("show-search")&&this.actionButtons["show-search"]&&(this.actionButtons["show-search"].remove(),delete this.actionButtons["show-search"]),t.getSetting("show-view-as-markdown")&&!this.actionButtons["show-view-as-markdown"]?this.actionButtons["show-view-as-markdown"]=this.addAction("lucide-file-text",A("Open as markdown"),()=>{this.plugin.kanbanFileModes[this.leaf.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}):!t.getSetting("show-view-as-markdown")&&this.actionButtons["show-view-as-markdown"]&&(this.actionButtons["show-view-as-markdown"].remove(),delete this.actionButtons["show-view-as-markdown"]),t.getSetting("show-archive-all")&&!this.actionButtons["show-archive-all"]?this.actionButtons["show-archive-all"]=this.addAction("lucide-archive",A("Archive completed cards"),()=>{this.plugin.stateManagers.get(this.file).archiveCompletedCards()}):!t.getSetting("show-archive-all")&&this.actionButtons["show-archive-all"]&&(this.actionButtons["show-archive-all"].remove(),delete this.actionButtons["show-archive-all"]),t.getSetting("show-add-list")&&!this.actionButtons["show-add-list"]){let r=this.addAction("lucide-plus-circle",A("Add a list"),()=>{this.emitter.emit("showLaneForm",void 0)});r.addClass(B("ignore-click-outside")),this.actionButtons["show-add-list"]=r}else!t.getSetting("show-add-list")&&this.actionButtons["show-add-list"]&&(this.actionButtons["show-add-list"].remove(),delete this.actionButtons["show-add-list"])}clear(){}};m();var Ui=me(Et()),YE=me(require("obsidian"));m();m();var Wd={};qi(Wd,{JsonPatchError:()=>ot,_areEquals:()=>za,applyOperation:()=>Yr,applyPatch:()=>il,applyReducer:()=>RT,deepClone:()=>NT,getValueByPointer:()=>rl,validate:()=>Fw,validator:()=>al});m();m();var PT=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var a in i)i.hasOwnProperty(a)&&(n[a]=i[a])},e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),FT=Object.prototype.hasOwnProperty;function Zs(e,t){return FT.call(e,t)}function el(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&n<=57){t++;continue}return!1}return!0}function Bn(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function Ua(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function nl(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&u[c-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&f===void 0&&(l[p]===void 0?f=u.slice(0,c).join("/"):c==d-1&&(f=t.path),f!==void 0&&g(t,0,e,f)),c++,Array.isArray(l)){if(p==="-")p=l.length;else{if(r&&!tl(p))throw new ot("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e);tl(p)&&(p=~~p)}if(c>=d){if(r&&t.op==="add"&&p>l.length)throw new ot("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e);var o=OT[t.op].call(t,l,p,e);if(o.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}}else if(c>=d){var o=Oi[t.op].call(t,l,p,e);if(o.test===!1)throw new ot("Test operation failed","TEST_OPERATION_FAILED",a,t,e);return o}if(l=l[p],r&&c0)throw new ot('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new ot("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&nl(e.value))throw new ot("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var i=e.path.split("/").length,a=n.split("/").length;if(i!==a+1&&i!==a)throw new ot("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==n)throw new ot("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var o={op:"_get",path:e.from,value:void 0},s=Fw([o],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE")throw new ot("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new ot("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function Fw(e,t,r){try{if(!Array.isArray(e))throw new ot("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)il(Ft(t),Ft(e),r||!0);else{r=r||al;for(var n=0;nYd,generate:()=>jd,observe:()=>WT,unobserve:()=>UT});m();var zd=new WeakMap,HT=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),BT=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function KT(e){return zd.get(e)}function $T(e,t){return e.observers.get(t)}function VT(e,t){e.observers.delete(t.callback)}function UT(e,t){t.unobserve()}function WT(e,t){var r=[],n,i=KT(e);if(!i)i=new HT(e),zd.set(e,i);else{var a=$T(i,t);n=a&&a.observer}if(n)return n;if(n={},i.value=Ft(e),t){n.callback=t,n.next=null;var o=function(){jd(n)},s=function(){clearTimeout(n.next),n.next=setTimeout(o)};typeof window!="undefined"&&(window.addEventListener("mouseup",s),window.addEventListener("keyup",s),window.addEventListener("mousedown",s),window.addEventListener("keydown",s),window.addEventListener("change",s))}return n.patches=r,n.object=e,n.unobserve=function(){jd(n),clearTimeout(n.next),VT(i,n),typeof window!="undefined"&&(window.removeEventListener("mouseup",s),window.removeEventListener("keyup",s),window.removeEventListener("mousedown",s),window.removeEventListener("keydown",s),window.removeEventListener("change",s))},i.observers.set(t,new BT(t,n)),n}function jd(e,t){t===void 0&&(t=!1);var r=zd.get(e.object);qd(r.value,e.object,e.patches,"",t),e.patches.length&&il(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function qd(e,t,r,n,i){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var a=el(t),o=el(e),s=!1,u=!1,l=o.length-1;l>=0;l--){var c=o[l],d=e[c];if(Zs(t,c)&&!(t[c]===void 0&&d!==void 0&&Array.isArray(t)===!1)){var f=t[c];typeof d=="object"&&d!=null&&typeof f=="object"&&f!=null&&Array.isArray(d)===Array.isArray(f)?qd(d,f,r,n+"/"+Bn(c),i):d!==f&&(s=!0,i&&r.push({op:"test",path:n+"/"+Bn(c),value:Ft(d)}),r.push({op:"replace",path:n+"/"+Bn(c),value:Ft(f)}))}else Array.isArray(e)===Array.isArray(t)?(i&&r.push({op:"test",path:n+"/"+Bn(c),value:Ft(d)}),r.push({op:"remove",path:n+"/"+Bn(c)}),u=!0):(i&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}),s=!0)}if(!(!u&&a.length==o.length))for(var l=0;l":""))+")"})),f;function f(){let p=[],g,y,b;if((!t||i(s,u,l[l.length-1]||null))&&(p=JT(r(s,l)),p[0]===Qd))return p;if(s.children&&p[0]!==$w)for(y=(n?s.children.length:-1)+a,b=l.concat(s);y>-1&&y!0){for(let i=t+1,a=e.length;i{try{await jw(e,r),await Promise.all(r.children.map(n=>qa(e,n)))}catch(n){throw e.setError(n),n}}))}catch(r){throw e.setError(r),r}return t}function GT(e){return(e.op==="add"||e.op==="replace")&&["/title","/titleRaw","/dateStr","/timeStr",/\d$/,/\/fileAccessor\/.+$/].some(t=>typeof t=="string"?e.path.endsWith(t):t.test(e.path))}async function Yw(e,t,r){let n={},i=r.reduce((a,o)=>{if(!GT(o))return a;let s=o.path.split("/").reduce((l,c)=>(/\d+/.test(c)&&l.push(Number(c)),l),[]),u=s.join(",");return n[u]||(n[u]=!0,a.push(s)),a},[]);try{await Promise.all(i.map(a=>{let o=mt(t,a);if(o.type===Je.Lane)return jw(e,o);if(o.type===Je.Item)return qa(e,o)}))}catch(a){throw e.setError(a),a}return t}m();m();m();m();m();m();function Nt(e,t,r,n){let i=e.length,a=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,r=r>0?r:0,n.length<1e4)o=Array.from(n),o.unshift(t,r),[].splice.apply(e,o);else for(r&&[].splice.apply(e,[t,r]);a0?(Nt(e,e.length,0,t),e):t}var Jw={}.hasOwnProperty;function Gw(e){let t={},r=-1;for(;++ro))return;let K=t.events.length,z=K,V,Z;for(;z--;)if(t.events[z][0]==="exit"&&t.events[z][1].type==="chunkFlow"){if(V){Z=t.events[z][1].end;break}V=!0}for(x(n),T=K;TC;){let H=r[L];t.containerState=H[1],H[0].exit.call(t,e)}r.length=C}function D(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function tD(e,t,r){return Se(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}m();m();m();m();function nf(e){if(e===null||Qe(e)||eE(e))return 1;if(tE(e))return 2}m();function Ri(e,t,r){let n=[],i=-1;for(;++i1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;let d=Object.assign({},e[n][1].end),f=Object.assign({},e[r][1].start);aE(d,-u),aE(f,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},s={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[r][1].start),end:f},a={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[r][1].start)},i={type:u>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},s.end)},e[n][1].end=Object.assign({},o.start),e[r][1].start=Object.assign({},s.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=Jt(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=Jt(l,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),l=Jt(l,Ri(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),l=Jt(l,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[r][1].end.offset-e[r][1].start.offset?(c=2,l=Jt(l,[["enter",e[r][1],t],["exit",e[r][1],t]])):c=0,Nt(e,n-1,r-n+3,l),r=n+l.length-c-2;break}}for(r=-1;++r",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"};var uD={}.hasOwnProperty;function Hi(e){return uD.call(af,e)?af[e]:!1}var ul={name:"characterReference",tokenize:dD};function dD(e,t,r){let n=this,i=0,a,o;return s;function s(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),u}function u(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),a=31,o=Gt,c(d))}function l(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=Xw,c):(e.enter("characterReferenceValue"),a=7,o=Ya,c(d))}function c(d){let f;return d===59&&i?(f=e.exit("characterReferenceValue"),o===Gt&&!Hi(n.sliceSerialize(f))?r(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(d)&&i++=4?o(l):r(l)}function o(l){return l===null?u(l):ce(l)?e.attempt(pD,o,u)(l):(e.enter("codeFlowValue"),s(l))}function s(l){return l===null||ce(l)?(e.exit("codeFlowValue"),o(l)):(e.consume(l),s)}function u(l){return e.exit("codeIndented"),t(l)}}function mD(e,t,r){let n=this;return i;function i(o){return n.parser.lazy[n.now().line]?r(o):ce(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Se(e,a,"linePrefix",4+1)(o)}function a(o){let s=n.events[n.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(o):ce(o)?i(o):r(o)}}m();var of={name:"codeText",tokenize:yD,resolve:gD,previous:vD};function gD(e){let t=e.length-4,r=3,n,i;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=4?t(o):e.interrupt(n.parser.constructs.flow,r,t)(o)}}m();m();function pl(e,t,r,n,i,a,o,s,u){let l=u||Number.POSITIVE_INFINITY,c=0;return d;function d(x){return x===60?(e.enter(n),e.enter(i),e.enter(a),e.consume(x),e.exit(a),f):x===null||x===41||Ja(x)?r(x):(e.enter(n),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),y(x))}function f(x){return x===62?(e.enter(a),e.consume(x),e.exit(a),e.exit(i),e.exit(n),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===62?(e.exit("chunkString"),e.exit(s),f(x)):x===null||x===60||ce(x)?r(x):(e.consume(x),x===92?g:p)}function g(x){return x===60||x===62||x===92?(e.consume(x),p):p(x)}function y(x){return x===40?++c>l?r(x):(e.consume(x),y):x===41?c--?(e.consume(x),y):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(x)):x===null||Qe(x)?c?r(x):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(x)):Ja(x)?r(x):(e.consume(x),x===92?b:y)}function b(x){return x===40||x===41||x===92?(e.consume(x),y):y(x)}}m();function hl(e,t,r,n,i,a){let o=this,s=0,u;return l;function l(p){return e.enter(n),e.enter(i),e.consume(p),e.exit(i),e.enter(a),c}function c(p){return p===null||p===91||p===93&&!u||p===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs||s>999?r(p):p===93?(e.exit(a),e.enter(i),e.consume(p),e.exit(i),e.exit(n),t):ce(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ce(p)||s++>999?(e.exit("chunkString"),c(p)):(e.consume(p),u=u||!Ke(p),p===92?f:d)}function f(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}m();function ml(e,t,r,n,i,a){let o;return s;function s(f){return e.enter(n),e.enter(i),e.consume(f),e.exit(i),o=f===40?41:f,u}function u(f){return f===o?(e.enter(i),e.consume(f),e.exit(i),e.exit(n),t):(e.enter(a),l(f))}function l(f){return f===o?(e.exit(a),u(o)):f===null?r(f):ce(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Se(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===o||f===null||ce(f)?(e.exit("chunkString"),l(f)):(e.consume(f),f===92?d:c)}function d(f){return f===o||f===92?(e.consume(f),c):c(f)}}m();function Jr(e,t){let r;return n;function n(i){return ce(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r=!0,n):Ke(i)?Se(e,n,r?"linePrefix":"lineSuffix")(i):t(i)}}m();function nr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var lf={name:"definition",tokenize:_D},SD={tokenize:CD,partial:!0};function _D(e,t,r){let n=this,i;return a;function a(u){return e.enter("definition"),hl.call(n,e,o,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function o(u){return i=nr(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),u===58?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),Jr(e,pl(e,e.attempt(SD,Se(e,s,"whitespace"),Se(e,s,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(u)}function s(u){return u===null||ce(u)?(e.exit("definition"),n.parser.defined.includes(i)||n.parser.defined.push(i),t(u)):r(u)}}function CD(e,t,r){return n;function n(o){return Qe(o)?Jr(e,i)(o):r(o)}function i(o){return o===34||o===39||o===40?ml(e,Se(e,a,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):r(o)}function a(o){return o===null||ce(o)?t(o):r(o)}}m();var cf={name:"hardBreakEscape",tokenize:TD};function TD(e,t,r){return n;function n(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return ce(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):r(a)}}m();var uf={name:"headingAtx",tokenize:MD,resolve:DD};function DD(e,t){let r=e.length-2,n=3,i,a;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(i={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},a={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},Nt(e,n,r-n+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function MD(e,t,r){let n=this,i=0;return a;function a(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&i++<6?(e.consume(c),o):c===null||Qe(c)?(e.exit("atxHeadingSequence"),n.interrupt?t(c):s(c)):r(c)}function s(c){return c===35?(e.enter("atxHeadingSequence"),u(c)):c===null||ce(c)?(e.exit("atxHeading"),t(c)):Ke(c)?Se(e,s,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function u(c){return c===35?(e.consume(c),u):(e.exit("atxHeadingSequence"),s(c))}function l(c){return c===null||c===35||Qe(c)?(e.exit("atxHeadingText"),s(c)):(e.consume(c),l)}}m();m();var oE=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],df=["pre","script","style","textarea"];var ff={name:"htmlFlow",tokenize:LD,resolveTo:AD,concrete:!0},ID={tokenize:PD,partial:!0};function AD(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function LD(e,t,r){let n=this,i,a,o,s,u;return l;function l(N){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(N),c}function c(N){return N===33?(e.consume(N),d):N===47?(e.consume(N),g):N===63?(e.consume(N),i=3,n.interrupt?t:be):dn(N)?(e.consume(N),o=String.fromCharCode(N),a=!0,y):r(N)}function d(N){return N===45?(e.consume(N),i=2,f):N===91?(e.consume(N),i=5,o="CDATA[",s=0,p):dn(N)?(e.consume(N),i=4,n.interrupt?t:be):r(N)}function f(N){return N===45?(e.consume(N),n.interrupt?t:be):r(N)}function p(N){return N===o.charCodeAt(s++)?(e.consume(N),s===o.length?n.interrupt?t:J:p):r(N)}function g(N){return dn(N)?(e.consume(N),o=String.fromCharCode(N),y):r(N)}function y(N){return N===null||N===47||N===62||Qe(N)?N!==47&&a&&df.includes(o.toLowerCase())?(i=1,n.interrupt?t(N):J(N)):oE.includes(o.toLowerCase())?(i=6,N===47?(e.consume(N),b):n.interrupt?t(N):J(N)):(i=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(N):a?D(N):x(N)):N===45||Gt(N)?(e.consume(N),o+=String.fromCharCode(N),y):r(N)}function b(N){return N===62?(e.consume(N),n.interrupt?t:J):r(N)}function x(N){return Ke(N)?(e.consume(N),x):V(N)}function D(N){return N===47?(e.consume(N),V):N===58||N===95||dn(N)?(e.consume(N),C):Ke(N)?(e.consume(N),D):V(N)}function C(N){return N===45||N===46||N===58||N===95||Gt(N)?(e.consume(N),C):L(N)}function L(N){return N===61?(e.consume(N),H):Ke(N)?(e.consume(N),L):D(N)}function H(N){return N===null||N===60||N===61||N===62||N===96?r(N):N===34||N===39?(e.consume(N),u=N,T):Ke(N)?(e.consume(N),H):(u=null,K(N))}function T(N){return N===null||ce(N)?r(N):N===u?(e.consume(N),z):(e.consume(N),T)}function K(N){return N===null||N===34||N===39||N===60||N===61||N===62||N===96||Qe(N)?L(N):(e.consume(N),K)}function z(N){return N===47||N===62||Ke(N)?D(N):r(N)}function V(N){return N===62?(e.consume(N),Z):r(N)}function Z(N){return Ke(N)?(e.consume(N),Z):N===null||ce(N)?J(N):r(N)}function J(N){return N===45&&i===2?(e.consume(N),ie):N===60&&i===1?(e.consume(N),he):N===62&&i===4?(e.consume(N),De):N===63&&i===3?(e.consume(N),be):N===93&&i===5?(e.consume(N),ge):ce(N)&&(i===6||i===7)?e.check(ID,De,se)(N):N===null||ce(N)?se(N):(e.consume(N),J)}function se(N){return e.exit("htmlFlowData"),G(N)}function G(N){return N===null?F(N):ce(N)?e.attempt({tokenize:Q,partial:!0},G,F)(N):(e.enter("htmlFlowData"),J(N))}function Q(N,ut,Ge){return W;function W(q){return N.enter("lineEnding"),N.consume(q),N.exit("lineEnding"),j}function j(q){return n.parser.lazy[n.now().line]?Ge(q):ut(q)}}function ie(N){return N===45?(e.consume(N),be):J(N)}function he(N){return N===47?(e.consume(N),o="",pe):J(N)}function pe(N){return N===62&&df.includes(o.toLowerCase())?(e.consume(N),De):dn(N)&&o.length<8?(e.consume(N),o+=String.fromCharCode(N),pe):J(N)}function ge(N){return N===93?(e.consume(N),be):J(N)}function be(N){return N===62?(e.consume(N),De):N===45&&i===2?(e.consume(N),be):J(N)}function De(N){return N===null||ce(N)?(e.exit("htmlFlowData"),F(N)):(e.consume(N),De)}function F(N){return e.exit("htmlFlow"),t(N)}}function PD(e,t,r){return n;function n(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(Tr,t,r)}}m();var pf={name:"htmlText",tokenize:FD};function FD(e,t,r){let n=this,i,a,o,s;return u;function u(F){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(F),l}function l(F){return F===33?(e.consume(F),c):F===47?(e.consume(F),K):F===63?(e.consume(F),H):dn(F)?(e.consume(F),Z):r(F)}function c(F){return F===45?(e.consume(F),d):F===91?(e.consume(F),a="CDATA[",o=0,b):dn(F)?(e.consume(F),L):r(F)}function d(F){return F===45?(e.consume(F),f):r(F)}function f(F){return F===null||F===62?r(F):F===45?(e.consume(F),p):g(F)}function p(F){return F===null||F===62?r(F):g(F)}function g(F){return F===null?r(F):F===45?(e.consume(F),y):ce(F)?(s=g,ge(F)):(e.consume(F),g)}function y(F){return F===45?(e.consume(F),De):g(F)}function b(F){return F===a.charCodeAt(o++)?(e.consume(F),o===a.length?x:b):r(F)}function x(F){return F===null?r(F):F===93?(e.consume(F),D):ce(F)?(s=x,ge(F)):(e.consume(F),x)}function D(F){return F===93?(e.consume(F),C):x(F)}function C(F){return F===62?De(F):F===93?(e.consume(F),C):x(F)}function L(F){return F===null||F===62?De(F):ce(F)?(s=L,ge(F)):(e.consume(F),L)}function H(F){return F===null?r(F):F===63?(e.consume(F),T):ce(F)?(s=H,ge(F)):(e.consume(F),H)}function T(F){return F===62?De(F):H(F)}function K(F){return dn(F)?(e.consume(F),z):r(F)}function z(F){return F===45||Gt(F)?(e.consume(F),z):V(F)}function V(F){return ce(F)?(s=V,ge(F)):Ke(F)?(e.consume(F),V):De(F)}function Z(F){return F===45||Gt(F)?(e.consume(F),Z):F===47||F===62||Qe(F)?J(F):r(F)}function J(F){return F===47?(e.consume(F),De):F===58||F===95||dn(F)?(e.consume(F),se):ce(F)?(s=J,ge(F)):Ke(F)?(e.consume(F),J):De(F)}function se(F){return F===45||F===46||F===58||F===95||Gt(F)?(e.consume(F),se):G(F)}function G(F){return F===61?(e.consume(F),Q):ce(F)?(s=G,ge(F)):Ke(F)?(e.consume(F),G):J(F)}function Q(F){return F===null||F===60||F===61||F===62||F===96?r(F):F===34||F===39?(e.consume(F),i=F,ie):ce(F)?(s=Q,ge(F)):Ke(F)?(e.consume(F),Q):(e.consume(F),i=void 0,pe)}function ie(F){return F===i?(e.consume(F),he):F===null?r(F):ce(F)?(s=ie,ge(F)):(e.consume(F),ie)}function he(F){return F===62||F===47||Qe(F)?J(F):r(F)}function pe(F){return F===null||F===34||F===39||F===60||F===61||F===96?r(F):F===62||Qe(F)?J(F):(e.consume(F),pe)}function ge(F){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),Se(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function be(F){return e.enter("htmlTextData"),s(F)}function De(F){return F===62?(e.consume(F),e.exit("htmlTextData"),e.exit("htmlText"),t):r(F)}}m();var Gr={name:"labelEnd",tokenize:KD,resolveTo:BD,resolveAll:HD},ND={tokenize:$D},OD={tokenize:VD},RD={tokenize:UD};function HD(e){let t=-1,r;for(;++t-1&&(o[0]=o[0].slice(n)),a>0&&o.push(e[i].slice(0,a))),o}function o1(e,t){let r=-1,n=[],i;for(;++rh1,contentInitial:()=>l1,disable:()=>m1,document:()=>s1,flow:()=>u1,flowInitial:()=>c1,insideSpan:()=>p1,string:()=>d1,text:()=>f1});m();var s1={[42]:Ut,[43]:Ut,[45]:Ut,[48]:Ut,[49]:Ut,[50]:Ut,[51]:Ut,[52]:Ut,[53]:Ut,[54]:Ut,[55]:Ut,[56]:Ut,[57]:Ut,[62]:ll},l1={[91]:lf},c1={[-2]:Qa,[-1]:Qa,[32]:Qa},u1={[35]:uf,[42]:Qr,[45]:[gl,Qr],[60]:ff,[61]:gl,[95]:Qr,[96]:dl,[126]:dl},d1={[38]:ul,[92]:cl},f1={[-5]:Xa,[-4]:Xa,[-3]:Xa,[33]:hf,[38]:ul,[42]:Ga,[60]:[rf,pf],[91]:mf,[92]:[cf,cl],[93]:Gr,[95]:Ga,[96]:of},p1={null:[Ga,lE]},h1={null:[42,95]},m1={null:[]};function hE(e={}){let t=Gw([gf].concat(e.extensions||[])),r={defined:[],lazy:{},constructs:t,content:n(nE),document:n(rE),flow:n(sE),string:n(cE),text:n(uE)};return r;function n(i){return a;function a(o){return pE(r,i,o)}}}m();var mE=/[\0\t\n\r]/g;function gE(){let e=1,t="",r=!0,n;return i;function i(a,o,s){let u=[],l,c,d,f,p;for(a=t+a.toString(o),d=0,t="",r&&(a.charCodeAt(0)===65279&&d++,r=void 0);d13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)==65535||(r&65535)==65534||r>1114111?"\uFFFD":String.fromCharCode(r)}m();var g1=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function yE(e){return e.replace(g1,v1)}function v1(e,t,r){if(t)return t;if(r.charCodeAt(0)===35){let i=r.charCodeAt(1),a=i===120||i===88;return vl(r.slice(a?2:1),a?16:10)}return Hi(r)||e}m();function Za(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?bE(e.position):"start"in e||"end"in e?bE(e):"line"in e||"column"in e?vf(e):""}function vf(e){return wE(e&&e.line)+":"+wE(e&&e.column)}function bE(e){return vf(e&&e.start)+"-"+vf(e&&e.end)}function wE(e){return e&&typeof e=="number"?e:1}var yf={}.hasOwnProperty,yl=function(e,t,r){return typeof t!="string"&&(r=t,t=void 0),y1(r)(vE(hE(r).document().write(gE()(e,t,!0))))};function y1(e={}){let t=EE({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:u(Zr),autolinkProtocol:se,autolinkEmail:se,atxHeading:u(Vn),blockQuote:u(dt),characterEscape:se,characterReference:se,codeFenced:u(vt),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:u(vt,l),codeText:u(Ot,l),codeTextData:se,data:se,codeFlowValue:se,definition:u(Kn),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:u($n),hardBreakEscape:u(bn),hardBreakTrailing:u(bn),htmlFlow:u(wn,l),htmlFlowData:se,htmlText:u(wn,l),htmlTextData:se,image:u(Un),label:l,link:u(Zr),listItem:u(ti),listItemValue:y,listOrdered:u(ei,g),listUnordered:u(ei),paragraph:u(rr),reference:j,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:u(Vn),strong:u(Rt),thematicBreak:u(yt)},exit:{atxHeading:d(),atxHeadingSequence:z,autolink:d(),autolinkEmail:Ve,autolinkProtocol:xe,blockQuote:d(),characterEscapeValue:G,characterReferenceMarkerHexadecimal:te,characterReferenceMarkerNumeric:te,characterReferenceValue:we,codeFenced:d(C),codeFencedFence:D,codeFencedFenceInfo:b,codeFencedFenceMeta:x,codeFlowValue:G,codeIndented:d(L),codeText:d(ge),codeTextData:G,data:G,definition:d(),definitionDestinationString:K,definitionLabelString:H,definitionTitleString:T,emphasis:d(),hardBreakEscape:d(ie),hardBreakTrailing:d(ie),htmlFlow:d(he),htmlFlowData:G,htmlText:d(pe),htmlTextData:G,image:d(De),label:N,labelText:F,lineEnding:Q,link:d(be),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:q,resourceDestinationString:ut,resourceTitleString:Ge,resource:W,setextHeading:d(J),setextHeadingLineSequence:Z,setextHeadingText:V,strong:d(),thematicBreak:d()}},e.mdastExtensions||[]),r={};return n;function n(Y){let oe={type:"root",children:[]},Ee=[oe],ze=[],Dt=[],En={stack:Ee,tokenStack:ze,config:t,enter:c,exit:f,buffer:l,resume:p,setData:a,getData:o},qe=-1;for(;++qe0){let st=ze[ze.length-1];(st[1]||kE).call(En,void 0,st[0])}for(oe.position={start:s(Y.length>0?Y[0][1].start:{line:1,column:1,offset:0}),end:s(Y.length>0?Y[Y.length-2][1].end:{line:1,column:1,offset:0})},qe=-1;++qe".charCodeAt(0)?o(g):(i.enter(e),i.enter(`${e}Marker`),d(g))}function d(g){return u===t.length?(i.exit(`${e}Marker`),f(g)):g!==t.charCodeAt(u)?o(g):(i.consume(g),u++,d)}function f(g){return i.enter(`${e}Data`),i.enter(`${e}Target`),p(g)}function p(g){return Qe(g)||"<".charCodeAt(0)===g||"#".charCodeAt(0)===g||g===null?s?(i.exit(`${e}Target`),i.exit(`${e}Data`),i.exit(e),a(g)):o(g):(s=!0,i.consume(g),p)}}let n={tokenize:r};return{text:{[t.charCodeAt(0)]:n}}}function PE(){let e="hashtag";function t(i){this.enter({type:e,value:null},i)}function r(i){let a=this.sliceSerialize(i),o=Bi(this.stack);o.value=a}function n(i){this.exit(i)}return{enter:{[e]:t},exit:{[`${e}Target`]:r,[e]:n}}}m();m();var Vi={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};m();var kf={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};var S1={tokenize:_1},FE={text:{[Vi.leftSquareBracket]:S1}};function _1(e,t,r){let n=this;return i;function i(s){return n.previous!==Vi.eof||!n._gfmTasklistFirstContentOfListItem?r(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),a)}function a(s){return Ke(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s!==Vi.rightSquareBracket?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):r(s)}function o(s){return s===Vi.rightSquareBracket?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:C1},t,r)):r(s)}}function C1(e,t,r){let n=this;return Se(e,i,kf.whitespace);function i(a){let o=n.events[n.events.length-1];return o&&o[1].type===kf.whitespace&&a!==Vi.eof&&!Qe(a)?t(a):r(a)}}var NE={exit:{taskListCheckValueChecked:OE,taskListCheckValueUnchecked:OE,paragraph:T1}};function OE(e){let t=this.stack[this.stack.length-2];t.checked=e.type==="taskListCheckValueChecked",t.checkChar=this.sliceSerialize(e)}function T1(e){let t=this.stack[this.stack.length-2],r=this.stack[this.stack.length-1],n=t.children,i=r.children[0],a=-1,o;if(t&&t.type==="listItem"&&typeof t.checked=="boolean"&&i&&i.type==="text"){for(;++a=0;i--){if(!t&&/[`%\n\r]/.test(e[i])){e[i]==="`"&&(r++,r===3&&(t=!0,n=i-1));continue}else if(!t)return{};if(e[i]==="`"&&e[i-1]==="`"&&e[i-2]==="`"&&/[\r\n]/.test(e[i-3]))return JSON.parse(e.slice(i+1,n).trim())}}function HE(e){return[FE,Ki("date",`${e.getSetting("date-trigger")}{`,"}"),Ki("dateLink",`${e.getSetting("date-trigger")}[[`,"]]"),Ki("time",`${e.getSetting("time-trigger")}{`,"}"),Ki("embedWikilink","![[","]]"),Ki("wikilink","[[","]]"),LE(),ME()]}function BE(e){return[NE,$i("date",(t,r)=>{!t||(r.date=t)}),$i("dateLink",(t,r)=>{!t||(r.date=t)}),$i("time",(t,r)=>{!t||(r.time=t)}),$i("embedWikilink",(t,r)=>{if(!t)return;let n=zr(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);r.fileAccessor={target:n.root,isEmbed:!0,stats:i==null?void 0:i.stat}}),$i("wikilink",(t,r)=>{if(!t)return;let n=zr(t),i=e.app.metadataCache.getFirstLinkpathDest(n.root,e.file.path);if(r.fileAccessor={target:n.root,isEmbed:!1},i){let a=Dd(e,i);r.fileMetadata=a.fileMetadata,r.fileMetadataOrder=a.fileMetadataOrder}}),AE((t,r)=>{if(!t.url||/:\/\//.test(t.url)||!/.md$/.test(t.url))return;let n=e.app.metadataCache.getFirstLinkpathDest(decodeURIComponent(t.url),e.file.path);if(r)t.type="embedLink",t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!0,stats:n.stat};else if(t.fileAccessor={target:decodeURIComponent(t.url),isEmbed:!1},n){let i=Dd(e,n);t.fileMetadata=i.fileMetadata,t.fileMetadataOrder=i.fileMetadataOrder}}),PE(),IE()]}function KE(e,t){let r=D1(t),i={...M1(t)},a={};return Object.keys(r).forEach(o=>{o===gn?(i[o]=r[o],a[o]=r[o]):Iw[o]?i[o]=r[o]:a[o]=r[o]}),e.compileSettings(i),{settings:i,frontmatter:a,ast:yl(t,{extensions:[wf(["yaml"]),...HE(e)],mdastExtensions:[CE(["yaml"]),...BE(e)]})}}function xf(e,t){return yl(t,{extensions:HE(e),mdastExtensions:BE(e)})}function kl(e,t,r){let n=e.getSetting("hide-tags-in-title"),i=e.getSetting("hide-date-in-title"),a=Xd(r.children[0]),o=Zd(t,a);(o==="[ ]"||o==="[x]")&&(o="");let s=o,u={titleRaw:Rs(o),blockId:void 0,title:"",titleSearch:"",metadata:{dateStr:void 0,date:void 0,time:void 0,timeStr:void 0,tags:[],fileAccessor:void 0,file:void 0,fileMetadata:void 0,fileMetadataOrder:void 0},dom:void 0,isComplete:!!r.checked};return Uw(r,l=>l.type!=="paragraph",l=>{let c=l;if(c.type==="blockid")return u.blockId=c.value,!0;if(c.type==="hashtag")return u.metadata.tags||(u.metadata.tags=[]),u.metadata.tags.push("#"+c.value),n&&(s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="date"||c.type==="dateLink")return u.metadata.dateStr=c.date,i&&(s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start})),!0;if(c.type==="time")return u.metadata.timeStr=c.time,s=Os(s,{start:l.position.start.offset-a.start,end:l.position.end.offset-a.start}),!0;if(c.type==="embedWikilink")return u.metadata.fileAccessor=c.fileAccessor,!0;if(c.type==="wikilink"||c.type==="link"&&c.fileAccessor)return u.metadata.fileAccessor=c.fileAccessor,u.metadata.fileMetadata=c.fileMetadata,u.metadata.fileMetadataOrder=c.fileMetadataOrder,!0;if(c.type==="embedLink")return u.metadata.fileAccessor=c.fileAccessor,!0}),u.title=Rs(xb(s)),u}function I1(e,t,r){if(e.type!=="heading"||ja(e,{includeImageAlt:!1})!==A("Archive"))return!1;let n=Ww(t,r);return n&&n.type==="thematicBreak"}function VE(e,t,r,n,i){let a=[],o=[];return n.children.forEach((s,u)=>{if(s.type==="heading"){let l=I1(s,n.children,u),c=Xd(s),d=Zd(i,c),f=!1,p=zw(n.children,u,"list",g=>{if(g.type==="heading")return!1;if(g.type==="paragraph"){let y=ja(g);if(y.startsWith("%% kanban:settings"))return!1;if(y===A("Complete"))return f=!0,!0}return!0});if(l&&p){o.push(...p.children.map(g=>({...ps,id:Ae(),data:kl(e,i,g)})));return}p?a.push({...kr,children:p.children.map(g=>({...ps,id:Ae(),data:kl(e,i,g)})),id:Ae(),data:{...jr(d),shouldMarkItemsComplete:f}}):a.push({...kr,children:[],id:Ae(),data:{...jr(d),shouldMarkItemsComplete:f}})}}),{...hs,id:e.file.path,children:a,data:{settings:t,frontmatter:r,archive:o,isSearching:!1,errors:[]}}}async function Sf(e,t,r){let n=`- [${t.data.isComplete?"x":" "}] ${Ra(r)}${t.data.blockId?` ^${t.data.blockId}`:""}`,i=xf(e,n),a=kl(e,n,i.children[0].children[0]),o=(0,El.default)(t,{data:{$set:a}});try{await qa(e,o)}catch(s){console.error(s)}return o}async function UE(e,t,r,n){let i=`- [${r?"x":" "}] ${Ra(t)}`,a=xf(e,i),o=kl(e,i,a.children[0].children[0]);o.forceEditMode=!!n;let s={...ps,id:Ae(),data:o};try{await qa(e,s)}catch(u){console.error(u)}return s}async function WE(e,t){try{return(0,El.default)(t,{children:{$set:await Promise.all(t.children.map(async r=>{try{return(0,El.default)(r,{children:{$set:await Promise.all(r.children.map(n=>Sf(e,n,n.data.titleRaw)))}})}catch(n){throw e.setError(n),n}}))}})}catch(r){throw e.setError(r),r}}function zE(e){return`- [${e.data.isComplete?"x":" "}] ${Ra(e.data.titleRaw)}${e.data.blockId?` ^${e.data.blockId}`:""}`}function A1(e){let t=[];return t.push(`## ${Ra(Jo(e.data.title,e.data.maxItems))}`),t.push(""),e.data.shouldMarkItemsComplete&&t.push(Wb),e.children.forEach(r=>{t.push(zE(r))}),t.push(""),t.push(""),t.push(""),t.join(` +`)}function L1(e){if(e.length){let t=[zb,"",`## ${A("Archive")}`,""];return e.forEach(r=>{t.push(zE(r))}),t.join(` +`)}return""}function jE(e){let t=e.children.reduce((n,i)=>n+A1(i),"");return["---","",(0,$E.stringifyYaml)(e.data.frontmatter),"---","",""].join(` +`)+t+L1(e.data.archive)+jb(e.data.settings)}var _f=class{constructor(t){this.stateManager=t}newItem(t,r,n){return UE(this.stateManager,t,r,n)}updateItemContent(t,r){return Sf(this.stateManager,t,r)}boardToMd(t){return jE(t)}mdToBoard(t){let{ast:r,settings:n,frontmatter:i}=KE(this.stateManager,t),a=VE(this.stateManager,n,i,r,t);if(!this.stateManager.hasError()&&this.stateManager.state){let s=Yd(this.stateManager.state,a).filter(l=>["/id","/dom","/date","/time","/titleSearch","/file"].every(c=>!l.path.endsWith(c))),u=(0,qE.immutableJSONPatch)(this.stateManager.state,s);return Yw(this.stateManager,u,s)}return qw(this.stateManager,a)}reparseBoard(){return WE(this.stateManager,this.stateManager.state)}};var Cf=class{constructor(t,r,n,i,a){this.stateReceivers=[];this.settingsNotifiers=new Map;this.viewSet=new Set;this.compiledSettings={};this.newBoardPromise=null;this.getSetting=(t,r)=>r&&r[t]!==void 0?r[t]:this.compiledSettings&&this.compiledSettings[t]!==void 0?this.compiledSettings[t]:this.getSettingRaw(t);this.getSettingRaw=(t,r)=>{var n,i;return r&&r[t]!==void 0?r[t]:((i=(n=this.state)==null?void 0:n.data)==null?void 0:i.settings)&&this.state.data.settings[t]!==void 0?this.state.data.settings[t]:this.getGlobalSetting(t)};this.getGlobalSetting=t=>{let r=this.getGlobalSettings();return r&&r[t]!==void 0?r[t]:null};this.app=t,this.file=r.file,this.onEmpty=i,this.getGlobalSettings=a,this.parser=new _f(this),this.registerView(r,n,!0)}getAView(){return this.viewSet.values().next().value}hasError(){var t,r,n;return!!((n=(r=(t=this.state)==null?void 0:t.data)==null?void 0:r.errors)==null?void 0:n.length)}registerView(t,r,n){this.viewSet.has(t)||(this.viewSet.add(t),t.initHeaderButtons()),n&&(this.newBoardPromise!==null?this.newBoardPromise.then(()=>this.newBoard(r)):this.newBoardPromise=this.newBoard(r).then(()=>{this.newBoardPromise=null}).catch(i=>{console.error(i),this.setError(i)}))}unregisterView(t){this.viewSet.has(t)&&(this.viewSet.delete(t),this.viewSet.size===0&&this.onEmpty())}buildSettingRetrievers(){return{getGlobalSettings:this.getGlobalSettings,getGlobalSetting:this.getGlobalSetting,getSetting:this.getSetting}}async newBoard(t){try{await this.setState(await this.getParsedBoard(t),!1)}catch(r){this.setError(r)}}saveToDisk(){if(this.state.data.errors.length>0)return;let t=this.getAView();if(t){let r=this.parser.boardToMd(this.state);t.requestSaveToDisk(r),this.viewSet.forEach(n=>{n.data=r})}}softRefresh(){this.stateReceivers.forEach(t=>t({...this.state}))}async forceRefresh(){if(this.state)try{this.compileSettings(),this.state=await this.parser.reparseBoard(),this.stateReceivers.forEach(t=>t(this.state)),this.settingsNotifiers.forEach(t=>{t.forEach(r=>r())}),this.viewSet.forEach(t=>t.initHeaderButtons())}catch(t){console.error(t),this.setError(t)}}async setState(t,r=!0){var n;try{let i=(n=this.state)==null?void 0:n.data.settings,a=typeof t=="function"?await t(this.state):t,o=a==null?void 0:a.data.settings;i&&o&&Jb(i,o)?(this.state=(0,Ui.default)(this.state,{data:{settings:{$set:o}}}),this.compileSettings(),this.state=await this.parser.reparseBoard()):(this.state=a,this.compileSettings()),this.viewSet.forEach(s=>s.initHeaderButtons()),r&&this.saveToDisk(),this.stateReceivers.forEach(s=>s(this.state)),i!==o&&o&&this.settingsNotifiers.forEach((s,u)=>{(!i&&o||i[u]!==o[u])&&s.forEach(l=>l())})}catch(i){console.error(i),this.setError(i)}}useState(){let[t,r]=P.useState(this.state);return P.useEffect(()=>(this.stateReceivers.push(n=>{r(n)}),r(this.state),()=>{this.stateReceivers.remove(r)}),[]),t}useSetting(t){let[r,n]=P.useState(this.getSetting(t));return P.useEffect(()=>{let i=()=>{n(this.getSetting(t))};return this.settingsNotifiers.has(t)?this.settingsNotifiers.get(t).push(i):this.settingsNotifiers.set(t,[i]),()=>{this.settingsNotifiers.get(t).remove(i)}},[]),r}compileSettings(t){var s,u,l,c,d,f,p;let r=this.getGlobalSetting("metadata-keys")||[],n=this.getSettingRaw("metadata-keys",t)||[],i=this.getSettingRaw("date-format",t)||Nr(this.app),a=this.getSettingRaw("time-format",t)||ui(this.app),o=this.getSettingRaw("archive-date-format",t)||`${i} ${a}`;this.compiledSettings={"date-format":i,"date-display-format":this.getSettingRaw("date-display-format",t)||i,"date-trigger":this.getSettingRaw("date-trigger",t)||js,"time-format":a,"time-trigger":this.getSettingRaw("time-trigger",t)||qs,"link-date-to-daily-note":this.getSettingRaw("link-date-to-daily-note",t),"hide-date-in-title":this.getSettingRaw("hide-date-in-title",t),"hide-tags-in-title":this.getSettingRaw("hide-tags-in-title",t),"metadata-keys":[...r,...n],"archive-date-separator":this.getSettingRaw("archive-date-separator")||"","archive-date-format":o,"show-add-list":(s=this.getSettingRaw("show-add-list",t))!=null?s:!0,"show-archive-all":(u=this.getSettingRaw("show-archive-all",t))!=null?u:!0,"show-view-as-markdown":(l=this.getSettingRaw("show-view-as-markdown",t))!=null?l:!0,"show-board-settings":(c=this.getSettingRaw("show-board-settings",t))!=null?c:!0,"show-search":(d=this.getSettingRaw("show-search",t))!=null?d:!0,"tag-colors":(f=this.getSettingRaw("tag-colors",t))!=null?f:[],"date-colors":(p=this.getSettingRaw("date-colors",t))!=null?p:[]}}async getParsedBoard(t){let r=t.trim(),n={...hs,id:this.file.path,children:[],data:{archive:[],settings:{"kanban-plugin":"basic"},frontmatter:{},isSearching:!1,errors:[]}};try{r&&(n=await this.parser.mdToBoard(r))}catch(i){console.error(i),n=(0,Ui.default)(n,{data:{errors:{$push:[{description:i.toString(),stack:i.stack}]}}})}return n}setError(t){this.setState((0,Ui.default)(this.state,{data:{errors:{$push:[{description:t.toString(),stack:t.stack}]}}}),!1)}onFileMetadataChange(){this.reparseBoardFromMd()}async reparseBoardFromMd(){try{this.setState(await this.getParsedBoard(this.getAView().data),!1)}catch(t){console.error(t),this.setError(t)}}async archiveCompletedCards(){let t=this.state,r=[],n=!!this.getSetting("archive-with-date"),i=this.getSetting("archive-date-separator"),a=this.getSetting("archive-date-format"),o=this.getSetting("append-archive-date"),s=l=>{let c=[(0,YE.moment)().format(a)];i&&c.push(i),c.push(l.data.titleRaw),o&&c.reverse();let d=c.join(" ");return this.parser.updateItemContent(l,d)},u=t.children.map(l=>(0,Ui.default)(l,{children:{$set:l.children.filter(c=>((l.data.shouldMarkItemsComplete||c.data.isComplete)&&r.push(c),!c.data.isComplete&&!l.data.shouldMarkItemsComplete))}}));this.app.workspace.trigger("kanban:board-cards-archived",this.file,r);try{this.setState((0,Ui.default)(t,{children:{$set:u},data:{archive:{$push:n?await Promise.all(r.map(l=>s(l))):r}}}))}catch(l){this.setError(l)}}getNewItem(t,r,n){return this.parser.newItem(t,r,n)}updateItemContent(t,r){return this.parser.updateItemContent(t,r)}};var Tf=class extends Tt.Plugin{constructor(){super(...arguments);this.settings={};this.kanbanFileModes={};this.stateManagers=new Map;this.windowRegistry=new Map;this._loaded=!1;this.isShiftPressed=!1;this.handleShift=t=>{this.isShiftPressed=t.shiftKey}}async loadSettings(){this.settings=Object.assign({},await this.loadData())}async saveSettings(){await this.saveData(this.settings)}unload(){Promise.all(app.workspace.getLeavesOfType(yn).map(t=>(this.kanbanFileModes[t.id]="markdown",this.setMarkdownView(t)))).then(()=>{super.unload()})}onunload(){this.windowRegistry.forEach((t,r)=>{t.viewStateReceivers.forEach(n=>n([])),this.unmount(r)}),this.unmount(window),this.stateManagers.clear(),this.windowRegistry.clear(),this.kanbanFileModes={},window.removeEventListener("keydown",this.handleShift),window.removeEventListener("keyup",this.handleShift),app.workspace.unregisterHoverLinkSource(gn)}async onload(){var t,r;await this.loadSettings(),this.registerEvent(app.workspace.on("window-open",(n,i)=>{this.mount(i)})),this.registerEvent(app.workspace.on("window-close",(n,i)=>{this.unmount(i)})),this.settingsTab=new Ud(this,{onSettingsChange:async n=>{this.settings=n,await this.saveSettings(),this.stateManagers.forEach(i=>{i.forceRefresh()})}}),this.addSettingTab(this.settingsTab),this.registerView(yn,n=>new Hn(n,this)),this.registerMonkeyPatches(),this.registerCommands(),this.registerEvents(),this.mount(window),(r=(t=app.workspace.floatingSplit)==null?void 0:t.children)==null||r.forEach(n=>{this.mount(n.win)}),window.addEventListener("keydown",this.handleShift),window.addEventListener("keyup",this.handleShift)}getKanbanViews(t){let r=this.windowRegistry.get(t);return r?Array.from(r.viewMap.values()):[]}getKanbanView(t,r){let n=this.windowRegistry.get(r);if(n==null?void 0:n.viewMap.has(t))return n.viewMap.get(t);for(let i of this.windowRegistry.values())if(i.viewMap.has(t))return i.viewMap.get(t);return null}getStateManager(t){return this.stateManagers.get(t)}getStateManagerFromViewID(t,r){let n=this.getKanbanView(t,r);return n?this.stateManagers.get(n.file):null}useViewState(t){let[r,n]=P.useState(this.getKanbanViews(t));return P.useEffect(()=>{let i=this.windowRegistry.get(t);return i==null||i.viewStateReceivers.push(n),()=>{i==null||i.viewStateReceivers.remove(n)}},[t]),r}addView(t,r,n){let i=t.getWindow(),a=this.windowRegistry.get(i);if(!a)return;a.viewMap.has(t.id)||a.viewMap.set(t.id,t);let o=t.file;this.stateManagers.has(o)?this.stateManagers.get(o).registerView(t,r,n):this.stateManagers.set(o,new Cf(this.app,t,r,()=>this.stateManagers.delete(o),()=>this.settings)),a.viewStateReceivers.forEach(s=>s(this.getKanbanViews(i)))}removeView(t){let r=Array.from(this.windowRegistry.entries()).find(([,o])=>o.viewMap.has(t.id),[]);if(!r)return;let[n,i]=r,a=t.file;i.viewMap.has(t.id)&&i.viewMap.delete(t.id),this.stateManagers.has(a)&&(this.stateManagers.get(a).unregisterView(t),i.viewStateReceivers.forEach(o=>o(this.getKanbanViews(n))))}handleViewFileRename(t,r){let n=t.getWindow();if(!this.windowRegistry.has(n))return;let i=this.windowRegistry.get(n),a=`${t.leaf.id}:::${r}`;i.viewMap.has(a)&&i.viewMap.delete(a),i.viewMap.has(t.id)||i.viewMap.set(t.id,t),t.isPrimary&&this.getStateManager(t.file).softRefresh()}mount(t){if(this.windowRegistry.has(t))return;let r=t.document.body.createDiv();this.windowRegistry.set(t,{viewMap:new Map,viewStateReceivers:[],appRoot:r}),P.render(Vb(t,this),r)}unmount(t){if(!this.windowRegistry.has(t))return;let r=this.windowRegistry.get(t);for(let n of r.viewMap.values())n.destroy();P.unmountComponentAtNode(r.appRoot),r.appRoot.remove(),r.viewMap.clear(),r.viewStateReceivers.length=0,r.appRoot=null,this.windowRegistry.delete(t)}async setMarkdownView(t,r=!0){await t.setViewState({type:"markdown",state:t.view.getState(),popstate:!0},{focus:r})}async setKanbanView(t){await t.setViewState({type:yn,state:t.view.getState(),popstate:!0})}async newKanban(t){var n;let r=t||app.fileManager.getNewFileParent(((n=app.workspace.getActiveFile())==null?void 0:n.path)||"");try{let i=await app.fileManager.createNewMarkdownFile(r,A("Untitled Kanban"));await app.vault.modify(i,Td),await app.workspace.getLeaf().setViewState({type:yn,state:{file:i.path}})}catch(i){console.error("Error creating kanban board:",i)}}registerEvents(){this.registerEvent(app.workspace.on("file-menu",(r,n,i,a)=>{if(n instanceof Tt.TFolder){r.addItem(o=>{o.setTitle(A("New kanban board")).setIcon(Va).onClick(()=>this.newKanban(n))});return}if(!Tt.Platform.isMobile&&n instanceof Tt.TFile&&a&&i==="sidebar-context-menu"&&yc(n)){let o=this.getKanbanViews(Ze(a.view.containerEl)),s=!1;for(let u of o)if(u.file===n){u.onPaneMenu(r,"more-options",!1),s=!0;break}if(!s){r.addItem(u=>{u.setTitle(A("Open as kanban board")).setIcon(Va).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=yn,this.setKanbanView(a)})});return}}(a==null?void 0:a.view)instanceof Tt.MarkdownView&&n instanceof Tt.TFile&&i==="pane-more-options"&&yc(n)&&r.addItem(o=>{o.setTitle(A("Open as kanban board")).setIcon(Va).setSection("pane").onClick(()=>{this.kanbanFileModes[a.id||n.path]=yn,this.setKanbanView(a)})})})),this.registerEvent(app.vault.on("rename",(r,n)=>{app.workspace.getLeavesOfType(yn).forEach(a=>{a.view.handleRename(r.path,n)})}));let t=(0,Tt.debounce)(r=>{this.stateManagers.forEach(n=>{n.file!==r&&n.onFileMetadataChange()})},2e3,!0);this.registerEvent(app.vault.on("modify",r=>{r instanceof Tt.TFile&&t(r)})),this.registerEvent(app.metadataCache.on("changed",r=>{t(r)})),this.registerEvent(app.metadataCache.on("dataview:metadata-change",(r,n)=>{t(n)})),this.registerEvent(app.metadataCache.on("dataview:api-ready",()=>{this.stateManagers.forEach(r=>{r.forceRefresh()})})),app.workspace.registerHoverLinkSource(gn,{display:"Kanban",defaultMod:!0})}registerCommands(){this.addCommand({id:"create-new-kanban-board",name:A("Create new board"),callback:()=>this.newKanban()}),this.addCommand({id:"archive-completed-cards",name:A("Archive completed cards in active board"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(Hn);if(!r)return!1;if(t)return!0;this.stateManagers.get(r.file).archiveCompletedCards()}}),this.addCommand({id:"toggle-kanban-view",name:A("Toggle between Kanban and markdown mode"),checkCallback:t=>{let r=app.workspace.getActiveFile();if(!r)return!1;let n=app.metadataCache.getFileCache(r),i=!!(n==null?void 0:n.frontmatter)&&!!n.frontmatter[gn];if(t)return i;let a=app.workspace.getActiveViewOfType(Hn);if(a)this.kanbanFileModes[a.leaf.id||r.path]="markdown",this.setMarkdownView(a.leaf);else if(i){let o=app.workspace.getActiveViewOfType(Tt.MarkdownView);o&&(this.kanbanFileModes[o.leaf.id||r.path]=yn,this.setKanbanView(o.leaf))}}}),this.addCommand({id:"convert-to-kanban",name:A("Convert empty note to Kanban"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(Tt.MarkdownView);if(!r)return!1;let n=r.file.stat.size===0;if(t)return n;n&&app.vault.modify(r.file,Td).then(()=>{this.setKanbanView(r.leaf)}).catch(i=>console.error(i))}}),this.addCommand({id:"add-kanban-lane",name:A("Add a list"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(Hn);if(t)return r&&r instanceof Hn;r&&r instanceof Hn&&r.emitter.emit("showLaneForm",void 0)}}),this.addCommand({id:"open-board-settings",name:A("Open board settings"),checkCallback:t=>{let r=app.workspace.getActiveViewOfType(Hn);if(!r)return!1;if(t)return!0;r.getBoardSettings()}})}registerMonkeyPatches(){let t=this;app.workspace.onLayoutReady(()=>{this.register(Ml(app.commands,{executeCommand(r){return function(n){let i=app.workspace.getActiveViewOfType(Hn);return i&&(n==null?void 0:n.id)&&i.emitter.emit("hotkey",n.id),r.call(this,n)}}}))}),this.register(Ml(Tt.WorkspaceLeaf.prototype,{detach(r){return function(){var i;let n=(i=this.view)==null?void 0:i.getState();return(n==null?void 0:n.file)&&t.kanbanFileModes[this.id||n.file]&&delete t.kanbanFileModes[this.id||n.file],r.apply(this)}},setViewState(r){return function(n,...i){var a;if(t._loaded&&n.type==="markdown"&&((a=n.state)==null?void 0:a.file)&&t.kanbanFileModes[this.id||n.state.file]!=="markdown"){let o=t.app.metadataCache.getCache(n.state.file);if((o==null?void 0:o.frontmatter)&&o.frontmatter[gn]){let s={...n,type:yn};return t.kanbanFileModes[n.state.file]=yn,r.apply(this,[s,...i])}}return r.apply(this,[n,...i])}}}))}};0&&(module.exports={}); +/*! + * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2021 Joachim Wester + * MIT license + */ +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2022 Joachim Wester + * MIT licensed + */ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +/*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ diff --git a/.obsidian/plugins/obsidian-kanban/manifest.json b/.obsidian/plugins/obsidian-kanban/manifest.json new file mode 100644 index 0000000..4bbf3fc --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-kanban", + "name": "Kanban", + "version": "1.5.3", + "minAppVersion": "1.0.0", + "description": "Create markdown-backed Kanban boards in Obsidian.", + "author": "mgmeyers", + "authorUrl": "https://github.com/mgmeyers/obsidian-kanban", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-kanban/styles.css b/.obsidian/plugins/obsidian-kanban/styles.css new file mode 100644 index 0000000..304274d --- /dev/null +++ b/.obsidian/plugins/obsidian-kanban/styles.css @@ -0,0 +1 @@ +.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #dddddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=text] .choices__button:hover,.choices[data-type*=text] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #dddddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #dddddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.choices__list--dropdown.is-active{visibility:visible}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\fffd;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translateY(-20px)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate(0)}}.workspace-leaf-content[data-type=kanban] .view-content{padding:0}.workspace-leaf-content[data-type=kanban]>.view-header{display:flex}.kanban-plugin{--lane-width: 272px}.kanban-plugin{contain:content;height:100%;width:100%;position:relative;display:flex;flex-direction:column}.kanban-plugin.something-is-dragging{cursor:grabbing;cursor:-webkit-grabbing}.kanban-plugin.something-is-dragging *{pointer-events:none}.kanban-plugin__item button,.kanban-plugin__lane button,.kanban-plugin button{line-height:1;padding:10px 12px;margin:0;transition:.1s color,.1s background-color}.kanban-plugin__search-wrapper{width:100%;position:sticky;top:0;left:0;padding:10px 13px;display:flex;justify-content:flex-end;align-items:center;z-index:2;background-color:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}button.kanban-plugin__search-cancel-button{display:flex;line-height:1;padding:6px;border:1px solid var(--background-modifier-border);background:var(--background-secondary-alt);color:var(--text-muted);margin:0 0 0 5px;font-size:16px}button.kanban-plugin__search-cancel-button .kanban-plugin__icon{display:flex}.kanban-plugin__icon{display:inline-block;line-height:1}.kanban-plugin__icon>svg{width:1em;height:1em}.kanban-plugin__board{display:flex;width:100%;height:100%}.kanban-plugin__board>div{display:flex;align-items:flex-start;justify-content:flex-start;padding:1rem;width:fit-content;height:100%}.kanban-plugin__board.is-adding-lane>div{padding-right:calc(250px + 1rem)}.kanban-plugin__lane-wrapper{display:flex;flex-shrink:0;margin-right:10px;max-height:100%;width:var(--lane-width)}.kanban-plugin__lane{width:100%;display:flex;flex-direction:column;background-color:var(--background-secondary);border-radius:6px;border:1px solid var(--background-modifier-border)}.kanban-plugin__placeholder.kanban-plugin__lane-placeholder{height:100%;flex-grow:1;margin-right:5px}.kanban-plugin__lane.is-hidden{display:none}.kanban-plugin__lane button{padding:8px 10px}.kanban-plugin__lane-form-wrapper{position:absolute;top:1rem;right:1rem;width:250px;background-color:var(--background-secondary);border-radius:6px;border:2px solid hsla(var(--interactive-accent-hsl),.7);z-index:var(--layer-popover);box-shadow:0 .5px 1px .5px #0000001a,0 2px 10px #0000001a,0 10px 20px #0000001a}.kanban-plugin__lane-input-wrapper{padding:10px}.kanban-plugin__item-input-actions,.kanban-plugin__lane-input-actions{display:flex;align-items:flex-start;justify-content:flex-start;padding:0 10px 10px}.kanban-plugin__item-input-actions button,.kanban-plugin__lane-input-actions button{display:block;margin-right:5px}.kanban-plugin__item-action-add,.kanban-plugin__lane-action-add{background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__item-action-add:hover,.kanban-plugin__lane-action-add:hover{background-color:var(--interactive-accent-hover)}.kanban-plugin__lane-header-wrapper{padding:8px 12px 8px 8px;display:flex;align-items:center;flex-shrink:0;flex-grow:0;border-bottom:1px solid var(--background-modifier-border)}.will-prepend .kanban-plugin__lane-header-wrapper{border-bottom:none}.kanban-plugin__lane-grip{cursor:grab;flex-grow:0;margin-right:5px;color:var(--text-faint)}.kanban-plugin__lane-grip:active{cursor:grabbing}.kanban-plugin__lane-grip>svg{display:block;height:1rem}.kanban-plugin__lane-title{font-weight:600;font-size:.875rem;flex-grow:1;width:100%;display:flex;flex-direction:column}.kanban-plugin__lane-title-text{flex-grow:1}div.kanban-plugin__markdown-preview-view>div>*{overflow-wrap:anywhere}div.kanban-plugin__lane-title-count{border-radius:3px;color:var(--text-muted);display:block;font-size:13px;line-height:1;padding:4px;margin-left:5px}div.kanban-plugin__lane-title-count.wip-exceeded{font-weight:bold;color:var(--text-normal);background-color:rgba(var(--background-modifier-error-rgb),.25)}.kanban-plugin__item button.kanban-plugin__item-prefix-button,.kanban-plugin__item button.kanban-plugin__item-postfix-button,.kanban-plugin__lane button.kanban-plugin__lane-settings-button{font-size:13px;line-height:1;color:var(--text-muted);padding:4px;display:flex;margin-left:5px;background-color:transparent;margin-right:-4px}.kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,.kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-accent)}.kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,.kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,.kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:transparent;color:var(--text-normal)}.kanban-plugin__item button.kanban-plugin__item-prefix-button{margin:4px 7px 4px 0;padding:0}.kanban-plugin__lane-action-wrapper,.kanban-plugin__item-edit-archive-button,.kanban-plugin__item-settings-actions .kanban-plugin__icon,.kanban-plugin__item-edit-archive-button>.kanban-plugin__icon,.kanban-plugin__item-prefix-button>.kanban-plugin__icon,.kanban-plugin__item-postfix-button>.kanban-plugin__icon,.kanban-plugin__lane-settings-button>.kanban-plugin__icon{display:flex}.kanban-plugin__lane-settings-button-wrapper{display:flex}button.kanban-plugin__lane-settings-button+button.kanban-plugin__lane-settings-button{margin-left:2px}.kanban-plugin__lane-settings-button svg{width:1em;height:1em}.kanban-plugin__lane-items-wrapper{margin:4px;height:100%}.kanban-plugin__lane-items{padding:4px;margin:0 4px;display:flex;flex-direction:column}.kanban-plugin__lane-items>div{margin-top:4px}.kanban-plugin__lane-items>.kanban-plugin__placeholder{flex-grow:1}.kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{height:2.55em;border:3px dashed rgba(var(--text-muted-rgb),.1);margin-bottom:4px;border-radius:6px;transition:border .2s ease}.is-sorting .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border-color:hsla(var(--interactive-accent-hsl),.6)}.kanban-plugin__item-button-wrapper{border-top:1px solid var(--background-modifier-border);padding:8px;flex-shrink:0;flex-grow:0}.kanban-plugin__item-button-wrapper>button{text-align:left;width:100%}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-button-wrapper{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);padding:8px}.kanban-plugin__item-form .kanban-plugin__item-input-wrapper{padding:6px 8px;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);border-radius:var(--input-radius);min-height:var(--input-height)}.kanban-plugin__lane-header-wrapper+.kanban-plugin__item-form{border-top:none;border-bottom:1px solid var(--background-modifier-border);padding:4px 8px 8px}.kanban-plugin__item-input-wrapper{display:flex;flex-direction:column;flex-grow:1}.kanban-plugin button.kanban-plugin__item-submit-button{background-color:var(--background-secondary-alt);flex-grow:0;flex-shrink:1;width:auto;margin-top:5px;line-height:1;font-size:14px}button.kanban-plugin__new-item-button{background-color:transparent;color:var(--text-muted)}.kanban-plugin__new-item-button:hover{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__drag-container>.kanban-plugin__item-wrapper .kanban-plugin__item{border-color:var(--interactive-accent);box-shadow:var(--shadow-s),0 0 0 2px hsla(var(--interactive-accent-hsl),.2)}.kanban-plugin__item{font-size:.875rem;border:1px solid var(--background-modifier-border);border-radius:var(--input-radius);overflow:hidden;transition:.3s opacity cubic-bezier(.25,1,.5,1)}.kanban-plugin__item.is-search-hit{box-shadow:0 15px 25px #0003,0 0 0 1px var(--background-modifier-border)}.kanban-plugin__item.is-search-miss{font-size:.75rem;opacity:.5}.kanban-plugin__item.is-search-miss .kanban-plugin__item-metadata-wrapper{display:none}.kanban-plugin__item-content-wrapper{background:var(--background-primary)}.kanban-plugin__item-title-wrapper{background:var(--background-primary);display:flex;padding:6px 8px;align-items:center}.kanban-plugin__item-title-wrapper:not(:only-child){border-bottom:1px solid var(--background-modifier-border)}.kanban-plugin__item-title{width:100%;line-height:var(--line-height-tight);overflow:hidden}.kanban-plugin__markdown-preview-view{font-family:var(--font-text, var(--default-font));font-size:.875rem;line-height:var(--line-height-tight);padding:unset;width:unset;height:unset;position:unset;overflow-y:unset;overflow-wrap:unset;color:unset;user-select:unset;-webkit-user-select:unset}.kanban-plugin__markdown-preview-view p,.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol,.kanban-plugin__markdown-preview-view blockquote{margin-block-start:.66em;margin-block-end:.66em}.kanban-plugin__markdown-preview-view blockquote{margin-inline-start:0;margin-inline-end:0}.kanban-plugin__markdown-preview-view ul ol,.kanban-plugin__markdown-preview-view ol ul,.kanban-plugin__markdown-preview-view ul ul,.kanban-plugin__markdown-preview-view ol ol{margin-block-start:0em;margin-block-end:0em}.kanban-plugin__markdown-preview-view>div>*{overflow-x:auto;overflow-wrap:break-word}.kanban-plugin__markdown-preview-view>div>*:first-child,.kanban-plugin__markdown-preview-view>div>.frontmatter-container+*{margin-top:0}.kanban-plugin__markdown-preview-view>div>*:last-child{margin-bottom:0}.kanban-plugin__markdown-preview-view ul,.kanban-plugin__markdown-preview-view ol{padding-inline-start:24px}.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view p,.kanban-plugin__meta-value .kanban-plugin__markdown-preview-view{font-size:inherit;color:inherit;line-height:inherit}.kanban-plugin__markdown-preview-view.inline p,.kanban-plugin__markdown-preview-view.inline{display:inline-block}.kanban-plugin__markdown-preview-view .frontmatter,.kanban-plugin__markdown-preview-view .frontmatter-container{display:none}.kanban-plugin__markdown-preview-view .file-link span{display:inline-flex;align-items:center;justify-content:center;color:var(--text-faint);margin-left:2px;position:relative;top:3px}.kanban-plugin__embed-link-wrapper{padding:2px;float:right}.kanban-plugin__item-metadata-wrapper:not(:empty){background-color:var(--background-primary-alt);padding:6px 8px}.kanban-plugin__item-metadata:not(:empty){padding-top:5px;font-size:12px;font-weight:500;color:var(--text-muted)}.kanban-plugin__item-metadata>span{display:block}.kanban-plugin__item-metadata .is-button{cursor:var(--cursor)}.kanban-plugin__item-metadata .is-button:hover{color:var(--text-normal)}.kanban-plugin__item-metadata-date-relative:first-letter{text-transform:uppercase}.kanban-plugin__item-metadata a{text-decoration:none}.kanban-plugin__item-metadata-time:before{content:" \2022 "}.kanban-plugin__item-metadata-time.is-button:hover:before{color:var(--text-muted)}.kanban-plugin__item-tags:not(:empty){padding-top:2px}.kanban-plugin__item-tag{display:inline-block;margin-right:4px}.kanban-plugin__item-tags .kanban-plugin__item-tag{font-size:12px;background-color:var(--tag-background-color, hsla(var(--interactive-accent-hsl), .1));color:var(--tag-color, var(--text-accent));margin:3px 3px 0 0}.kanban-plugin__item-tag.is-search-match,.kanban-plugin__item-tags .kanban-plugin__item-tag.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-table{width:100%;margin:0;line-height:1.5;font-size:.75rem}.kanban-plugin__meta-table td{vertical-align:top;padding:3px 0;width:10%}.kanban-plugin__meta-table td+td{width:90%}.kanban-plugin__meta-table td:only-child{width:100%}.kanban-plugin__meta-table td.kanban-plugin__meta-key{white-space:nowrap;padding-right:5px;color:var(--text-muted)}.kanban-plugin__meta-table td.kanban-plugin__meta-key.is-search-match>span{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__meta-value{white-space:pre-wrap;display:flex}.kanban-plugin__meta-value>.is-search-match,.kanban-plugin__meta-value.is-search-match{background-color:var(--text-highlight-bg);color:var(--text-normal)}.kanban-plugin__item-prefix-button-wrapper,.kanban-plugin__item-postfix-button-wrapper{display:flex;flex-grow:0;flex-shrink:0;align-self:start}.kanban-plugin__item-prefix-button-wrapper{flex-direction:column}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]{margin:4px 7px 4px 0;width:15px;height:15px;filter:hue-rotate(42deg)}.kanban-plugin__item-prefix-button-wrapper input[type=checkbox]+button{margin-top:10px}button.kanban-plugin__item-postfix-button{visibility:hidden;opacity:0;transition:.1s opacity;display:flex;align-self:flex-start}button.kanban-plugin__item-postfix-button.is-enabled,.kanban-plugin__item:hover button.kanban-plugin__item-postfix-button{visibility:visible;opacity:1}.kanban-plugin__item-settings-actions{padding:5px;display:flex}.kanban-plugin__item-settings-actions>button{line-height:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;width:100%}.kanban-plugin__lane-action-wrapper button>.kanban-plugin__icon,.kanban-plugin__item-settings-actions button>.kanban-plugin__icon{margin-right:5px}.kanban-plugin__item-settings-actions>button:first-child,.kanban-plugin__lane-action-wrapper>button:first-child{margin-right:2.5px}.kanban-plugin__item-settings-actions>button:last-child,.kanban-plugin__lane-action-wrapper>button:last-child{margin-left:2.5px}.kanban-plugin__archive-lane-button,.kanban-plugin__item-button-archive{color:var(--text-muted);border:1px solid var(--background-modifier-border)}.kanban-plugin__archive-lane-button:hover,.kanban-plugin__item-button-archive:hover{color:var(--text-normal)}.kanban-plugin__item-button-delete{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__item-button-delete:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__checkbox-wrapper{border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);padding:10px;margin-bottom:10px;display:flex;align-items:center}.kanban-plugin__checkbox-wrapper .checkbox-container{flex-shrink:0;flex-grow:0;margin-left:15px}.kanban-plugin__checkbox-label{font-size:.8125rem;line-height:1.4}.kanban-plugin__lane-setting-wrapper>div{border-top:none;border-bottom:none;padding:10px 15px;margin-bottom:0}.kanban-plugin__lane-setting-wrapper>div:last-child{border-bottom:1px solid var(--background-modifier-border);margin-bottom:10px}.kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),.2);background-color:rgba(var(--background-modifier-error-rgb),.1);border-radius:4px;padding:10px;margin:5px 10px}.theme-dark .kanban-plugin__action-confirm-wrapper{border:1px solid rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button,.kanban-plugin__archive-lane-button{display:flex;align-items:center;justify-content:center;font-size:.75rem;width:50%}.kanban-plugin__delete-lane-button{border:1px solid rgba(var(--background-modifier-error-rgb),.15);color:rgba(var(--background-modifier-error-rgb),1)}.kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.2);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button{background-color:transparent;border:1px solid rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.theme-dark .kanban-plugin__delete-lane-button:hover{background-color:rgba(var(--background-modifier-error-rgb),1);color:var(--text-error)}.kanban-plugin__action-confirm-text{font-size:.875rem;color:var(--text-error);margin-bottom:10px;line-height:1.4}button.kanban-plugin__confirm-action-button{border:1px solid rgba(var(--background-modifier-error-rgb),.2);margin-right:5px;color:var(--text-error)}button.kanban-plugin__confirm-action-button:hover{background-color:rgba(var(--background-modifier-error-rgb),.5)}button.kanban-plugin__cancel-action-button{border:1px solid var(--background-modifier-border)}.kanban-plugin__grow-wrap{width:100%;display:grid}.kanban-plugin__grow-wrap:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}.kanban-plugin__grow-wrap>textarea{resize:none;overflow:hidden;tab-size:2}.kanban-plugin__grow-wrap>textarea:focus{border:none;box-shadow:none}.kanban-plugin__grow-wrap>textarea,.kanban-plugin__grow-wrap:after{border:none;border-radius:0;padding:0;font:inherit;line-height:var(--line-height-tight);grid-area:1 / 1 / 2 / 2;font-size:.875rem;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap}.kanban-plugin__autocomplete{font-size:.875rem;border:1px solid var(--background-modifier-border);background-color:var(--background-primary);list-style:none;padding:0;margin:0;min-width:20ch;max-width:40ch;max-height:200px;border-radius:6px;box-shadow:0 15px 25px #0003;overflow-x:hidden;overflow-y:auto}.kanban-plugin__autocomplete li{margin:0}.kanban-plugin__autocomplete li em{opacity:.6}.kanban-plugin .textcomplete-footer,.kanban-plugin .textcomplete-header{display:none}.kanban-plugin__autocomplete-item-active,.kanban-plugin__autocomplete-item{border-top:1px solid var(--background-modifier-border);padding:4px 6px;cursor:var(--cursor)}.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item,.kanban-plugin__autocomplete .textcomplete-header+.kanban-plugin__autocomplete-item-active{border-top:none}.kanban-plugin__autocomplete-item:hover,.kanban-plugin__autocomplete-item-active{color:var(--text-on-accent);background-color:var(--interactive-accent-hover)}.kanban-plugin__file-suggestion-wrapper{display:flex;line-height:1.2}.kanban-plugin__file-suggestion-icon{flex-shrink:0;flex-grow:0;padding-right:4px}.kanban-plugin__file-suggestion-subtitle{font-size:.875em;color:var(--text-muted)}.kanban-plugin__autocomplete-item:hover .kanban-plugin__file-suggestion-subtitle,.kanban-plugin__autocomplete-item-active .kanban-plugin__file-suggestion-subtitle{color:var(--text-on-accent)}.modal.kanban-plugin__board-settings-modal{width:var(--modal-width);height:var(--modal-height);max-height:var(--modal-max-height);max-width:var(--modal-max-width);padding:0;display:flex;flex-direction:column}.modal.kanban-plugin__board-settings-modal .modal-content{padding:30px 50px;height:100%;overflow-y:auto;overflow-x:hidden;margin:0}.kanban-plugin__board-settings-modal .setting-item{flex-wrap:wrap;justify-content:space-between}.kanban-plugin__board-settings-modal .setting-item-info{max-width:400px;min-width:300px;width:50%}.kanban-plugin__board-settings-modal .setting-item-control{min-width:300px;flex-shrink:0}.kanban-plugin__board-settings-modal .choices{width:100%;text-align:left}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__inner{background-color:var(--background-primary);border-color:var(--background-modifier-border);padding:0;min-height:0}.kanban-plugin__board-settings-modal .choices[data-type*=select-one] .choices__input{background-color:var(--background-primary);border-bottom-color:var(--background-modifier-border);font-size:14px}.kanban-plugin__board-settings-modal .choices__input{border-radius:0;border-top:none;border-left:none;border-right:none}.kanban-plugin__board-settings-modal .choices__list[role=listbox]{overflow-x:hidden}.kanban-plugin__board-settings-modal .choices__list--single{padding:4px 20px 4px 6px}.kanban-plugin__board-settings-modal .is-open .choices__list--dropdown,.kanban-plugin__board-settings-modal .choices__list--dropdown{background-color:var(--background-primary);border-color:var(--background-modifier-border);word-break:normal;max-height:200px;display:flex;flex-direction:column}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable:after{display:none}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item--selectable{padding:4px 6px}.kanban-plugin__board-settings-modal .choices__list--dropdown .choices__item.is-highlighted{background-color:var(--background-primary-alt)}.kanban-plugin__board-settings-modal .choices__placeholder{opacity:1;color:var(--text-muted)}.kanban-plugin__board-settings-modal .error{border-color:var(--background-modifier-error-hover)!important}.kanban-plugin__date-picker{position:absolute;z-index:var(--layer-popover);--cell-size: 2.4em}.kanban-plugin__date-picker .flatpickr-input{width:0;height:0;opacity:0;border:none;padding:0;display:block;margin-bottom:-1px}.kanban-plugin__date-picker .flatpickr-current-month{color:var(--text-normal);font-weight:600;font-size:inherit;width:100%;position:static;height:auto;display:flex;align-items:center;justify-content:center;padding:0}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--text-normal)}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{fill:currentColor}.kanban-plugin__date-picker .flatpickr-calendar{font-size:13px;overflow:hidden;background-color:var(--background-primary);width:calc(var(--cell-size) * 7 + 8px);box-shadow:0 0 0 1px var(--background-modifier-border),0 15px 25px #0003}.kanban-plugin__date-picker .flatpickr-months{font-size:13px;padding:2px 2px 4px;align-items:center}.kanban-plugin__date-picker .flatpickr-months .flatpickr-current-month input.cur-year,.kanban-plugin__date-picker .flatpickr-months select{border-radius:4px;padding:4px}.kanban-plugin__date-picker .flatpickr-months .numInputWrapper{border-radius:4px}.kanban-plugin__date-picker .flatpickr-months .flatpickr-month{width:100%;height:auto}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month{color:var(--text-normal);fill:currentColor;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;height:auto;padding:5px;position:static;flex-shrink:0}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover{background-color:var(--background-primary-alt);color:var(--text-normal)}.kanban-plugin__date-picker .flatpickr-months .flatpickr-prev-month:hover svg,.kanban-plugin__date-picker .flatpickr-months .flatpickr-next-month:hover svg{fill:currentColor}.kanban-plugin__date-picker .flatpickr-current-month .flatpickr-monthDropdown-months{color:var(--text-normal);font-weight:inherit;margin-right:5px}.kanban-plugin__date-picker .flatpickr-current-month input.cur-year{color:var(--text-normal);font-weight:inherit}.kanban-plugin__date-picker .flatpickr-weekdays{height:auto;padding:8px 0 12px}.kanban-plugin__date-picker span.flatpickr-weekday{font-weight:400;color:var(--text-muted)}.kanban-plugin__date-picker .flatpickr-innerContainer{padding:4px}.kanban-plugin__date-picker .flatpickr-day{color:var(--text-normal);display:inline-flex;align-items:center;justify-content:center;width:var(--cell-size);height:var(--cell-size);line-height:1;border-radius:6px}.kanban-plugin__date-picker .flatpickr-day.today{border-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-day.today:hover{color:var(--text-normal);border-color:var(--interactive-accent);background-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.selected{border-color:var(--interactive-accent);background-color:var(--interactive-accent);color:var(--text-on-accent)}.kanban-plugin__date-picker .flatpickr-day.selected:hover{border-color:var(--interactive-accent);background-color:var(--interactive-accent)}.kanban-plugin__date-picker .flatpickr-days{width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .dayContainer{width:calc(var(--cell-size) * 7);min-width:calc(var(--cell-size) * 7);max-width:calc(var(--cell-size) * 7)}.kanban-plugin__date-picker .flatpickr-day.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.inRange,.kanban-plugin__date-picker .flatpickr-day.today.inRange,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay.today.inRange,.kanban-plugin__date-picker .flatpickr-day:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:hover,.kanban-plugin__date-picker .flatpickr-day:focus,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay:focus,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay:focus{background-color:var(--background-primary-alt);border-color:var(--background-primary-alt)}.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled,.kanban-plugin__date-picker .flatpickr-day.flatpickr-disabled:hover,.kanban-plugin__date-picker .flatpickr-day.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.nextMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed,.kanban-plugin__date-picker .flatpickr-day.notAllowed.prevMonthDay,.kanban-plugin__date-picker .flatpickr-day.notAllowed.nextMonthDay{color:var(--text-faint)}.kanban-plugin__time-picker{position:absolute;max-height:250px;overflow:auto;border-radius:4px;border:1px solid var(--background-modifier-border);box-shadow:0 2px 8px var(--background-modifier-box-shadow);background:var(--background-primary);color:var(--text-normal);font-size:14px;z-index:var(--layer-menu)}.kanban-plugin__time-picker-item{display:flex;align-items:center;color:var(--text-muted);cursor:var(--cursor);line-height:1;padding:6px 8px}.kanban-plugin__time-picker-check{visibility:hidden;display:inline-flex;margin-right:5px}.kanban-plugin__time-picker-item.is-hour{color:var(--text-normal);font-weight:600}.kanban-plugin__time-picker-item.is-selected .kanban-plugin__time-picker-check{visibility:visible}.kanban-plugin__time-picker-item:hover,.kanban-plugin__time-picker-item.is-selected{background:var(--background-secondary)}.kanban-plugin mark{background-color:var(--text-highlight-bg)}.kanban-plugin__draggable-setting-container{border-top:0;padding:0;flex-direction:column}.kanban-plugin__draggable-setting-container>div{width:100%;margin-right:0!important}.kanban-plugin__setting-item-wrapper{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__draggable-setting-container>.kanban-plugin__placeholder{border-top:1px solid var(--background-modifier-border)}.kanban-plugin__setting-item{background-color:var(--background-secondary);width:100%;font-size:16px;display:flex;align-items:flex-start;padding:12px;color:var(--text-muted)}.kanban-plugin__drag-container .kanban-plugin__setting-item{border:1px solid hsla(var(--interactive-accent-hsl),.8);box-shadow:0 15px 25px #0003,0 0 0 2px hsla(var(--interactive-accent-hsl),.8)}.kanban-plugin__setting-controls-wrapper{flex-grow:1;flex-shrink:1}.kanban-plugin__setting-input-wrapper{display:flex;flex-wrap:wrap;margin-bottom:1rem}.kanban-plugin__setting-input-wrapper>div{margin-right:10px}.kanban-plugin__setting-toggle-wrapper>div{display:flex;align-items:center;line-height:1;margin-bottom:10px}.kanban-plugin__setting-toggle-wrapper .checkbox-container{margin-right:10px}.kanban-plugin__setting-button-wrapper{display:flex;justify-content:flex-end;flex-grow:1;flex-shrink:0;max-width:25px}.kanban-plugin__setting-button-wrapper>div{margin-left:12px}.kanban-plugin__setting-key-input-wrapper{margin:1rem 0}.kanban-plugin__setting-key-input-wrapper>input{margin-right:10px}.kanban-plugin__date-color-input-wrapper,.kanban-plugin__tag-color-input-wrapper{display:flex;flex-direction:column;flex-grow:1;gap:1rem}.kanban-plugin__add-tag-color-button{align-self:baseline;margin:0}.kanban-plugin__date-color-wrapper,.kanban-plugin__tag-color-input .kanban-plugin__item-tags{background-color:var(--background-primary);padding:10px;margin:0;border-radius:4px}.kanban-plugin__tag-color-input .kanban-plugin__item-tag{margin-top:0;font-size:13px;font-weight:500;line-height:1.5}.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper .is-button:hover,.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper{display:inline-block;color:var(--date-color, var(--text-muted));line-height:1}.kanban-plugin__item-metadata>.kanban-plugin__item-metadata-date-wrapper.has-background{background-color:var(--date-background-color, transparent);margin-top:4px;border-radius:var(--tag-radius);padding:var(--tag-padding-y) var(--tag-padding-x)}.kanban-plugin__date-color-input-wrapper input[type=number]{width:75px;padding:.6em .8em;height:auto;border-radius:.5em}.kanban-plugin__date-color-input-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__date-color-config{padding:0 0 10px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}.kanban-plugin__date-color-wrapper{display:inline-block;margin-top:10px}.kanban-plugin__date-color-wrapper .kanban-plugin__item-metadata{padding:0}.kanban-plugin__metadata-setting-desc{font-size:14px}.kanban-plugin__setting-button-spacer{visibility:hidden}.kanban-plugin__setting-item-label{font-size:12px;font-weight:bold;margin-bottom:5px}.kanban-plugin__setting-toggle-wrapper .kanban-plugin__setting-item-label{margin-bottom:0}.kanban-plugin__hitbox{border:2px dashed tomato}.kanban-plugin__placeholder{flex-grow:0;flex-shrink:0;width:0;height:0;pointer-events:none}.kanban-plugin__placeholder[data-axis=horizontal]{height:100%}.kanban-plugin__placeholder[data-axis=vertical]{width:100%}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar{background-color:transparent;width:16px;height:16px}body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar-thumb{border:4px solid transparent;background-clip:content-box}.kanban-plugin__scroll-container{will-change:transform}.kanban-plugin__scroll-container.kanban-plugin__horizontal{overflow-y:hidden;overflow-x:auto}.kanban-plugin__scroll-container.kanban-plugin__vertical{overflow-y:auto;overflow-x:hidden}.kanban-plugin__drag-container{contain:layout size;z-index:10000;pointer-events:none;position:fixed;top:0;left:0}.kanban-plugin__loading{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.sk-pulse{width:60px;height:60px;background-color:var(--text-faint);border-radius:100%;animation:sk-pulse 1.2s infinite cubic-bezier(.455,.03,.515,.955)}@keyframes sk-pulse{0%{transform:scale(0)}to{transform:scale(1);opacity:0}}.kanban-plugin__color-picker-wrapper{position:relative}.kanban-plugin__color-picker{position:absolute;top:-5px;left:0;transform:translateY(-100%)} diff --git a/.obsidian/plugins/obsidian-style-settings/data.json b/.obsidian/plugins/obsidian-style-settings/data.json new file mode 100644 index 0000000..77aea66 --- /dev/null +++ b/.obsidian/plugins/obsidian-style-settings/data.json @@ -0,0 +1,4 @@ +{ + "catppuccin-theme-settings@@catppuccin-theme-dark": "ctp-macchiato", + "catppuccin-theme-settings@@catppuccin-theme-accents": "ctp-accent-teal" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-style-settings/main.js b/.obsidian/plugins/obsidian-style-settings/main.js new file mode 100644 index 0000000..9ebf6ac --- /dev/null +++ b/.obsidian/plugins/obsidian-style-settings/main.js @@ -0,0 +1,9848 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ROLLUP +if you want to view the source visit the plugins github repository +*/ + +'use strict'; + +var obsidian = require('obsidian'); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var chroma = createCommonjsModule(function (module, exports) { +/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * 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. The name Gregor Aisch may not 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 GREGOR AISCH 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. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */ + +(function (global, factory) { + module.exports = factory() ; +}(commonjsGlobal, (function () { + var limit = function (x, min, max) { + if ( min === void 0 ) min=0; + if ( max === void 0 ) max=1; + + return x < min ? min : x > max ? max : x; + }; + + var clip_rgb = function (rgb) { + rgb._clipped = false; + rgb._unclipped = rgb.slice(0); + for (var i=0; i<=3; i++) { + if (i < 3) { + if (rgb[i] < 0 || rgb[i] > 255) { rgb._clipped = true; } + rgb[i] = limit(rgb[i], 0, 255); + } else if (i === 3) { + rgb[i] = limit(rgb[i], 0, 1); + } + } + return rgb; + }; + + // ported from jQuery's $.type + var classToType = {}; + for (var i = 0, list = ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Undefined', 'Null']; i < list.length; i += 1) { + var name = list[i]; + + classToType[("[object " + name + "]")] = name.toLowerCase(); + } + var type = function(obj) { + return classToType[Object.prototype.toString.call(obj)] || "object"; + }; + + var unpack = function (args, keyOrder) { + if ( keyOrder === void 0 ) keyOrder=null; + + // if called with more than 3 arguments, we return the arguments + if (args.length >= 3) { return Array.prototype.slice.call(args); } + // with less than 3 args we check if first arg is object + // and use the keyOrder string to extract and sort properties + if (type(args[0]) == 'object' && keyOrder) { + return keyOrder.split('') + .filter(function (k) { return args[0][k] !== undefined; }) + .map(function (k) { return args[0][k]; }); + } + // otherwise we just return the first argument + // (which we suppose is an array of args) + return args[0]; + }; + + var last = function (args) { + if (args.length < 2) { return null; } + var l = args.length-1; + if (type(args[l]) == 'string') { return args[l].toLowerCase(); } + return null; + }; + + var PI = Math.PI; + + var utils = { + clip_rgb: clip_rgb, + limit: limit, + type: type, + unpack: unpack, + last: last, + PI: PI, + TWOPI: PI*2, + PITHIRD: PI/3, + DEG2RAD: PI / 180, + RAD2DEG: 180 / PI + }; + + var input = { + format: {}, + autodetect: [] + }; + + var last$1 = utils.last; + var clip_rgb$1 = utils.clip_rgb; + var type$1 = utils.type; + + + var Color = function Color() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var me = this; + if (type$1(args[0]) === 'object' && + args[0].constructor && + args[0].constructor === this.constructor) { + // the argument is already a Color instance + return args[0]; + } + + // last argument could be the mode + var mode = last$1(args); + var autodetect = false; + + if (!mode) { + autodetect = true; + if (!input.sorted) { + input.autodetect = input.autodetect.sort(function (a,b) { return b.p - a.p; }); + input.sorted = true; + } + // auto-detect format + for (var i = 0, list = input.autodetect; i < list.length; i += 1) { + var chk = list[i]; + + mode = chk.test.apply(chk, args); + if (mode) { break; } + } + } + + if (input.format[mode]) { + var rgb = input.format[mode].apply(null, autodetect ? args : args.slice(0,-1)); + me._rgb = clip_rgb$1(rgb); + } else { + throw new Error('unknown format: '+args); + } + + // add alpha channel + if (me._rgb.length === 3) { me._rgb.push(1); } + }; + + Color.prototype.toString = function toString () { + if (type$1(this.hex) == 'function') { return this.hex(); } + return ("[" + (this._rgb.join(',')) + "]"); + }; + + var Color_1 = Color; + + var chroma = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( chroma.Color, [ null ].concat( args) )); + }; + + chroma.Color = Color_1; + chroma.version = '2.1.2'; + + var chroma_1 = chroma; + + var unpack$1 = utils.unpack; + var max = Math.max; + + var rgb2cmyk = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$1(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + r = r / 255; + g = g / 255; + b = b / 255; + var k = 1 - max(r,max(g,b)); + var f = k < 1 ? 1 / (1-k) : 0; + var c = (1-r-k) * f; + var m = (1-g-k) * f; + var y = (1-b-k) * f; + return [c,m,y,k]; + }; + + var rgb2cmyk_1 = rgb2cmyk; + + var unpack$2 = utils.unpack; + + var cmyk2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$2(args, 'cmyk'); + var c = args[0]; + var m = args[1]; + var y = args[2]; + var k = args[3]; + var alpha = args.length > 4 ? args[4] : 1; + if (k === 1) { return [0,0,0,alpha]; } + return [ + c >= 1 ? 0 : 255 * (1-c) * (1-k), // r + m >= 1 ? 0 : 255 * (1-m) * (1-k), // g + y >= 1 ? 0 : 255 * (1-y) * (1-k), // b + alpha + ]; + }; + + var cmyk2rgb_1 = cmyk2rgb; + + var unpack$3 = utils.unpack; + var type$2 = utils.type; + + + + Color_1.prototype.cmyk = function() { + return rgb2cmyk_1(this._rgb); + }; + + chroma_1.cmyk = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['cmyk']) )); + }; + + input.format.cmyk = cmyk2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$3(args, 'cmyk'); + if (type$2(args) === 'array' && args.length === 4) { + return 'cmyk'; + } + } + }); + + var unpack$4 = utils.unpack; + var last$2 = utils.last; + var rnd = function (a) { return Math.round(a*100)/100; }; + + /* + * supported arguments: + * - hsl2css(h,s,l) + * - hsl2css(h,s,l,a) + * - hsl2css([h,s,l], mode) + * - hsl2css([h,s,l,a], mode) + * - hsl2css({h,s,l,a}, mode) + */ + var hsl2css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hsla = unpack$4(args, 'hsla'); + var mode = last$2(args) || 'lsa'; + hsla[0] = rnd(hsla[0] || 0); + hsla[1] = rnd(hsla[1]*100) + '%'; + hsla[2] = rnd(hsla[2]*100) + '%'; + if (mode === 'hsla' || (hsla.length > 3 && hsla[3]<1)) { + hsla[3] = hsla.length > 3 ? hsla[3] : 1; + mode = 'hsla'; + } else { + hsla.length = 3; + } + return (mode + "(" + (hsla.join(',')) + ")"); + }; + + var hsl2css_1 = hsl2css; + + var unpack$5 = utils.unpack; + + /* + * supported arguments: + * - rgb2hsl(r,g,b) + * - rgb2hsl(r,g,b,a) + * - rgb2hsl([r,g,b]) + * - rgb2hsl([r,g,b,a]) + * - rgb2hsl({r,g,b,a}) + */ + var rgb2hsl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$5(args, 'rgba'); + var r = args[0]; + var g = args[1]; + var b = args[2]; + + r /= 255; + g /= 255; + b /= 255; + + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + + var l = (max + min) / 2; + var s, h; + + if (max === min){ + s = 0; + h = Number.NaN; + } else { + s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min); + } + + if (r == max) { h = (g - b) / (max - min); } + else if (g == max) { h = 2 + (b - r) / (max - min); } + else if (b == max) { h = 4 + (r - g) / (max - min); } + + h *= 60; + if (h < 0) { h += 360; } + if (args.length>3 && args[3]!==undefined) { return [h,s,l,args[3]]; } + return [h,s,l]; + }; + + var rgb2hsl_1 = rgb2hsl; + + var unpack$6 = utils.unpack; + var last$3 = utils.last; + + + var round = Math.round; + + /* + * supported arguments: + * - rgb2css(r,g,b) + * - rgb2css(r,g,b,a) + * - rgb2css([r,g,b], mode) + * - rgb2css([r,g,b,a], mode) + * - rgb2css({r,g,b,a}, mode) + */ + var rgb2css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgba = unpack$6(args, 'rgba'); + var mode = last$3(args) || 'rgb'; + if (mode.substr(0,3) == 'hsl') { + return hsl2css_1(rgb2hsl_1(rgba), mode); + } + rgba[0] = round(rgba[0]); + rgba[1] = round(rgba[1]); + rgba[2] = round(rgba[2]); + if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) { + rgba[3] = rgba.length > 3 ? rgba[3] : 1; + mode = 'rgba'; + } + return (mode + "(" + (rgba.slice(0,mode==='rgb'?3:4).join(',')) + ")"); + }; + + var rgb2css_1 = rgb2css; + + var unpack$7 = utils.unpack; + var round$1 = Math.round; + + var hsl2rgb = function () { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$7(args, 'hsl'); + var h = args[0]; + var s = args[1]; + var l = args[2]; + var r,g,b; + if (s === 0) { + r = g = b = l*255; + } else { + var t3 = [0,0,0]; + var c = [0,0,0]; + var t2 = l < 0.5 ? l * (1+s) : l+s-l*s; + var t1 = 2 * l - t2; + var h_ = h / 360; + t3[0] = h_ + 1/3; + t3[1] = h_; + t3[2] = h_ - 1/3; + for (var i=0; i<3; i++) { + if (t3[i] < 0) { t3[i] += 1; } + if (t3[i] > 1) { t3[i] -= 1; } + if (6 * t3[i] < 1) + { c[i] = t1 + (t2 - t1) * 6 * t3[i]; } + else if (2 * t3[i] < 1) + { c[i] = t2; } + else if (3 * t3[i] < 2) + { c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6; } + else + { c[i] = t1; } + } + (assign = [round$1(c[0]*255),round$1(c[1]*255),round$1(c[2]*255)], r = assign[0], g = assign[1], b = assign[2]); + } + if (args.length > 3) { + // keep alpha channel + return [r,g,b,args[3]]; + } + return [r,g,b,1]; + }; + + var hsl2rgb_1 = hsl2rgb; + + var RE_RGB = /^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/; + var RE_RGBA = /^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/; + var RE_RGB_PCT = /^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; + var RE_RGBA_PCT = /^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; + var RE_HSL = /^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; + var RE_HSLA = /^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; + + var round$2 = Math.round; + + var css2rgb = function (css) { + css = css.toLowerCase().trim(); + var m; + + if (input.format.named) { + try { + return input.format.named(css); + } catch (e) { + // eslint-disable-next-line + } + } + + // rgb(250,20,0) + if ((m = css.match(RE_RGB))) { + var rgb = m.slice(1,4); + for (var i=0; i<3; i++) { + rgb[i] = +rgb[i]; + } + rgb[3] = 1; // default alpha + return rgb; + } + + // rgba(250,20,0,0.4) + if ((m = css.match(RE_RGBA))) { + var rgb$1 = m.slice(1,5); + for (var i$1=0; i$1<4; i$1++) { + rgb$1[i$1] = +rgb$1[i$1]; + } + return rgb$1; + } + + // rgb(100%,0%,0%) + if ((m = css.match(RE_RGB_PCT))) { + var rgb$2 = m.slice(1,4); + for (var i$2=0; i$2<3; i$2++) { + rgb$2[i$2] = round$2(rgb$2[i$2] * 2.55); + } + rgb$2[3] = 1; // default alpha + return rgb$2; + } + + // rgba(100%,0%,0%,0.4) + if ((m = css.match(RE_RGBA_PCT))) { + var rgb$3 = m.slice(1,5); + for (var i$3=0; i$3<3; i$3++) { + rgb$3[i$3] = round$2(rgb$3[i$3] * 2.55); + } + rgb$3[3] = +rgb$3[3]; + return rgb$3; + } + + // hsl(0,100%,50%) + if ((m = css.match(RE_HSL))) { + var hsl = m.slice(1,4); + hsl[1] *= 0.01; + hsl[2] *= 0.01; + var rgb$4 = hsl2rgb_1(hsl); + rgb$4[3] = 1; + return rgb$4; + } + + // hsla(0,100%,50%,0.5) + if ((m = css.match(RE_HSLA))) { + var hsl$1 = m.slice(1,4); + hsl$1[1] *= 0.01; + hsl$1[2] *= 0.01; + var rgb$5 = hsl2rgb_1(hsl$1); + rgb$5[3] = +m[4]; // default alpha = 1 + return rgb$5; + } + }; + + css2rgb.test = function (s) { + return RE_RGB.test(s) || + RE_RGBA.test(s) || + RE_RGB_PCT.test(s) || + RE_RGBA_PCT.test(s) || + RE_HSL.test(s) || + RE_HSLA.test(s); + }; + + var css2rgb_1 = css2rgb; + + var type$3 = utils.type; + + + + + Color_1.prototype.css = function(mode) { + return rgb2css_1(this._rgb, mode); + }; + + chroma_1.css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['css']) )); + }; + + input.format.css = css2rgb_1; + + input.autodetect.push({ + p: 5, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$3(h) === 'string' && css2rgb_1.test(h)) { + return 'css'; + } + } + }); + + var unpack$8 = utils.unpack; + + input.format.gl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgb = unpack$8(args, 'rgba'); + rgb[0] *= 255; + rgb[1] *= 255; + rgb[2] *= 255; + return rgb; + }; + + chroma_1.gl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['gl']) )); + }; + + Color_1.prototype.gl = function() { + var rgb = this._rgb; + return [rgb[0]/255, rgb[1]/255, rgb[2]/255, rgb[3]]; + }; + + var unpack$9 = utils.unpack; + + var rgb2hcg = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$9(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var c = delta * 100 / 255; + var _g = min / (255 - delta) * 100; + var h; + if (delta === 0) { + h = Number.NaN; + } else { + if (r === max) { h = (g - b) / delta; } + if (g === max) { h = 2+(b - r) / delta; } + if (b === max) { h = 4+(r - g) / delta; } + h *= 60; + if (h < 0) { h += 360; } + } + return [h, c, _g]; + }; + + var rgb2hcg_1 = rgb2hcg; + + var unpack$a = utils.unpack; + var floor = Math.floor; + + /* + * this is basically just HSV with some minor tweaks + * + * hue.. [0..360] + * chroma .. [0..1] + * grayness .. [0..1] + */ + + var hcg2rgb = function () { + var assign, assign$1, assign$2, assign$3, assign$4, assign$5; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$a(args, 'hcg'); + var h = args[0]; + var c = args[1]; + var _g = args[2]; + var r,g,b; + _g = _g * 255; + var _c = c * 255; + if (c === 0) { + r = g = b = _g; + } else { + if (h === 360) { h = 0; } + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 60; + var i = floor(h); + var f = h - i; + var p = _g * (1 - c); + var q = p + _c * (1 - f); + var t = p + _c * f; + var v = p + _c; + switch (i) { + case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break + case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break + case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break + case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break + case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break + case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break + } + } + return [r, g, b, args.length > 3 ? args[3] : 1]; + }; + + var hcg2rgb_1 = hcg2rgb; + + var unpack$b = utils.unpack; + var type$4 = utils.type; + + + + + + + Color_1.prototype.hcg = function() { + return rgb2hcg_1(this._rgb); + }; + + chroma_1.hcg = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcg']) )); + }; + + input.format.hcg = hcg2rgb_1; + + input.autodetect.push({ + p: 1, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$b(args, 'hcg'); + if (type$4(args) === 'array' && args.length === 3) { + return 'hcg'; + } + } + }); + + var unpack$c = utils.unpack; + var last$4 = utils.last; + var round$3 = Math.round; + + var rgb2hex = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$c(args, 'rgba'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var a = ref[3]; + var mode = last$4(args) || 'auto'; + if (a === undefined) { a = 1; } + if (mode === 'auto') { + mode = a < 1 ? 'rgba' : 'rgb'; + } + r = round$3(r); + g = round$3(g); + b = round$3(b); + var u = r << 16 | g << 8 | b; + var str = "000000" + u.toString(16); //#.toUpperCase(); + str = str.substr(str.length - 6); + var hxa = '0' + round$3(a * 255).toString(16); + hxa = hxa.substr(hxa.length - 2); + switch (mode.toLowerCase()) { + case 'rgba': return ("#" + str + hxa); + case 'argb': return ("#" + hxa + str); + default: return ("#" + str); + } + }; + + var rgb2hex_1 = rgb2hex; + + var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/; + var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/; + + var hex2rgb = function (hex) { + if (hex.match(RE_HEX)) { + // remove optional leading # + if (hex.length === 4 || hex.length === 7) { + hex = hex.substr(1); + } + // expand short-notation to full six-digit + if (hex.length === 3) { + hex = hex.split(''); + hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]; + } + var u = parseInt(hex, 16); + var r = u >> 16; + var g = u >> 8 & 0xFF; + var b = u & 0xFF; + return [r,g,b,1]; + } + + // match rgba hex format, eg #FF000077 + if (hex.match(RE_HEXA)) { + if (hex.length === 5 || hex.length === 9) { + // remove optional leading # + hex = hex.substr(1); + } + // expand short-notation to full eight-digit + if (hex.length === 4) { + hex = hex.split(''); + hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]+hex[3]+hex[3]; + } + var u$1 = parseInt(hex, 16); + var r$1 = u$1 >> 24 & 0xFF; + var g$1 = u$1 >> 16 & 0xFF; + var b$1 = u$1 >> 8 & 0xFF; + var a = Math.round((u$1 & 0xFF) / 0xFF * 100) / 100; + return [r$1,g$1,b$1,a]; + } + + // we used to check for css colors here + // if _input.css? and rgb = _input.css hex + // return rgb + + throw new Error(("unknown hex color: " + hex)); + }; + + var hex2rgb_1 = hex2rgb; + + var type$5 = utils.type; + + + + + Color_1.prototype.hex = function(mode) { + return rgb2hex_1(this._rgb, mode); + }; + + chroma_1.hex = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hex']) )); + }; + + input.format.hex = hex2rgb_1; + input.autodetect.push({ + p: 4, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$5(h) === 'string' && [3,4,5,6,7,8,9].indexOf(h.length) >= 0) { + return 'hex'; + } + } + }); + + var unpack$d = utils.unpack; + var TWOPI = utils.TWOPI; + var min = Math.min; + var sqrt = Math.sqrt; + var acos = Math.acos; + + var rgb2hsi = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + borrowed from here: + http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp + */ + var ref = unpack$d(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + r /= 255; + g /= 255; + b /= 255; + var h; + var min_ = min(r,g,b); + var i = (r+g+b) / 3; + var s = i > 0 ? 1 - min_/i : 0; + if (s === 0) { + h = NaN; + } else { + h = ((r-g)+(r-b)) / 2; + h /= sqrt((r-g)*(r-g) + (r-b)*(g-b)); + h = acos(h); + if (b > g) { + h = TWOPI - h; + } + h /= TWOPI; + } + return [h*360,s,i]; + }; + + var rgb2hsi_1 = rgb2hsi; + + var unpack$e = utils.unpack; + var limit$1 = utils.limit; + var TWOPI$1 = utils.TWOPI; + var PITHIRD = utils.PITHIRD; + var cos = Math.cos; + + /* + * hue [0..360] + * saturation [0..1] + * intensity [0..1] + */ + var hsi2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + borrowed from here: + http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp + */ + args = unpack$e(args, 'hsi'); + var h = args[0]; + var s = args[1]; + var i = args[2]; + var r,g,b; + + if (isNaN(h)) { h = 0; } + if (isNaN(s)) { s = 0; } + // normalize hue + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 360; + if (h < 1/3) { + b = (1-s)/3; + r = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + g = 1 - (b+r); + } else if (h < 2/3) { + h -= 1/3; + r = (1-s)/3; + g = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + b = 1 - (r+g); + } else { + h -= 2/3; + g = (1-s)/3; + b = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + r = 1 - (g+b); + } + r = limit$1(i*r*3); + g = limit$1(i*g*3); + b = limit$1(i*b*3); + return [r*255, g*255, b*255, args.length > 3 ? args[3] : 1]; + }; + + var hsi2rgb_1 = hsi2rgb; + + var unpack$f = utils.unpack; + var type$6 = utils.type; + + + + + + + Color_1.prototype.hsi = function() { + return rgb2hsi_1(this._rgb); + }; + + chroma_1.hsi = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsi']) )); + }; + + input.format.hsi = hsi2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$f(args, 'hsi'); + if (type$6(args) === 'array' && args.length === 3) { + return 'hsi'; + } + } + }); + + var unpack$g = utils.unpack; + var type$7 = utils.type; + + + + + + + Color_1.prototype.hsl = function() { + return rgb2hsl_1(this._rgb); + }; + + chroma_1.hsl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsl']) )); + }; + + input.format.hsl = hsl2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$g(args, 'hsl'); + if (type$7(args) === 'array' && args.length === 3) { + return 'hsl'; + } + } + }); + + var unpack$h = utils.unpack; + var min$1 = Math.min; + var max$1 = Math.max; + + /* + * supported arguments: + * - rgb2hsv(r,g,b) + * - rgb2hsv([r,g,b]) + * - rgb2hsv({r,g,b}) + */ + var rgb2hsl$1 = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$h(args, 'rgb'); + var r = args[0]; + var g = args[1]; + var b = args[2]; + var min_ = min$1(r, g, b); + var max_ = max$1(r, g, b); + var delta = max_ - min_; + var h,s,v; + v = max_ / 255.0; + if (max_ === 0) { + h = Number.NaN; + s = 0; + } else { + s = delta / max_; + if (r === max_) { h = (g - b) / delta; } + if (g === max_) { h = 2+(b - r) / delta; } + if (b === max_) { h = 4+(r - g) / delta; } + h *= 60; + if (h < 0) { h += 360; } + } + return [h, s, v] + }; + + var rgb2hsv = rgb2hsl$1; + + var unpack$i = utils.unpack; + var floor$1 = Math.floor; + + var hsv2rgb = function () { + var assign, assign$1, assign$2, assign$3, assign$4, assign$5; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$i(args, 'hsv'); + var h = args[0]; + var s = args[1]; + var v = args[2]; + var r,g,b; + v *= 255; + if (s === 0) { + r = g = b = v; + } else { + if (h === 360) { h = 0; } + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 60; + + var i = floor$1(h); + var f = h - i; + var p = v * (1 - s); + var q = v * (1 - s * f); + var t = v * (1 - s * (1 - f)); + + switch (i) { + case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break + case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break + case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break + case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break + case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break + case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break + } + } + return [r,g,b,args.length > 3?args[3]:1]; + }; + + var hsv2rgb_1 = hsv2rgb; + + var unpack$j = utils.unpack; + var type$8 = utils.type; + + + + + + + Color_1.prototype.hsv = function() { + return rgb2hsv(this._rgb); + }; + + chroma_1.hsv = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsv']) )); + }; + + input.format.hsv = hsv2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$j(args, 'hsv'); + if (type$8(args) === 'array' && args.length === 3) { + return 'hsv'; + } + } + }); + + var labConstants = { + // Corresponds roughly to RGB brighter/darker + Kn: 18, + + // D65 standard referent + Xn: 0.950470, + Yn: 1, + Zn: 1.088830, + + t0: 0.137931034, // 4 / 29 + t1: 0.206896552, // 6 / 29 + t2: 0.12841855, // 3 * t1 * t1 + t3: 0.008856452, // t1 * t1 * t1 + }; + + var unpack$k = utils.unpack; + var pow = Math.pow; + + var rgb2lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$k(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var ref$1 = rgb2xyz(r,g,b); + var x = ref$1[0]; + var y = ref$1[1]; + var z = ref$1[2]; + var l = 116 * y - 16; + return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)]; + }; + + var rgb_xyz = function (r) { + if ((r /= 255) <= 0.04045) { return r / 12.92; } + return pow((r + 0.055) / 1.055, 2.4); + }; + + var xyz_lab = function (t) { + if (t > labConstants.t3) { return pow(t, 1 / 3); } + return t / labConstants.t2 + labConstants.t0; + }; + + var rgb2xyz = function (r,g,b) { + r = rgb_xyz(r); + g = rgb_xyz(g); + b = rgb_xyz(b); + var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / labConstants.Xn); + var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / labConstants.Yn); + var z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / labConstants.Zn); + return [x,y,z]; + }; + + var rgb2lab_1 = rgb2lab; + + var unpack$l = utils.unpack; + var pow$1 = Math.pow; + + /* + * L* [0..100] + * a [-100..100] + * b [-100..100] + */ + var lab2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$l(args, 'lab'); + var l = args[0]; + var a = args[1]; + var b = args[2]; + var x,y,z, r,g,b_; + + y = (l + 16) / 116; + x = isNaN(a) ? y : y + a / 500; + z = isNaN(b) ? y : y - b / 200; + + y = labConstants.Yn * lab_xyz(y); + x = labConstants.Xn * lab_xyz(x); + z = labConstants.Zn * lab_xyz(z); + + r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); // D65 -> sRGB + g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z); + b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z); + + return [r,g,b_,args.length > 3 ? args[3] : 1]; + }; + + var xyz_rgb = function (r) { + return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow$1(r, 1 / 2.4) - 0.055) + }; + + var lab_xyz = function (t) { + return t > labConstants.t1 ? t * t * t : labConstants.t2 * (t - labConstants.t0) + }; + + var lab2rgb_1 = lab2rgb; + + var unpack$m = utils.unpack; + var type$9 = utils.type; + + + + + + + Color_1.prototype.lab = function() { + return rgb2lab_1(this._rgb); + }; + + chroma_1.lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lab']) )); + }; + + input.format.lab = lab2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$m(args, 'lab'); + if (type$9(args) === 'array' && args.length === 3) { + return 'lab'; + } + } + }); + + var unpack$n = utils.unpack; + var RAD2DEG = utils.RAD2DEG; + var sqrt$1 = Math.sqrt; + var atan2 = Math.atan2; + var round$4 = Math.round; + + var lab2lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$n(args, 'lab'); + var l = ref[0]; + var a = ref[1]; + var b = ref[2]; + var c = sqrt$1(a * a + b * b); + var h = (atan2(b, a) * RAD2DEG + 360) % 360; + if (round$4(c*10000) === 0) { h = Number.NaN; } + return [l, c, h]; + }; + + var lab2lch_1 = lab2lch; + + var unpack$o = utils.unpack; + + + + var rgb2lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$o(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var ref$1 = rgb2lab_1(r,g,b); + var l = ref$1[0]; + var a = ref$1[1]; + var b_ = ref$1[2]; + return lab2lch_1(l,a,b_); + }; + + var rgb2lch_1 = rgb2lch; + + var unpack$p = utils.unpack; + var DEG2RAD = utils.DEG2RAD; + var sin = Math.sin; + var cos$1 = Math.cos; + + var lch2lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel. + These formulas were invented by David Dalrymple to obtain maximum contrast without going + out of gamut if the parameters are in the range 0-1. + + A saturation multiplier was added by Gregor Aisch + */ + var ref = unpack$p(args, 'lch'); + var l = ref[0]; + var c = ref[1]; + var h = ref[2]; + if (isNaN(h)) { h = 0; } + h = h * DEG2RAD; + return [l, cos$1(h) * c, sin(h) * c] + }; + + var lch2lab_1 = lch2lab; + + var unpack$q = utils.unpack; + + + + var lch2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$q(args, 'lch'); + var l = args[0]; + var c = args[1]; + var h = args[2]; + var ref = lch2lab_1 (l,c,h); + var L = ref[0]; + var a = ref[1]; + var b_ = ref[2]; + var ref$1 = lab2rgb_1 (L,a,b_); + var r = ref$1[0]; + var g = ref$1[1]; + var b = ref$1[2]; + return [r, g, b, args.length > 3 ? args[3] : 1]; + }; + + var lch2rgb_1 = lch2rgb; + + var unpack$r = utils.unpack; + + + var hcl2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hcl = unpack$r(args, 'hcl').reverse(); + return lch2rgb_1.apply(void 0, hcl); + }; + + var hcl2rgb_1 = hcl2rgb; + + var unpack$s = utils.unpack; + var type$a = utils.type; + + + + + + + Color_1.prototype.lch = function() { return rgb2lch_1(this._rgb); }; + Color_1.prototype.hcl = function() { return rgb2lch_1(this._rgb).reverse(); }; + + chroma_1.lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lch']) )); + }; + chroma_1.hcl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcl']) )); + }; + + input.format.lch = lch2rgb_1; + input.format.hcl = hcl2rgb_1; + + ['lch','hcl'].forEach(function (m) { return input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$s(args, m); + if (type$a(args) === 'array' && args.length === 3) { + return m; + } + } + }); }); + + /** + X11 color names + + http://www.w3.org/TR/css3-color/#svg-color + */ + + var w3cx11 = { + aliceblue: '#f0f8ff', + antiquewhite: '#faebd7', + aqua: '#00ffff', + aquamarine: '#7fffd4', + azure: '#f0ffff', + beige: '#f5f5dc', + bisque: '#ffe4c4', + black: '#000000', + blanchedalmond: '#ffebcd', + blue: '#0000ff', + blueviolet: '#8a2be2', + brown: '#a52a2a', + burlywood: '#deb887', + cadetblue: '#5f9ea0', + chartreuse: '#7fff00', + chocolate: '#d2691e', + coral: '#ff7f50', + cornflower: '#6495ed', + cornflowerblue: '#6495ed', + cornsilk: '#fff8dc', + crimson: '#dc143c', + cyan: '#00ffff', + darkblue: '#00008b', + darkcyan: '#008b8b', + darkgoldenrod: '#b8860b', + darkgray: '#a9a9a9', + darkgreen: '#006400', + darkgrey: '#a9a9a9', + darkkhaki: '#bdb76b', + darkmagenta: '#8b008b', + darkolivegreen: '#556b2f', + darkorange: '#ff8c00', + darkorchid: '#9932cc', + darkred: '#8b0000', + darksalmon: '#e9967a', + darkseagreen: '#8fbc8f', + darkslateblue: '#483d8b', + darkslategray: '#2f4f4f', + darkslategrey: '#2f4f4f', + darkturquoise: '#00ced1', + darkviolet: '#9400d3', + deeppink: '#ff1493', + deepskyblue: '#00bfff', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1e90ff', + firebrick: '#b22222', + floralwhite: '#fffaf0', + forestgreen: '#228b22', + fuchsia: '#ff00ff', + gainsboro: '#dcdcdc', + ghostwhite: '#f8f8ff', + gold: '#ffd700', + goldenrod: '#daa520', + gray: '#808080', + green: '#008000', + greenyellow: '#adff2f', + grey: '#808080', + honeydew: '#f0fff0', + hotpink: '#ff69b4', + indianred: '#cd5c5c', + indigo: '#4b0082', + ivory: '#fffff0', + khaki: '#f0e68c', + laserlemon: '#ffff54', + lavender: '#e6e6fa', + lavenderblush: '#fff0f5', + lawngreen: '#7cfc00', + lemonchiffon: '#fffacd', + lightblue: '#add8e6', + lightcoral: '#f08080', + lightcyan: '#e0ffff', + lightgoldenrod: '#fafad2', + lightgoldenrodyellow: '#fafad2', + lightgray: '#d3d3d3', + lightgreen: '#90ee90', + lightgrey: '#d3d3d3', + lightpink: '#ffb6c1', + lightsalmon: '#ffa07a', + lightseagreen: '#20b2aa', + lightskyblue: '#87cefa', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#b0c4de', + lightyellow: '#ffffe0', + lime: '#00ff00', + limegreen: '#32cd32', + linen: '#faf0e6', + magenta: '#ff00ff', + maroon: '#800000', + maroon2: '#7f0000', + maroon3: '#b03060', + mediumaquamarine: '#66cdaa', + mediumblue: '#0000cd', + mediumorchid: '#ba55d3', + mediumpurple: '#9370db', + mediumseagreen: '#3cb371', + mediumslateblue: '#7b68ee', + mediumspringgreen: '#00fa9a', + mediumturquoise: '#48d1cc', + mediumvioletred: '#c71585', + midnightblue: '#191970', + mintcream: '#f5fffa', + mistyrose: '#ffe4e1', + moccasin: '#ffe4b5', + navajowhite: '#ffdead', + navy: '#000080', + oldlace: '#fdf5e6', + olive: '#808000', + olivedrab: '#6b8e23', + orange: '#ffa500', + orangered: '#ff4500', + orchid: '#da70d6', + palegoldenrod: '#eee8aa', + palegreen: '#98fb98', + paleturquoise: '#afeeee', + palevioletred: '#db7093', + papayawhip: '#ffefd5', + peachpuff: '#ffdab9', + peru: '#cd853f', + pink: '#ffc0cb', + plum: '#dda0dd', + powderblue: '#b0e0e6', + purple: '#800080', + purple2: '#7f007f', + purple3: '#a020f0', + rebeccapurple: '#663399', + red: '#ff0000', + rosybrown: '#bc8f8f', + royalblue: '#4169e1', + saddlebrown: '#8b4513', + salmon: '#fa8072', + sandybrown: '#f4a460', + seagreen: '#2e8b57', + seashell: '#fff5ee', + sienna: '#a0522d', + silver: '#c0c0c0', + skyblue: '#87ceeb', + slateblue: '#6a5acd', + slategray: '#708090', + slategrey: '#708090', + snow: '#fffafa', + springgreen: '#00ff7f', + steelblue: '#4682b4', + tan: '#d2b48c', + teal: '#008080', + thistle: '#d8bfd8', + tomato: '#ff6347', + turquoise: '#40e0d0', + violet: '#ee82ee', + wheat: '#f5deb3', + white: '#ffffff', + whitesmoke: '#f5f5f5', + yellow: '#ffff00', + yellowgreen: '#9acd32' + }; + + var w3cx11_1 = w3cx11; + + var type$b = utils.type; + + + + + + Color_1.prototype.name = function() { + var hex = rgb2hex_1(this._rgb, 'rgb'); + for (var i = 0, list = Object.keys(w3cx11_1); i < list.length; i += 1) { + var n = list[i]; + + if (w3cx11_1[n] === hex) { return n.toLowerCase(); } + } + return hex; + }; + + input.format.named = function (name) { + name = name.toLowerCase(); + if (w3cx11_1[name]) { return hex2rgb_1(w3cx11_1[name]); } + throw new Error('unknown color name: '+name); + }; + + input.autodetect.push({ + p: 5, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$b(h) === 'string' && w3cx11_1[h.toLowerCase()]) { + return 'named'; + } + } + }); + + var unpack$t = utils.unpack; + + var rgb2num = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$t(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + return (r << 16) + (g << 8) + b; + }; + + var rgb2num_1 = rgb2num; + + var type$c = utils.type; + + var num2rgb = function (num) { + if (type$c(num) == "number" && num >= 0 && num <= 0xFFFFFF) { + var r = num >> 16; + var g = (num >> 8) & 0xFF; + var b = num & 0xFF; + return [r,g,b,1]; + } + throw new Error("unknown num color: "+num); + }; + + var num2rgb_1 = num2rgb; + + var type$d = utils.type; + + + + Color_1.prototype.num = function() { + return rgb2num_1(this._rgb); + }; + + chroma_1.num = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['num']) )); + }; + + input.format.num = num2rgb_1; + + input.autodetect.push({ + p: 5, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (args.length === 1 && type$d(args[0]) === 'number' && args[0] >= 0 && args[0] <= 0xFFFFFF) { + return 'num'; + } + } + }); + + var unpack$u = utils.unpack; + var type$e = utils.type; + var round$5 = Math.round; + + Color_1.prototype.rgb = function(rnd) { + if ( rnd === void 0 ) rnd=true; + + if (rnd === false) { return this._rgb.slice(0,3); } + return this._rgb.slice(0,3).map(round$5); + }; + + Color_1.prototype.rgba = function(rnd) { + if ( rnd === void 0 ) rnd=true; + + return this._rgb.slice(0,4).map(function (v,i) { + return i<3 ? (rnd === false ? v : round$5(v)) : v; + }); + }; + + chroma_1.rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['rgb']) )); + }; + + input.format.rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgba = unpack$u(args, 'rgba'); + if (rgba[3] === undefined) { rgba[3] = 1; } + return rgba; + }; + + input.autodetect.push({ + p: 3, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$u(args, 'rgba'); + if (type$e(args) === 'array' && (args.length === 3 || + args.length === 4 && type$e(args[3]) == 'number' && args[3] >= 0 && args[3] <= 1)) { + return 'rgb'; + } + } + }); + + /* + * Based on implementation by Neil Bartlett + * https://github.com/neilbartlett/color-temperature + */ + + var log = Math.log; + + var temperature2rgb = function (kelvin) { + var temp = kelvin / 100; + var r,g,b; + if (temp < 66) { + r = 255; + g = -155.25485562709179 - 0.44596950469579133 * (g = temp-2) + 104.49216199393888 * log(g); + b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp-10) + 115.67994401066147 * log(b); + } else { + r = 351.97690566805693 + 0.114206453784165 * (r = temp-55) - 40.25366309332127 * log(r); + g = 325.4494125711974 + 0.07943456536662342 * (g = temp-50) - 28.0852963507957 * log(g); + b = 255; + } + return [r,g,b,1]; + }; + + var temperature2rgb_1 = temperature2rgb; + + /* + * Based on implementation by Neil Bartlett + * https://github.com/neilbartlett/color-temperature + **/ + + + var unpack$v = utils.unpack; + var round$6 = Math.round; + + var rgb2temperature = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgb = unpack$v(args, 'rgb'); + var r = rgb[0], b = rgb[2]; + var minTemp = 1000; + var maxTemp = 40000; + var eps = 0.4; + var temp; + while (maxTemp - minTemp > eps) { + temp = (maxTemp + minTemp) * 0.5; + var rgb$1 = temperature2rgb_1(temp); + if ((rgb$1[2] / rgb$1[0]) >= (b / r)) { + maxTemp = temp; + } else { + minTemp = temp; + } + } + return round$6(temp); + }; + + var rgb2temperature_1 = rgb2temperature; + + Color_1.prototype.temp = + Color_1.prototype.kelvin = + Color_1.prototype.temperature = function() { + return rgb2temperature_1(this._rgb); + }; + + chroma_1.temp = + chroma_1.kelvin = + chroma_1.temperature = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['temp']) )); + }; + + input.format.temp = + input.format.kelvin = + input.format.temperature = temperature2rgb_1; + + var type$f = utils.type; + + Color_1.prototype.alpha = function(a, mutate) { + if ( mutate === void 0 ) mutate=false; + + if (a !== undefined && type$f(a) === 'number') { + if (mutate) { + this._rgb[3] = a; + return this; + } + return new Color_1([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb'); + } + return this._rgb[3]; + }; + + Color_1.prototype.clipped = function() { + return this._rgb._clipped || false; + }; + + Color_1.prototype.darken = function(amount) { + if ( amount === void 0 ) amount=1; + + var me = this; + var lab = me.lab(); + lab[0] -= labConstants.Kn * amount; + return new Color_1(lab, 'lab').alpha(me.alpha(), true); + }; + + Color_1.prototype.brighten = function(amount) { + if ( amount === void 0 ) amount=1; + + return this.darken(-amount); + }; + + Color_1.prototype.darker = Color_1.prototype.darken; + Color_1.prototype.brighter = Color_1.prototype.brighten; + + Color_1.prototype.get = function(mc) { + var ref = mc.split('.'); + var mode = ref[0]; + var channel = ref[1]; + var src = this[mode](); + if (channel) { + var i = mode.indexOf(channel); + if (i > -1) { return src[i]; } + throw new Error(("unknown channel " + channel + " in mode " + mode)); + } else { + return src; + } + }; + + var type$g = utils.type; + var pow$2 = Math.pow; + + var EPS = 1e-7; + var MAX_ITER = 20; + + Color_1.prototype.luminance = function(lum) { + if (lum !== undefined && type$g(lum) === 'number') { + if (lum === 0) { + // return pure black + return new Color_1([0,0,0,this._rgb[3]], 'rgb'); + } + if (lum === 1) { + // return pure white + return new Color_1([255,255,255,this._rgb[3]], 'rgb'); + } + // compute new color using... + var cur_lum = this.luminance(); + var mode = 'rgb'; + var max_iter = MAX_ITER; + + var test = function (low, high) { + var mid = low.interpolate(high, 0.5, mode); + var lm = mid.luminance(); + if (Math.abs(lum - lm) < EPS || !max_iter--) { + // close enough + return mid; + } + return lm > lum ? test(low, mid) : test(mid, high); + }; + + var rgb = (cur_lum > lum ? test(new Color_1([0,0,0]), this) : test(this, new Color_1([255,255,255]))).rgb(); + return new Color_1(rgb.concat( [this._rgb[3]])); + } + return rgb2luminance.apply(void 0, (this._rgb).slice(0,3)); + }; + + + var rgb2luminance = function (r,g,b) { + // relative luminance + // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + r = luminance_x(r); + g = luminance_x(g); + b = luminance_x(b); + return 0.2126 * r + 0.7152 * g + 0.0722 * b; + }; + + var luminance_x = function (x) { + x /= 255; + return x <= 0.03928 ? x/12.92 : pow$2((x+0.055)/1.055, 2.4); + }; + + var interpolator = {}; + + var type$h = utils.type; + + + var mix = function (col1, col2, f) { + if ( f === void 0 ) f=0.5; + var rest = [], len = arguments.length - 3; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 3 ]; + + var mode = rest[0] || 'lrgb'; + if (!interpolator[mode] && !rest.length) { + // fall back to the first supported mode + mode = Object.keys(interpolator)[0]; + } + if (!interpolator[mode]) { + throw new Error(("interpolation mode " + mode + " is not defined")); + } + if (type$h(col1) !== 'object') { col1 = new Color_1(col1); } + if (type$h(col2) !== 'object') { col2 = new Color_1(col2); } + return interpolator[mode](col1, col2, f) + .alpha(col1.alpha() + f * (col2.alpha() - col1.alpha())); + }; + + Color_1.prototype.mix = + Color_1.prototype.interpolate = function(col2, f) { + if ( f === void 0 ) f=0.5; + var rest = [], len = arguments.length - 2; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 2 ]; + + return mix.apply(void 0, [ this, col2, f ].concat( rest )); + }; + + Color_1.prototype.premultiply = function(mutate) { + if ( mutate === void 0 ) mutate=false; + + var rgb = this._rgb; + var a = rgb[3]; + if (mutate) { + this._rgb = [rgb[0]*a, rgb[1]*a, rgb[2]*a, a]; + return this; + } else { + return new Color_1([rgb[0]*a, rgb[1]*a, rgb[2]*a, a], 'rgb'); + } + }; + + Color_1.prototype.saturate = function(amount) { + if ( amount === void 0 ) amount=1; + + var me = this; + var lch = me.lch(); + lch[1] += labConstants.Kn * amount; + if (lch[1] < 0) { lch[1] = 0; } + return new Color_1(lch, 'lch').alpha(me.alpha(), true); + }; + + Color_1.prototype.desaturate = function(amount) { + if ( amount === void 0 ) amount=1; + + return this.saturate(-amount); + }; + + var type$i = utils.type; + + Color_1.prototype.set = function(mc, value, mutate) { + if ( mutate === void 0 ) mutate=false; + + var ref = mc.split('.'); + var mode = ref[0]; + var channel = ref[1]; + var src = this[mode](); + if (channel) { + var i = mode.indexOf(channel); + if (i > -1) { + if (type$i(value) == 'string') { + switch(value.charAt(0)) { + case '+': src[i] += +value; break; + case '-': src[i] += +value; break; + case '*': src[i] *= +(value.substr(1)); break; + case '/': src[i] /= +(value.substr(1)); break; + default: src[i] = +value; + } + } else if (type$i(value) === 'number') { + src[i] = value; + } else { + throw new Error("unsupported value for Color.set"); + } + var out = new Color_1(src, mode); + if (mutate) { + this._rgb = out._rgb; + return this; + } + return out; + } + throw new Error(("unknown channel " + channel + " in mode " + mode)); + } else { + return src; + } + }; + + var rgb$1 = function (col1, col2, f) { + var xyz0 = col1._rgb; + var xyz1 = col2._rgb; + return new Color_1( + xyz0[0] + f * (xyz1[0]-xyz0[0]), + xyz0[1] + f * (xyz1[1]-xyz0[1]), + xyz0[2] + f * (xyz1[2]-xyz0[2]), + 'rgb' + ) + }; + + // register interpolator + interpolator.rgb = rgb$1; + + var sqrt$2 = Math.sqrt; + var pow$3 = Math.pow; + + var lrgb = function (col1, col2, f) { + var ref = col1._rgb; + var x1 = ref[0]; + var y1 = ref[1]; + var z1 = ref[2]; + var ref$1 = col2._rgb; + var x2 = ref$1[0]; + var y2 = ref$1[1]; + var z2 = ref$1[2]; + return new Color_1( + sqrt$2(pow$3(x1,2) * (1-f) + pow$3(x2,2) * f), + sqrt$2(pow$3(y1,2) * (1-f) + pow$3(y2,2) * f), + sqrt$2(pow$3(z1,2) * (1-f) + pow$3(z2,2) * f), + 'rgb' + ) + }; + + // register interpolator + interpolator.lrgb = lrgb; + + var lab$1 = function (col1, col2, f) { + var xyz0 = col1.lab(); + var xyz1 = col2.lab(); + return new Color_1( + xyz0[0] + f * (xyz1[0]-xyz0[0]), + xyz0[1] + f * (xyz1[1]-xyz0[1]), + xyz0[2] + f * (xyz1[2]-xyz0[2]), + 'lab' + ) + }; + + // register interpolator + interpolator.lab = lab$1; + + var _hsx = function (col1, col2, f, m) { + var assign, assign$1; + + var xyz0, xyz1; + if (m === 'hsl') { + xyz0 = col1.hsl(); + xyz1 = col2.hsl(); + } else if (m === 'hsv') { + xyz0 = col1.hsv(); + xyz1 = col2.hsv(); + } else if (m === 'hcg') { + xyz0 = col1.hcg(); + xyz1 = col2.hcg(); + } else if (m === 'hsi') { + xyz0 = col1.hsi(); + xyz1 = col2.hsi(); + } else if (m === 'lch' || m === 'hcl') { + m = 'hcl'; + xyz0 = col1.hcl(); + xyz1 = col2.hcl(); + } + + var hue0, hue1, sat0, sat1, lbv0, lbv1; + if (m.substr(0, 1) === 'h') { + (assign = xyz0, hue0 = assign[0], sat0 = assign[1], lbv0 = assign[2]); + (assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]); + } + + var sat, hue, lbv, dh; + + if (!isNaN(hue0) && !isNaN(hue1)) { + // both colors have hue + if (hue1 > hue0 && hue1 - hue0 > 180) { + dh = hue1-(hue0+360); + } else if (hue1 < hue0 && hue0 - hue1 > 180) { + dh = hue1+360-hue0; + } else { + dh = hue1 - hue0; + } + hue = hue0 + f * dh; + } else if (!isNaN(hue0)) { + hue = hue0; + if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') { sat = sat0; } + } else if (!isNaN(hue1)) { + hue = hue1; + if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') { sat = sat1; } + } else { + hue = Number.NaN; + } + + if (sat === undefined) { sat = sat0 + f * (sat1 - sat0); } + lbv = lbv0 + f * (lbv1-lbv0); + return new Color_1([hue, sat, lbv], m); + }; + + var lch$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'lch'); + }; + + // register interpolator + interpolator.lch = lch$1; + interpolator.hcl = lch$1; + + var num$1 = function (col1, col2, f) { + var c1 = col1.num(); + var c2 = col2.num(); + return new Color_1(c1 + f * (c2-c1), 'num') + }; + + // register interpolator + interpolator.num = num$1; + + var hcg$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hcg'); + }; + + // register interpolator + interpolator.hcg = hcg$1; + + var hsi$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsi'); + }; + + // register interpolator + interpolator.hsi = hsi$1; + + var hsl$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsl'); + }; + + // register interpolator + interpolator.hsl = hsl$1; + + var hsv$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsv'); + }; + + // register interpolator + interpolator.hsv = hsv$1; + + var clip_rgb$2 = utils.clip_rgb; + var pow$4 = Math.pow; + var sqrt$3 = Math.sqrt; + var PI$1 = Math.PI; + var cos$2 = Math.cos; + var sin$1 = Math.sin; + var atan2$1 = Math.atan2; + + var average = function (colors, mode, weights) { + if ( mode === void 0 ) mode='lrgb'; + if ( weights === void 0 ) weights=null; + + var l = colors.length; + if (!weights) { weights = Array.from(new Array(l)).map(function () { return 1; }); } + // normalize weights + var k = l / weights.reduce(function(a, b) { return a + b; }); + weights.forEach(function (w,i) { weights[i] *= k; }); + // convert colors to Color objects + colors = colors.map(function (c) { return new Color_1(c); }); + if (mode === 'lrgb') { + return _average_lrgb(colors, weights) + } + var first = colors.shift(); + var xyz = first.get(mode); + var cnt = []; + var dx = 0; + var dy = 0; + // initial color + for (var i=0; i= 360) { A$1 -= 360; } + xyz[i$1] = A$1; + } else { + xyz[i$1] = xyz[i$1]/cnt[i$1]; + } + } + alpha /= l; + return (new Color_1(xyz, mode)).alpha(alpha > 0.99999 ? 1 : alpha, true); + }; + + + var _average_lrgb = function (colors, weights) { + var l = colors.length; + var xyz = [0,0,0,0]; + for (var i=0; i < colors.length; i++) { + var col = colors[i]; + var f = weights[i] / l; + var rgb = col._rgb; + xyz[0] += pow$4(rgb[0],2) * f; + xyz[1] += pow$4(rgb[1],2) * f; + xyz[2] += pow$4(rgb[2],2) * f; + xyz[3] += rgb[3] * f; + } + xyz[0] = sqrt$3(xyz[0]); + xyz[1] = sqrt$3(xyz[1]); + xyz[2] = sqrt$3(xyz[2]); + if (xyz[3] > 0.9999999) { xyz[3] = 1; } + return new Color_1(clip_rgb$2(xyz)); + }; + + // minimal multi-purpose interface + + // @requires utils color analyze + + + var type$j = utils.type; + + var pow$5 = Math.pow; + + var scale = function(colors) { + + // constructor + var _mode = 'rgb'; + var _nacol = chroma_1('#ccc'); + var _spread = 0; + // const _fixed = false; + var _domain = [0, 1]; + var _pos = []; + var _padding = [0,0]; + var _classes = false; + var _colors = []; + var _out = false; + var _min = 0; + var _max = 1; + var _correctLightness = false; + var _colorCache = {}; + var _useCache = true; + var _gamma = 1; + + // private methods + + var setColors = function(colors) { + colors = colors || ['#fff', '#000']; + if (colors && type$j(colors) === 'string' && chroma_1.brewer && + chroma_1.brewer[colors.toLowerCase()]) { + colors = chroma_1.brewer[colors.toLowerCase()]; + } + if (type$j(colors) === 'array') { + // handle single color + if (colors.length === 1) { + colors = [colors[0], colors[0]]; + } + // make a copy of the colors + colors = colors.slice(0); + // convert to chroma classes + for (var c=0; c= _classes[i]) { + i++; + } + return i-1; + } + return 0; + }; + + var tMapLightness = function (t) { return t; }; + var tMapDomain = function (t) { return t; }; + + // const classifyValue = function(value) { + // let val = value; + // if (_classes.length > 2) { + // const n = _classes.length-1; + // const i = getClass(value); + // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class + // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class + // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min)); + // } + // return val; + // }; + + var getColor = function(val, bypassMap) { + var col, t; + if (bypassMap == null) { bypassMap = false; } + if (isNaN(val) || (val === null)) { return _nacol; } + if (!bypassMap) { + if (_classes && (_classes.length > 2)) { + // find the class + var c = getClass(val); + t = c / (_classes.length-2); + } else if (_max !== _min) { + // just interpolate between min/max + t = (val - _min) / (_max - _min); + } else { + t = 1; + } + } else { + t = val; + } + + // domain map + t = tMapDomain(t); + + if (!bypassMap) { + t = tMapLightness(t); // lightness correction + } + + if (_gamma !== 1) { t = pow$5(t, _gamma); } + + t = _padding[0] + (t * (1 - _padding[0] - _padding[1])); + + t = Math.min(1, Math.max(0, t)); + + var k = Math.floor(t * 10000); + + if (_useCache && _colorCache[k]) { + col = _colorCache[k]; + } else { + if (type$j(_colors) === 'array') { + //for i in [0.._pos.length-1] + for (var i=0; i<_pos.length; i++) { + var p = _pos[i]; + if (t <= p) { + col = _colors[i]; + break; + } + if ((t >= p) && (i === (_pos.length-1))) { + col = _colors[i]; + break; + } + if (t > p && t < _pos[i+1]) { + t = (t-p)/(_pos[i+1]-p); + col = chroma_1.interpolate(_colors[i], _colors[i+1], t, _mode); + break; + } + } + } else if (type$j(_colors) === 'function') { + col = _colors(t); + } + if (_useCache) { _colorCache[k] = col; } + } + return col; + }; + + var resetCache = function () { return _colorCache = {}; }; + + setColors(colors); + + // public interface + + var f = function(v) { + var c = chroma_1(getColor(v)); + if (_out && c[_out]) { return c[_out](); } else { return c; } + }; + + f.classes = function(classes) { + if (classes != null) { + if (type$j(classes) === 'array') { + _classes = classes; + _domain = [classes[0], classes[classes.length-1]]; + } else { + var d = chroma_1.analyze(_domain); + if (classes === 0) { + _classes = [d.min, d.max]; + } else { + _classes = chroma_1.limits(d, 'e', classes); + } + } + return f; + } + return _classes; + }; + + + f.domain = function(domain) { + if (!arguments.length) { + return _domain; + } + _min = domain[0]; + _max = domain[domain.length-1]; + _pos = []; + var k = _colors.length; + if ((domain.length === k) && (_min !== _max)) { + // update positions + for (var i = 0, list = Array.from(domain); i < list.length; i += 1) { + var d = list[i]; + + _pos.push((d-_min) / (_max-_min)); + } + } else { + for (var c=0; c 2) { + // set domain map + var tOut = domain.map(function (d,i) { return i/(domain.length-1); }); + var tBreaks = domain.map(function (d) { return (d - _min) / (_max - _min); }); + if (!tBreaks.every(function (val, i) { return tOut[i] === val; })) { + tMapDomain = function (t) { + if (t <= 0 || t >= 1) { return t; } + var i = 0; + while (t >= tBreaks[i+1]) { i++; } + var f = (t - tBreaks[i]) / (tBreaks[i+1] - tBreaks[i]); + var out = tOut[i] + f * (tOut[i+1] - tOut[i]); + return out; + }; + } + + } + } + _domain = [_min, _max]; + return f; + }; + + f.mode = function(_m) { + if (!arguments.length) { + return _mode; + } + _mode = _m; + resetCache(); + return f; + }; + + f.range = function(colors, _pos) { + setColors(colors); + return f; + }; + + f.out = function(_o) { + _out = _o; + return f; + }; + + f.spread = function(val) { + if (!arguments.length) { + return _spread; + } + _spread = val; + return f; + }; + + f.correctLightness = function(v) { + if (v == null) { v = true; } + _correctLightness = v; + resetCache(); + if (_correctLightness) { + tMapLightness = function(t) { + var L0 = getColor(0, true).lab()[0]; + var L1 = getColor(1, true).lab()[0]; + var pol = L0 > L1; + var L_actual = getColor(t, true).lab()[0]; + var L_ideal = L0 + ((L1 - L0) * t); + var L_diff = L_actual - L_ideal; + var t0 = 0; + var t1 = 1; + var max_iter = 20; + while ((Math.abs(L_diff) > 1e-2) && (max_iter-- > 0)) { + (function() { + if (pol) { L_diff *= -1; } + if (L_diff < 0) { + t0 = t; + t += (t1 - t) * 0.5; + } else { + t1 = t; + t += (t0 - t) * 0.5; + } + L_actual = getColor(t, true).lab()[0]; + return L_diff = L_actual - L_ideal; + })(); + } + return t; + }; + } else { + tMapLightness = function (t) { return t; }; + } + return f; + }; + + f.padding = function(p) { + if (p != null) { + if (type$j(p) === 'number') { + p = [p,p]; + } + _padding = p; + return f; + } else { + return _padding; + } + }; + + f.colors = function(numColors, out) { + // If no arguments are given, return the original colors that were provided + if (arguments.length < 2) { out = 'hex'; } + var result = []; + + if (arguments.length === 0) { + result = _colors.slice(0); + + } else if (numColors === 1) { + result = [f(0.5)]; + + } else if (numColors > 1) { + var dm = _domain[0]; + var dd = _domain[1] - dm; + result = __range__(0, numColors, false).map(function (i) { return f( dm + ((i/(numColors-1)) * dd) ); }); + + } else { // returns all colors based on the defined classes + colors = []; + var samples = []; + if (_classes && (_classes.length > 2)) { + for (var i = 1, end = _classes.length, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) { + samples.push((_classes[i-1]+_classes[i])*0.5); + } + } else { + samples = _domain; + } + result = samples.map(function (v) { return f(v); }); + } + + if (chroma_1[out]) { + result = result.map(function (c) { return c[out](); }); + } + return result; + }; + + f.cache = function(c) { + if (c != null) { + _useCache = c; + return f; + } else { + return _useCache; + } + }; + + f.gamma = function(g) { + if (g != null) { + _gamma = g; + return f; + } else { + return _gamma; + } + }; + + f.nodata = function(d) { + if (d != null) { + _nacol = chroma_1(d); + return f; + } else { + return _nacol; + } + }; + + return f; + }; + + function __range__(left, right, inclusive) { + var range = []; + var ascending = left < right; + var end = !inclusive ? right : ascending ? right + 1 : right - 1; + for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) { + range.push(i); + } + return range; + } + + // + // interpolates between a set of colors uzing a bezier spline + // + + // @requires utils lab + + + + + var bezier = function(colors) { + var assign, assign$1, assign$2; + + var I, lab0, lab1, lab2; + colors = colors.map(function (c) { return new Color_1(c); }); + if (colors.length === 2) { + // linear interpolation + (assign = colors.map(function (c) { return c.lab(); }), lab0 = assign[0], lab1 = assign[1]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return lab0[i] + (t * (lab1[i] - lab0[i])); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 3) { + // quadratic bezier interpolation + (assign$1 = colors.map(function (c) { return c.lab(); }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t) * lab0[i]) + (2 * (1-t) * t * lab1[i]) + (t * t * lab2[i]); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 4) { + // cubic bezier interpolation + var lab3; + (assign$2 = colors.map(function (c) { return c.lab(); }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t)*(1-t) * lab0[i]) + (3 * (1-t) * (1-t) * t * lab1[i]) + (3 * (1-t) * t * t * lab2[i]) + (t*t*t * lab3[i]); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 5) { + var I0 = bezier(colors.slice(0, 3)); + var I1 = bezier(colors.slice(2, 5)); + I = function(t) { + if (t < 0.5) { + return I0(t*2); + } else { + return I1((t-0.5)*2); + } + }; + } + return I; + }; + + var bezier_1 = function (colors) { + var f = bezier(colors); + f.scale = function () { return scale(f); }; + return f; + }; + + /* + * interpolates between a set of colors uzing a bezier spline + * blend mode formulas taken from http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/ + */ + + + + + var blend = function (bottom, top, mode) { + if (!blend[mode]) { + throw new Error('unknown blend mode ' + mode); + } + return blend[mode](bottom, top); + }; + + var blend_f = function (f) { return function (bottom,top) { + var c0 = chroma_1(top).rgb(); + var c1 = chroma_1(bottom).rgb(); + return chroma_1.rgb(f(c0, c1)); + }; }; + + var each = function (f) { return function (c0, c1) { + var out = []; + out[0] = f(c0[0], c1[0]); + out[1] = f(c0[1], c1[1]); + out[2] = f(c0[2], c1[2]); + return out; + }; }; + + var normal = function (a) { return a; }; + var multiply = function (a,b) { return a * b / 255; }; + var darken$1 = function (a,b) { return a > b ? b : a; }; + var lighten = function (a,b) { return a > b ? a : b; }; + var screen = function (a,b) { return 255 * (1 - (1-a/255) * (1-b/255)); }; + var overlay = function (a,b) { return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255 ) * ( 1 - b / 255 )); }; + var burn = function (a,b) { return 255 * (1 - (1 - b / 255) / (a/255)); }; + var dodge = function (a,b) { + if (a === 255) { return 255; } + a = 255 * (b / 255) / (1 - a / 255); + return a > 255 ? 255 : a + }; + + // # add = (a,b) -> + // # if (a + b > 255) then 255 else a + b + + blend.normal = blend_f(each(normal)); + blend.multiply = blend_f(each(multiply)); + blend.screen = blend_f(each(screen)); + blend.overlay = blend_f(each(overlay)); + blend.darken = blend_f(each(darken$1)); + blend.lighten = blend_f(each(lighten)); + blend.dodge = blend_f(each(dodge)); + blend.burn = blend_f(each(burn)); + // blend.add = blend_f(each(add)); + + var blend_1 = blend; + + // cubehelix interpolation + // based on D.A. Green "A colour scheme for the display of astronomical intensity images" + // http://astron-soc.in/bulletin/11June/289392011.pdf + + var type$k = utils.type; + var clip_rgb$3 = utils.clip_rgb; + var TWOPI$2 = utils.TWOPI; + var pow$6 = Math.pow; + var sin$2 = Math.sin; + var cos$3 = Math.cos; + + + var cubehelix = function(start, rotations, hue, gamma, lightness) { + if ( start === void 0 ) start=300; + if ( rotations === void 0 ) rotations=-1.5; + if ( hue === void 0 ) hue=1; + if ( gamma === void 0 ) gamma=1; + if ( lightness === void 0 ) lightness=[0,1]; + + var dh = 0, dl; + if (type$k(lightness) === 'array') { + dl = lightness[1] - lightness[0]; + } else { + dl = 0; + lightness = [lightness, lightness]; + } + + var f = function(fract) { + var a = TWOPI$2 * (((start+120)/360) + (rotations * fract)); + var l = pow$6(lightness[0] + (dl * fract), gamma); + var h = dh !== 0 ? hue[0] + (fract * dh) : hue; + var amp = (h * l * (1-l)) / 2; + var cos_a = cos$3(a); + var sin_a = sin$2(a); + var r = l + (amp * ((-0.14861 * cos_a) + (1.78277* sin_a))); + var g = l + (amp * ((-0.29227 * cos_a) - (0.90649* sin_a))); + var b = l + (amp * (+1.97294 * cos_a)); + return chroma_1(clip_rgb$3([r*255,g*255,b*255,1])); + }; + + f.start = function(s) { + if ((s == null)) { return start; } + start = s; + return f; + }; + + f.rotations = function(r) { + if ((r == null)) { return rotations; } + rotations = r; + return f; + }; + + f.gamma = function(g) { + if ((g == null)) { return gamma; } + gamma = g; + return f; + }; + + f.hue = function(h) { + if ((h == null)) { return hue; } + hue = h; + if (type$k(hue) === 'array') { + dh = hue[1] - hue[0]; + if (dh === 0) { hue = hue[1]; } + } else { + dh = 0; + } + return f; + }; + + f.lightness = function(h) { + if ((h == null)) { return lightness; } + if (type$k(h) === 'array') { + lightness = h; + dl = h[1] - h[0]; + } else { + lightness = [h,h]; + dl = 0; + } + return f; + }; + + f.scale = function () { return chroma_1.scale(f); }; + + f.hue(hue); + + return f; + }; + + var digits = '0123456789abcdef'; + + var floor$2 = Math.floor; + var random = Math.random; + + var random_1 = function () { + var code = '#'; + for (var i=0; i<6; i++) { + code += digits.charAt(floor$2(random() * 16)); + } + return new Color_1(code, 'hex'); + }; + + var log$1 = Math.log; + var pow$7 = Math.pow; + var floor$3 = Math.floor; + var abs = Math.abs; + + + var analyze = function (data, key) { + if ( key === void 0 ) key=null; + + var r = { + min: Number.MAX_VALUE, + max: Number.MAX_VALUE*-1, + sum: 0, + values: [], + count: 0 + }; + if (type(data) === 'object') { + data = Object.values(data); + } + data.forEach(function (val) { + if (key && type(val) === 'object') { val = val[key]; } + if (val !== undefined && val !== null && !isNaN(val)) { + r.values.push(val); + r.sum += val; + if (val < r.min) { r.min = val; } + if (val > r.max) { r.max = val; } + r.count += 1; + } + }); + + r.domain = [r.min, r.max]; + + r.limits = function (mode, num) { return limits(r, mode, num); }; + + return r; + }; + + + var limits = function (data, mode, num) { + if ( mode === void 0 ) mode='equal'; + if ( num === void 0 ) num=7; + + if (type(data) == 'array') { + data = analyze(data); + } + var min = data.min; + var max = data.max; + var values = data.values.sort(function (a,b) { return a-b; }); + + if (num === 1) { return [min,max]; } + + var limits = []; + + if (mode.substr(0,1) === 'c') { // continuous + limits.push(min); + limits.push(max); + } + + if (mode.substr(0,1) === 'e') { // equal interval + limits.push(min); + for (var i=1; i 0'); + } + var min_log = Math.LOG10E * log$1(min); + var max_log = Math.LOG10E * log$1(max); + limits.push(min); + for (var i$1=1; i$1 pb + var pr = p - pb; + limits.push((values[pb]*(1-pr)) + (values[pb+1]*pr)); + } + } + limits.push(max); + + } + + else if (mode.substr(0,1) === 'k') { // k-means clustering + /* + implementation based on + http://code.google.com/p/figue/source/browse/trunk/figue.js#336 + simplified for 1-d input values + */ + var cluster; + var n = values.length; + var assignments = new Array(n); + var clusterSizes = new Array(num); + var repeat = true; + var nb_iters = 0; + var centroids = null; + + // get seed values + centroids = []; + centroids.push(min); + for (var i$3=1; i$3 200) { + repeat = false; + } + } + + // finished k-means clustering + // the next part is borrowed from gabrielflor.it + var kClusters = {}; + for (var j$5=0; j$5 l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05); + }; + + var sqrt$4 = Math.sqrt; + var atan2$2 = Math.atan2; + var abs$1 = Math.abs; + var cos$4 = Math.cos; + var PI$2 = Math.PI; + + var deltaE = function(a, b, L, C) { + if ( L === void 0 ) L=1; + if ( C === void 0 ) C=1; + + // Delta E (CMC) + // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html + a = new Color_1(a); + b = new Color_1(b); + var ref = Array.from(a.lab()); + var L1 = ref[0]; + var a1 = ref[1]; + var b1 = ref[2]; + var ref$1 = Array.from(b.lab()); + var L2 = ref$1[0]; + var a2 = ref$1[1]; + var b2 = ref$1[2]; + var c1 = sqrt$4((a1 * a1) + (b1 * b1)); + var c2 = sqrt$4((a2 * a2) + (b2 * b2)); + var sl = L1 < 16.0 ? 0.511 : (0.040975 * L1) / (1.0 + (0.01765 * L1)); + var sc = ((0.0638 * c1) / (1.0 + (0.0131 * c1))) + 0.638; + var h1 = c1 < 0.000001 ? 0.0 : (atan2$2(b1, a1) * 180.0) / PI$2; + while (h1 < 0) { h1 += 360; } + while (h1 >= 360) { h1 -= 360; } + var t = (h1 >= 164.0) && (h1 <= 345.0) ? (0.56 + abs$1(0.2 * cos$4((PI$2 * (h1 + 168.0)) / 180.0))) : (0.36 + abs$1(0.4 * cos$4((PI$2 * (h1 + 35.0)) / 180.0))); + var c4 = c1 * c1 * c1 * c1; + var f = sqrt$4(c4 / (c4 + 1900.0)); + var sh = sc * (((f * t) + 1.0) - f); + var delL = L1 - L2; + var delC = c1 - c2; + var delA = a1 - a2; + var delB = b1 - b2; + var dH2 = ((delA * delA) + (delB * delB)) - (delC * delC); + var v1 = delL / (L * sl); + var v2 = delC / (C * sc); + var v3 = sh; + return sqrt$4((v1 * v1) + (v2 * v2) + (dH2 / (v3 * v3))); + }; + + // simple Euclidean distance + var distance = function(a, b, mode) { + if ( mode === void 0 ) mode='lab'; + + // Delta E (CIE 1976) + // see http://www.brucelindbloom.com/index.html?Equations.html + a = new Color_1(a); + b = new Color_1(b); + var l1 = a.get(mode); + var l2 = b.get(mode); + var sum_sq = 0; + for (var i in l1) { + var d = (l1[i] || 0) - (l2[i] || 0); + sum_sq += d*d; + } + return Math.sqrt(sum_sq); + }; + + var valid = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + try { + new (Function.prototype.bind.apply( Color_1, [ null ].concat( args) )); + return true; + } catch (e) { + return false; + } + }; + + // some pre-defined color scales: + + + + + var scales = { + cool: function cool() { return scale([chroma_1.hsl(180,1,.9), chroma_1.hsl(250,.7,.4)]) }, + hot: function hot() { return scale(['#000','#f00','#ff0','#fff']).mode('rgb') } + }; + + /** + ColorBrewer colors for chroma.js + + Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The + Pennsylvania State University. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed + under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. See the License for the + specific language governing permissions and limitations under the License. + */ + + var colorbrewer = { + // sequential + OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'], + PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'], + BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'], + Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'], + BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'], + YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'], + YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'], + Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'], + RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'], + Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'], + YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'], + Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'], + GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'], + Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'], + YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'], + PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'], + Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'], + PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'], + Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'], + + // diverging + + Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'], + RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'], + RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'], + PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'], + PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'], + RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'], + BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'], + RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'], + PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'], + + // qualitative + + Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'], + Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'], + Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'], + Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'], + Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'], + Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'], + Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'], + Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2'], + }; + + // add lowercase aliases for case-insensitive matches + for (var i$1 = 0, list$1 = Object.keys(colorbrewer); i$1 < list$1.length; i$1 += 1) { + var key = list$1[i$1]; + + colorbrewer[key.toLowerCase()] = colorbrewer[key]; + } + + var colorbrewer_1 = colorbrewer; + + // feel free to comment out anything to rollup + // a smaller chroma.js built + + // io --> convert colors + + + + + + + + + + + + + + + + // operators --> modify existing Colors + + + + + + + + + + + // interpolators + + + + + + + + + + + // generators -- > create new colors + chroma_1.average = average; + chroma_1.bezier = bezier_1; + chroma_1.blend = blend_1; + chroma_1.cubehelix = cubehelix; + chroma_1.mix = chroma_1.interpolate = mix; + chroma_1.random = random_1; + chroma_1.scale = scale; + + // other utility methods + chroma_1.analyze = analyze_1.analyze; + chroma_1.contrast = contrast; + chroma_1.deltaE = deltaE; + chroma_1.distance = distance; + chroma_1.limits = analyze_1.limits; + chroma_1.valid = valid; + + // scale + chroma_1.scales = scales; + + // colors + chroma_1.colors = w3cx11_1; + chroma_1.brewer = colorbrewer_1; + + var chroma_js = chroma_1; + + return chroma_js; + +}))); +}); + +class ImportModal extends obsidian.Modal { + constructor(app, plugin) { + super(app); + this.plugin = plugin; + } + onOpen() { + const { contentEl, modalEl } = this; + modalEl.addClass('modal-style-settings'); + new obsidian.Setting(contentEl) + .setName('Import style setting') + .setDesc('Import an entire or partial configuration. Warning: this may override existing settings'); + new obsidian.Setting(contentEl).then((setting) => { + // Build an error message container + const errorSpan = createSpan({ + cls: 'style-settings-import-error', + text: 'Error importing config', + }); + setting.nameEl.appendChild(errorSpan); + // Attempt to parse the imported data and close if successful + const importAndClose = (str) => __awaiter(this, void 0, void 0, function* () { + if (str) { + try { + const importedSettings = JSON.parse(str); + yield this.plugin.settingsManager.setSettings(importedSettings); + this.plugin.settingsTab.display(); + this.close(); + } + catch (e) { + errorSpan.addClass('active'); + errorSpan.setText(`Error importing style settings: ${e}`); + } + } + else { + errorSpan.addClass('active'); + errorSpan.setText(`Error importing style settings: config is empty`); + } + }); + // Build a file input + setting.controlEl.createEl('input', { + cls: 'style-settings-import-input', + attr: { + id: 'style-settings-import-input', + name: 'style-settings-import-input', + type: 'file', + accept: '.json', + }, + }, (importInput) => { + // Set up a FileReader so we can parse the file contents + importInput.addEventListener('change', (e) => { + const reader = new FileReader(); + reader.onload = (e) => __awaiter(this, void 0, void 0, function* () { + yield importAndClose(e.target.result.toString().trim()); + }); + reader.readAsText(e.target.files[0]); + }); + }); + // Build a label we will style as a link + setting.controlEl.createEl('label', { + cls: 'style-settings-import-label', + text: 'Import from file', + attr: { + for: 'style-settings-import-input', + }, + }); + new obsidian.TextAreaComponent(contentEl) + .setPlaceholder('Paste config here...') + .then((ta) => { + new obsidian.ButtonComponent(contentEl) + .setButtonText('Save') + .onClick(() => __awaiter(this, void 0, void 0, function* () { + yield importAndClose(ta.getValue().trim()); + })); + }); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +class ExportModal extends obsidian.Modal { + constructor(app, plugin, section, config) { + super(app); + this.plugin = plugin; + this.config = config; + this.section = section; + } + onOpen() { + const { contentEl, modalEl } = this; + modalEl.addClass('modal-style-settings'); + new obsidian.Setting(contentEl) + .setName(`Export settings for: ${this.section}`) + .then((setting) => { + const output = JSON.stringify(this.config, null, 2); + // Build a copy to clipboard link + setting.controlEl.createEl('a', { + cls: 'style-settings-copy', + text: 'Copy to clipboard', + href: '#', + }, (copyButton) => { + new obsidian.TextAreaComponent(contentEl) + .setValue(output) + .then((textarea) => { + copyButton.addEventListener('click', (e) => { + e.preventDefault(); + // Select the textarea contents and copy them to the clipboard + textarea.inputEl.select(); + textarea.inputEl.setSelectionRange(0, 99999); + document.execCommand('copy'); + copyButton.addClass('success'); + setTimeout(() => { + // If the button is still in the dom, remove the success class + if (copyButton.parentNode) { + copyButton.removeClass('success'); + } + }, 2000); + }); + }); + }); + // Build a download link + setting.controlEl.createEl('a', { + cls: 'style-settings-download', + text: 'Download', + attr: { + download: 'style-settings.json', + href: `data:application/json;charset=utf-8,${encodeURIComponent(output)}`, + }, + }); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +const SettingType = { + HEADING: 'heading', + INFO_TEXT: 'info-text', + CLASS_TOGGLE: 'class-toggle', + CLASS_SELECT: 'class-select', + VARIABLE_TEXT: 'variable-text', + VARIABLE_NUMBER: 'variable-number', + VARIABLE_NUMBER_SLIDER: 'variable-number-slider', + VARIABLE_SELECT: 'variable-select', + VARIABLE_COLOR: 'variable-color', + VARIABLE_THEMED_COLOR: 'variable-themed-color', + COLOR_GRADIENT: 'color-gradient', +}; + +function generateColorVariables(key, format, colorStr, opacity, altFormats = []) { + const parsedColor = chroma(colorStr); + const alts = altFormats.reduce((a, alt) => { + a.push(...generateColorVariables(alt.id, alt.format, colorStr, opacity)); + return a; + }, []); + switch (format) { + case 'hex': + return [{ key, value: colorStr }, ...alts]; + case 'hsl': + return [ + { + key, + value: parsedColor.css('hsl'), + }, + ...alts, + ]; + case 'hsl-values': { + const hsl = parsedColor.hsl(); + const alpha = opacity ? `,${parsedColor.alpha()}` : ''; + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + return [ + { + key, + value: `${h},${hsl[1] * 100}%,${hsl[2] * 100}%${alpha}`, + }, + ...alts, + ]; + } + case 'hsl-split': { + const hsl = parsedColor.hsl(); + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + const out = [ + { + key: `${key}-h`, + value: h.toString(), + }, + { + key: `${key}-s`, + value: (hsl[1] * 100).toString() + '%', + }, + { + key: `${key}-l`, + value: (hsl[2] * 100).toString() + '%', + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + case 'hsl-split-decimal': { + const hsl = parsedColor.hsl(); + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + const out = [ + { + key: `${key}-h`, + value: h.toString(), + }, + { + key: `${key}-s`, + value: hsl[1].toString(), + }, + { + key: `${key}-l`, + value: hsl[2].toString(), + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + case 'rgb': + return [ + { + key, + value: parsedColor.css(), + }, + ...alts, + ]; + case 'rgb-values': { + const rgb = parsedColor.rgb(); + const alpha = opacity ? `,${parsedColor.alpha()}` : ''; + return [ + { + key, + value: `${rgb[0]},${rgb[1]},${rgb[2]}${alpha}`, + }, + ...alts, + ]; + } + case 'rgb-split': { + const rgb = parsedColor.rgb(); + const out = [ + { + key: `${key}-r`, + value: rgb[0].toString(), + }, + { + key: `${key}-g`, + value: rgb[1].toString(), + }, + { + key: `${key}-b`, + value: rgb[2].toString(), + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + } +} +function pushColors(arr, id, from, to, format, step, pad) { + const scale = chroma.scale([from.trim(), to.trim()]).domain([0, 100]); + for (let i = 0; i <= 100; i++) { + if (i % step === 0) { + const c = scale(i); + arr.push(...generateColorVariables(`${id}-${i.toString().padStart(pad, '0')}`, format, c.css(), c.alpha() !== 1)); + } + } +} +function getCSSVariables(settings, config, gradients, settingsManager) { + const vars = []; + const themedLight = []; + const themedDark = []; + const gradientCandidates = {}; + const gradientCandidatesLight = {}; + const gradientCandidatesDark = {}; + const seenGradientSections = new Set(); + for (const key in settings) { + const [sectionId, settingId, modifier] = key.split('@@'); + const section = config[sectionId]; + if (!section) + continue; + const setting = config[sectionId][settingId]; + if (!setting) + continue; + const value = settings[key]; + switch (setting.type) { + case SettingType.VARIABLE_NUMBER: + case SettingType.VARIABLE_NUMBER_SLIDER: { + const format = setting + .format; + const val = value !== undefined + ? value + : setting.default; + vars.push({ + key: setting.id, + value: `${val}${format || ''}`, + }); + continue; + } + case SettingType.VARIABLE_TEXT: + case SettingType.VARIABLE_SELECT: { + const format_text = setting; + let text = value !== undefined + ? value.toString() + : format_text.default.toString(); + if (format_text.quotes) { + if (text !== `""`) { + text = `'${text}'`; + } + else { + text = ``; + } + } + vars.push({ + key: setting.id, + value: text, + }); + continue; + } + case SettingType.VARIABLE_COLOR: { + if (!seenGradientSections.has(sectionId)) + seenGradientSections.add(sectionId); + const colorSetting = setting; + const color = value !== undefined ? value.toString() : colorSetting.default; + vars.push(...generateColorVariables(setting.id, colorSetting.format, color, colorSetting.opacity, colorSetting['alt-format'])); + generateColorVariables(setting.id, 'rgb', color, colorSetting.opacity).forEach((kv) => { + gradientCandidates[kv.key] = kv.value; + }); + continue; + } + case SettingType.VARIABLE_THEMED_COLOR: { + if (!seenGradientSections.has(sectionId)) + seenGradientSections.add(sectionId); + const colorSetting = setting; + const colorKey = modifier === 'light' ? 'default-light' : 'default-dark'; + const color = value !== undefined ? value.toString() : colorSetting[colorKey]; + (modifier === 'light' ? themedLight : themedDark).push(...generateColorVariables(setting.id, colorSetting.format, color, colorSetting.opacity, colorSetting['alt-format'])); + generateColorVariables(setting.id, 'rgb', color, colorSetting.opacity).forEach((kv) => { + if (modifier === 'light') { + gradientCandidatesLight[kv.key] = kv.value; + } + else { + gradientCandidatesDark[kv.key] = kv.value; + } + }); + continue; + } + } + } + seenGradientSections.forEach((sectionId) => { + const g = gradients[sectionId]; + if (!g) + return; + g.forEach((def) => { + var _a, _b, _c; + const { from, to, format, step, id, pad = 0 } = def; + if (gradientCandidatesLight[from]) { + const fromColor = gradientCandidatesLight[from]; + const toColor = gradientCandidatesLight[to] || + ((_a = settingsManager.plugin.getCSSVar(to).light) === null || _a === void 0 ? void 0 : _a.trim()); + if (toColor) { + pushColors(themedLight, id, fromColor, toColor, format, step, pad); + } + } + if (gradientCandidatesDark[from]) { + const fromColor = gradientCandidatesDark[from]; + const toColor = gradientCandidatesDark[to] || + ((_b = settingsManager.plugin.getCSSVar(to).dark) === null || _b === void 0 ? void 0 : _b.trim()); + if (toColor) { + pushColors(themedDark, id, fromColor, toColor, format, step, pad); + } + } + if (gradientCandidates[from]) { + const fromColor = gradientCandidates[from]; + const toColor = gradientCandidates[to] || + ((_c = settingsManager.plugin.getCSSVar(to).current) === null || _c === void 0 ? void 0 : _c.trim()); + if (toColor) { + pushColors(vars, id, fromColor, toColor, format, step, pad); + } + } + }); + }); + return [vars, themedLight, themedDark]; +} +class CSSSettingsManager { + constructor(plugin) { + this.config = {}; + this.gradients = {}; + this.plugin = plugin; + this.settings = {}; + this.styleTag = document.createElement('style'); + this.styleTag.id = 'css-settings-manager'; + document.getElementsByTagName('head')[0].appendChild(this.styleTag); + } + cleanup() { + this.styleTag.remove(); + this.removeClasses(); + } + save() { + return __awaiter(this, void 0, void 0, function* () { + yield this.plugin.saveData(this.settings); + this.setCSSVariables(); + }); + } + load() { + return __awaiter(this, void 0, void 0, function* () { + this.settings = Object.assign({}, yield this.plugin.loadData()); + }); + } + initClasses() { + Object.keys(this.config).forEach((section) => { + const config = this.config[section]; + Object.keys(config).forEach((settingId) => { + const setting = config[settingId]; + if (setting.type === SettingType.CLASS_TOGGLE) { + const classToggle = setting; + const value = this.getSetting(section, settingId); + if (value === true || + (value === undefined && classToggle.default === true)) { + document.body.classList.add(setting.id); + } + } + else if (setting.type === SettingType.CLASS_SELECT) { + const multiToggle = setting; + let value = this.getSetting(section, settingId); + if (value === undefined && !!multiToggle.default) { + value = multiToggle.default; + } + else if (value === undefined) { + value = 'none'; + } + if (value !== 'none') { + document.body.classList.add(value); + } + } + }); + }); + } + removeClasses() { + Object.keys(this.config).forEach((section) => { + const config = this.config[section]; + Object.keys(config).forEach((settingId) => { + const setting = config[settingId]; + if (setting.type === SettingType.CLASS_TOGGLE) { + document.body.classList.remove(setting.id); + } + else if (setting.type === SettingType.CLASS_SELECT) { + const multiToggle = setting; + multiToggle.options.forEach((v) => { + if (typeof v === 'string') { + document.body.classList.remove(v); + } + else { + document.body.classList.remove(v.value); + } + }); + } + }); + }); + } + setCSSVariables() { + const [vars, themedLight, themedDark] = getCSSVariables(this.settings, this.config, this.gradients, this); + this.styleTag.innerText = ` + body.css-settings-manager { + ${vars.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + + body.theme-light.css-settings-manager { + ${themedLight.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + + body.theme-dark.css-settings-manager { + ${themedDark.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + ` + .trim() + .replace(/[\r\n\s]+/g, ' '); + this.plugin.app.workspace.trigger('css-change', { source: 'style-settings' }); + } + setConfig(settings) { + this.config = {}; + this.gradients = {}; + settings.forEach((s) => { + this.config[s.id] = {}; + s.settings.forEach((setting) => { + this.config[s.id][setting.id] = setting; + if (setting.type === SettingType.COLOR_GRADIENT) { + if (!this.gradients[s.id]) + this.gradients[s.id] = []; + this.gradients[s.id].push(setting); + } + }); + }); + let pruned = false; + for (const key in this.settings) { + const [sectionId, settingId] = key.split('@@'); + if (this.config[sectionId] && !this.config[sectionId][settingId]) { + delete this.settings[key]; + pruned = true; + } + } + if (pruned) { + this.save(); + } + else { + this.setCSSVariables(); + } + } + getSetting(sectionId, settingId) { + return this.settings[`${sectionId}@@${settingId}`]; + } + getSettings(sectionId, ids) { + return ids.reduce((settings, id) => { + const fullId = `${sectionId}@@${id}`; + const alts = ['dark', 'light']; + if (this.settings[fullId]) { + settings[fullId] = this.settings[fullId]; + } + alts.forEach((alt) => { + const id = `${fullId}@@${alt}`; + if (this.settings[id]) { + settings[id] = this.settings[id]; + } + }); + return settings; + }, {}); + } + setSetting(sectionId, settingId, value) { + this.settings[`${sectionId}@@${settingId}`] = value; + this.save(); + this.removeClasses(); + this.initClasses(); + } + setSettings(settings) { + Object.keys(settings).forEach((id) => { + this.settings[id] = settings[id]; + }); + this.removeClasses(); + this.initClasses(); + return this.save(); + } + clearSetting(sectionId, settingId) { + delete this.settings[`${sectionId}@@${settingId}`]; + this.save(); + this.removeClasses(); + this.initClasses(); + } + clearSection(sectionId) { + Object.keys(this.settings).forEach((key) => { + const [section] = key.split('@@'); + if (section === sectionId) { + delete this.settings[key]; + } + }); + this.save(); + this.removeClasses(); + this.initClasses(); + } + export(section, config) { + new ExportModal(this.plugin.app, this.plugin, section, config).open(); + } + import() { + new ImportModal(this.plugin.app, this.plugin).open(); + } +} + +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function isNothing(subject) { + return (typeof subject === 'undefined') || (subject === null); +} + + +function isObject(subject) { + return (typeof subject === 'object') && (subject !== null); +} + + +function toArray(sequence) { + if (Array.isArray(sequence)) return sequence; + else if (isNothing(sequence)) return []; + + return [ sequence ]; +} + + +function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; +} + + +function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; +} + + +function isNegativeZero(number) { + return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); +} + + +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; + +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 +}; + +// YAML error class. http://stackoverflow.com/questions/8458984 + + +function formatError(exception, compact) { + var where = '', message = exception.reason || '(unknown reason)'; + + if (!exception.mark) return message; + + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; + } + + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; +} + + +function YAMLException$1(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } +} + + +// Inherit from Error +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; + + +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); +}; + + +var exception = YAMLException$1; + +// get snippet for a single line, respecting maxLength +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } + + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } + + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; +} + + +function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; +} + + +function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); +} + + +var snippet = makeSnippet; + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type$1(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +var type = Type$1; + +/*eslint-disable max-len*/ + + + + + +function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); + + result[newIndex] = currentType; + }); + + return result; +} + + +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} + + +function Schema$1(definition) { + return this.extend(definition); +} + + +Schema$1.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + + } else { + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } + + implicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + if (type$1.loadKind && type$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema$1.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; +}; + + +var schema = Schema$1; + +var str = new type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } +}); + +var seq = new type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } +}); + +var map = new type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } +}); + +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return object === null; +} + +var _null = new type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' +}); + +function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} + +var bool = new type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + } + + // base 10 (except 0) + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + return true; +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); +} + +var int = new type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); + +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; +} + +function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); +} + + +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + +function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} + +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); +} + +var float = new type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); + +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); + +var core = json; + +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +var timestamp = new type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); + +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} + +var merge = new type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); + +/*eslint-disable no-bitwise*/ + + + + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; +} + +var binary = new type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); + +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString$2.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; +} + +function constructYamlOmap(data) { + return data !== null ? data : []; +} + +var omap = new type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); + +var _toString$1 = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString$1.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +var pairs = new type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); + +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; +} + +function constructYamlSet(data) { + return data !== null ? data : {}; +} + +var set = new type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); + +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); + +/*eslint-disable max-len,no-use-before-define*/ + + + + + + + +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function _class(obj) { return Object.prototype.toString.call(obj); } + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State$1(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || _default; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = snippet(mark); + + return new exception(message, mark); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} + +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State$1(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load$1(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception('expected a single document in the stream, but found more'); +} + + +var loadAll_1 = loadAll$1; +var load_1 = load$1; + +var loader = { + loadAll: loadAll_1, + load: load_1 +}; + +/*eslint-disable no-use-before-define*/ + + + + + +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_BOM = 0xFEFF; +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_EQUALS = 0x3D; /* = */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + + +var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + +function State(options) { + this.schema = options['schema'] || _default; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} + +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); +} + +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// Including s-white (for some reason, examples doesn't match specs in this aspect) +// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark +function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} + +// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out +// c = flow-in ⇒ ns-plain-safe-in +// c = block-key ⇒ ns-plain-safe-out +// c = flow-key ⇒ ns-plain-safe-in +// [128] ns-plain-safe-out ::= ns-char +// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator +// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) +// | ( /* An ns-char preceding */ “#” ) +// | ( “:” /* Followed by an ns-plain-safe(c) */ ) +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Simplified test for values allowed as the last character in plain style. +function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; +} + +// Same as 'string'.codePointAt(pos), but works in older browsers. +function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; +} + +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} + +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} + +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); + } + }()); +} + +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; +} + +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; +} + +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; +} + +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} + +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; + + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + + return result; +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump$1(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; +} + +var dump_1 = dump$1; + +var dumper = { + dump: dump_1 +}; + +function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; +} + + +var Type = type; +var Schema = schema; +var FAILSAFE_SCHEMA = failsafe; +var JSON_SCHEMA = json; +var CORE_SCHEMA = core; +var DEFAULT_SCHEMA = _default; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var YAMLException = exception; + +// Re-export all types in case user wants to create custom schema +var types = { + binary: binary, + float: float, + map: map, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge, + omap: omap, + seq: seq, + str: str +}; + +// Removed functions from JS-YAML 3.0.x +var safeLoad = renamed('safeLoad', 'load'); +var safeLoadAll = renamed('safeLoadAll', 'loadAll'); +var safeDump = renamed('safeDump', 'dump'); + +var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump +}; + +// Detect either spaces or tabs but not both to properly handle tabs for indentation and spaces for alignment +const INDENT_REGEX = /^(?:( )+|\t+)/; + +const INDENT_TYPE_SPACE = 'space'; +const INDENT_TYPE_TAB = 'tab'; + +/** +Make a Map that counts how many indents/unindents have occurred for a given size and how many lines follow a given indentation. + +The key is a concatenation of the indentation type (s = space and t = tab) and the size of the indents/unindents. + +``` +indents = { + t3: [1, 0], + t4: [1, 5], + s5: [1, 0], + s12: [1, 0], +} +``` +*/ +function makeIndentsMap(string, ignoreSingleSpaces) { + const indents = new Map(); + + // Remember the size of previous line's indentation + let previousSize = 0; + let previousIndentType; + + // Indents key (ident type + size of the indents/unindents) + let key; + + for (const line of string.split(/\n/g)) { + if (!line) { + // Ignore empty lines + continue; + } + + let indent; + let indentType; + let weight; + let entry; + const matches = line.match(INDENT_REGEX); + + if (matches === null) { + previousSize = 0; + previousIndentType = ''; + } else { + indent = matches[0].length; + indentType = matches[1] ? INDENT_TYPE_SPACE : INDENT_TYPE_TAB; + + // Ignore single space unless it's the only indent detected to prevent common false positives + if (ignoreSingleSpaces && indentType === INDENT_TYPE_SPACE && indent === 1) { + continue; + } + + if (indentType !== previousIndentType) { + previousSize = 0; + } + + previousIndentType = indentType; + + weight = 0; + + const indentDifference = indent - previousSize; + previousSize = indent; + + // Previous line have same indent? + if (indentDifference === 0) { + weight++; + // We use the key from previous loop + } else { + const absoluteIndentDifference = indentDifference > 0 ? indentDifference : -indentDifference; + key = encodeIndentsKey(indentType, absoluteIndentDifference); + } + + // Update the stats + entry = indents.get(key); + entry = entry === undefined ? [1, 0] : [++entry[0], entry[1] + weight]; + + indents.set(key, entry); + } + } + + return indents; +} + +// Encode the indent type and amount as a string (e.g. 's4') for use as a compound key in the indents Map. +function encodeIndentsKey(indentType, indentAmount) { + const typeCharacter = indentType === INDENT_TYPE_SPACE ? 's' : 't'; + return typeCharacter + String(indentAmount); +} + +// Extract the indent type and amount from a key of the indents Map. +function decodeIndentsKey(indentsKey) { + const keyHasTypeSpace = indentsKey[0] === 's'; + const type = keyHasTypeSpace ? INDENT_TYPE_SPACE : INDENT_TYPE_TAB; + + const amount = Number(indentsKey.slice(1)); + + return {type, amount}; +} + +// Return the key (e.g. 's4') from the indents Map that represents the most common indent, +// or return undefined if there are no indents. +function getMostUsedKey(indents) { + let result; + let maxUsed = 0; + let maxWeight = 0; + + for (const [key, [usedCount, weight]] of indents) { + if (usedCount > maxUsed || (usedCount === maxUsed && weight > maxWeight)) { + maxUsed = usedCount; + maxWeight = weight; + result = key; + } + } + + return result; +} + +function makeIndentString(type, amount) { + const indentCharacter = type === INDENT_TYPE_SPACE ? ' ' : '\t'; + return indentCharacter.repeat(amount); +} + +function detectIndent(string) { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + // Identify indents while skipping single space indents to avoid common edge cases (e.g. code comments) + // If no indents are identified, run again and include all indents for comprehensive detection + let indents = makeIndentsMap(string, true); + if (indents.size === 0) { + indents = makeIndentsMap(string, false); + } + + const keyOfMostUsedIndent = getMostUsedKey(indents); + + let type; + let amount = 0; + let indent = ''; + + if (keyOfMostUsedIndent !== undefined) { + ({type, amount} = decodeIndentsKey(keyOfMostUsedIndent)); + indent = makeIndentString(type, amount); + } + + return { + amount, + type, + indent, + }; +} + +const ar = {}; + +const cz = {}; + +const da = {}; + +const de = { + 'Default:': 'Standard:', + 'Error:': 'Fehler:', + 'missing default light value, or value is not in a valid color format': 'Fehlender heller standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default dark value, or value is not in a valid color format': 'Fehlender dunkler standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default value, or value is not in a valid color format': 'Fehlender standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default value': 'Fehlender standard Wert', +}; + +const en = { + 'Default:': 'Default:', + 'Error:': 'Error:', + 'missing default light value, or value is not in a valid color format': 'missing default light value, or value is not in a valid color format', + 'missing default dark value, or value is not in a valid color format': 'missing default dark value, or value is not in a valid color format', + 'missing default value, or value is not in a valid color format': 'missing default value, or value is not in a valid color format', + 'missing default value': 'missing default value', +}; + +const es = {}; + +const fr = {}; + +const hi = {}; + +const id = {}; + +const it = {}; + +const ja = {}; + +const ko = {}; + +const nl = { + 'Default:': 'Standaard:', + 'Error:': 'Error:', + 'missing default light value, or value is not in a valid color format': 'Geen standaard waarde voor het lichte thema, of de waarde is niet in het goede formaat', + 'missing default dark value, or value is not in a valid color format': 'Geen standaard waarde voor het donkere thema, of de waarde is niet in het goede formaat', + 'missing default value, or value is not in a valid color format': 'Geen standaard waarde, of de waarde is niet in het goede formaat', + 'missing default value': 'Geen standaard waarde', +}; + +const no = {}; + +const pl = {}; + +const pt = {}; + +const ptBr = {}; + +const ro = {}; + +const ru = {}; + +const sq = {}; + +const tr = {}; + +const uk = {}; + +const zh = { + 'Default:': '默认:', + 'Error:': '错误:', + 'missing default light value, or value is not in a valid color format': '缺少默认的浅色模式色值,或该色值没有采用一个有效的颜色格式', + 'missing default dark value, or value is not in a valid color format': '缺少默认的深色模式色值,或该色值没有采用一个有效的颜色格式', + 'missing default value, or value is not in a valid color format': '缺少默认色值,或该色值没有采用一个有效的颜色格式', + 'missing default value': '缺少默认色值', +}; + +const zhTw = {}; + +const lang = window.localStorage.getItem('language'); +const localeMap = { + ar, + cz, + da, + de, + en, + es, + fr, + hi, + id, + it, + ja, + ko, + nl, + no, + pl, + 'pt-BR': ptBr, + pt, + ro, + ru, + sq, + tr, + uk, + 'zh-TW': zhTw, + zh, +}; +const locale = localeMap[lang || 'en']; +function t(str) { + if (!locale) { + console.error('Error: Style Settings locale not found', lang); + } + return (locale && locale[str]) || en[str]; +} + +const settingRegExp = /\/\*\s*@settings[\r\n]+?([\s\S]+?)\*\//g; +const nameRegExp = /^name:\s*(.+)$/m; +function getTitle(config) { + if (lang) { + return config[`title.${lang}`] || config.title; + } + return config.title; +} +function getDescription(config) { + if (lang) { + return (config[`description.${lang}`] || + config.description); + } + return config.description; +} +function isValidDefaultColor(color) { + return /^(#|rgb|hsl)/.test(color); +} +function getPickrSettings(opts) { + const { el, isView, containerEl, swatches, opacity, defaultColor } = opts; + return { + el, + container: isView ? document.body : containerEl, + theme: 'nano', + swatches, + lockOpacity: !opacity, + default: defaultColor, + position: 'left-middle', + components: { + preview: true, + hue: true, + opacity: !!opacity, + interaction: { + hex: true, + rgba: true, + hsla: true, + input: true, + cancel: true, + save: true, + }, + }, + }; +} +function onPickrCancel(instance) { + instance.hide(); +} +function sanitizeText(str) { + if (str === '') { + return `""`; + } + return str.replace(/[;<>]/g, ''); +} +function createDescription(description, def, defLabel) { + const fragment = createFragment(); + if (description) { + fragment.appendChild(document.createTextNode(description)); + } + if (def) { + const small = createEl('small'); + small.appendChild(createEl('strong', { text: `${t('Default:')} ` })); + small.appendChild(document.createTextNode(defLabel || def)); + const div = createEl('div'); + div.appendChild(small); + fragment.appendChild(div); + } + return fragment; +} + +var fuzzysort = createCommonjsModule(function (module) { +((root, UMD) => { + if(module.exports) module.exports = UMD(); + else root['fuzzysort'] = UMD(); +})(commonjsGlobal, _ => { + + var single = (search, target) => { if(search=='farzher')return {target:"farzher was here (^-^*)/",score:0,_indexes:[0]} + if(!search || !target) return NULL + + var preparedSearch = getPreparedSearch(search); + if(!isObj(target)) target = getPrepared(target); + + var searchBitflags = preparedSearch.bitflags; + if((searchBitflags & target._bitflags) !== searchBitflags) return NULL + + return algorithm(preparedSearch, target) + }; + + + var go = (search, targets, options) => { if(search=='farzher')return [{target:"farzher was here (^-^*)/",score:0,_indexes:[0],obj:targets?targets[0]:NULL}] + if(!search) return options&&options.all ? all(search, targets, options) : noResults + + var preparedSearch = getPreparedSearch(search); + var searchBitflags = preparedSearch.bitflags; + preparedSearch.containsSpace; + + var threshold = options&&options.threshold || INT_MIN; + var limit = options&&options['limit'] || INT_MAX; // for some reason only limit breaks when minified + + var resultsLen = 0; var limitedCount = 0; + var targetsLen = targets.length; + + // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys] + + // options.key + if(options && options.key) { + var key = options.key; + for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]; + var target = getValue(obj, key); + if(!target) continue + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) continue + var result = algorithm(preparedSearch, target); + if(result === NULL) continue + if(result.score < threshold) continue + + // have to clone result so duplicate targets from different obj can each reference the correct obj + result = {target:result.target, _targetLower:'', _targetLowerCodes:NULL, _nextBeginningIndexes:NULL, _bitflags:0, score:result.score, _indexes:result._indexes, obj:obj}; // hidden + + if(resultsLen < limit) { q.add(result); ++resultsLen; } + else { + ++limitedCount; + if(result.score > q.peek().score) q.replaceTop(result); + } + } + + // options.keys + } else if(options && options.keys) { + var scoreFn = options['scoreFn'] || defaultScoreFn; + var keys = options.keys; + var keysLen = keys.length; + for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]; + var objResults = new Array(keysLen); + for (var keyI = 0; keyI < keysLen; ++keyI) { + var key = keys[keyI]; + var target = getValue(obj, key); + if(!target) { objResults[keyI] = NULL; continue } + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) objResults[keyI] = NULL; + else objResults[keyI] = algorithm(preparedSearch, target); + } + objResults.obj = obj; // before scoreFn so scoreFn can use it + var score = scoreFn(objResults); + if(score === NULL) continue + if(score < threshold) continue + objResults.score = score; + if(resultsLen < limit) { q.add(objResults); ++resultsLen; } + else { + ++limitedCount; + if(score > q.peek().score) q.replaceTop(objResults); + } + } + + // no keys + } else { + for(var i = 0; i < targetsLen; ++i) { var target = targets[i]; + if(!target) continue + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) continue + var result = algorithm(preparedSearch, target); + if(result === NULL) continue + if(result.score < threshold) continue + if(resultsLen < limit) { q.add(result); ++resultsLen; } + else { + ++limitedCount; + if(result.score > q.peek().score) q.replaceTop(result); + } + } + } + + if(resultsLen === 0) return noResults + var results = new Array(resultsLen); + for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll(); + results.total = resultsLen + limitedCount; + return results + }; + + + var highlight = (result, hOpen, hClose) => { + if(typeof hOpen === 'function') return highlightCallback(result, hOpen) + if(result === NULL) return NULL + if(hOpen === undefined) hOpen = ''; + if(hClose === undefined) hClose = ''; + var highlighted = ''; + var matchesIndex = 0; + var opened = false; + var target = result.target; + var targetLen = target.length; + var indexes = result._indexes; + indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b); + for(var i = 0; i < targetLen; ++i) { var char = target[i]; + if(indexes[matchesIndex] === i) { + ++matchesIndex; + if(!opened) { opened = true; + highlighted += hOpen; + } + + if(matchesIndex === indexes.length) { + highlighted += char + hClose + target.substr(i+1); + break + } + } else { + if(opened) { opened = false; + highlighted += hClose; + } + } + highlighted += char; + } + + return highlighted + }; + var highlightCallback = (result, cb) => { + if(result === NULL) return NULL + var target = result.target; + var targetLen = target.length; + var indexes = result._indexes; + indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b); + var highlighted = ''; + var matchI = 0; + var indexesI = 0; + var opened = false; + var result = []; + for(var i = 0; i < targetLen; ++i) { var char = target[i]; + if(indexes[indexesI] === i) { + ++indexesI; + if(!opened) { opened = true; + result.push(highlighted); highlighted = ''; + } + + if(indexesI === indexes.length) { + highlighted += char; + result.push(cb(highlighted, matchI++)); highlighted = ''; + result.push(target.substr(i+1)); + break + } + } else { + if(opened) { opened = false; + result.push(cb(highlighted, matchI++)); highlighted = ''; + } + } + highlighted += char; + } + return result + }; + + + var indexes = result => result._indexes.slice(0, result._indexes.len).sort((a,b)=>a-b); + + + var prepare = (target) => { + if(typeof target !== 'string') target = ''; + var info = prepareLowerInfo(target); + return {'target':target, _targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _nextBeginningIndexes:NULL, _bitflags:info.bitflags, 'score':NULL, _indexes:[0], 'obj':NULL} // hidden + }; + + + // Below this point is only internal code + // Below this point is only internal code + // Below this point is only internal code + // Below this point is only internal code + + + var prepareSearch = (search) => { + if(typeof search !== 'string') search = ''; + search = search.trim(); + var info = prepareLowerInfo(search); + + var spaceSearches = []; + if(info.containsSpace) { + var searches = search.split(/\s+/); + searches = [...new Set(searches)]; // distinct + for(var i=0; i { + if(target.length > 999) return prepare(target) // don't cache huge targets + var targetPrepared = preparedCache.get(target); + if(targetPrepared !== undefined) return targetPrepared + targetPrepared = prepare(target); + preparedCache.set(target, targetPrepared); + return targetPrepared + }; + var getPreparedSearch = (search) => { + if(search.length > 999) return prepareSearch(search) // don't cache huge searches + var searchPrepared = preparedSearchCache.get(search); + if(searchPrepared !== undefined) return searchPrepared + searchPrepared = prepareSearch(search); + preparedSearchCache.set(search, searchPrepared); + return searchPrepared + }; + + + var all = (search, targets, options) => { + var results = []; results.total = targets.length; + + var limit = options && options.limit || INT_MAX; + + if(options && options.key) { + for(var i=0;i