\n \n <$list filter=\"[[$:/info/tidgi/git-api-available]!text[yes]]\">\n
\n Git API not available. Please use [ext[TidGi-Desktop|https://github.com/tiddly-gittly/TidGi-Desktop/]] 0.13.0+\n
\n $list>\n\n {{$:/plugins/linonetwo/source-control-management/TiddlerInputSection}}\n \n {{$:/plugins/linonetwo/source-control-management/FilesSection}}\n \n \n <$list filter=\"[[$:/state/scm/viewing-tiddler]get[text]]\" variable=\"viewingTiddler\">\n <$set name=\"commitsTitle\" value={{{ [[$:/temp/source-control-management/]addsuffix
addsuffix[/commits]] }}}>\n <$list filter=\"[has[list]]\" variable=\"null\">\n \n \n {{$:/plugins/linonetwo/source-control-management/SearchSection}}\n $list>\n $set>\n $list>\n \n {{$:/plugins/linonetwo/source-control-management/CommitListSection}}\n\n \n"},"$:/plugins/linonetwo/source-control-management/TiddlerInputSection":{"title":"$:/plugins/linonetwo/source-control-management/TiddlerInputSection","type":"text/vnd.tiddlywiki","text":"\\define lingo-base() $:/plugins/linonetwo/source-control-management/language/\n\n\n\n <$edit-text tiddler=\"$:/state/scm/target-tiddler\" default={{$:/temp/focussedTiddler}} tag=\"input\" class=\"tidgi-scm-tiddler-input tc-edit-texteditor\" />\n \n <$wikify name=\"tooltipView\" text=\"<>\">\n <$button class=\"tidgi-scm-view-button tc-btn-invisible\" tooltip=<>>\n <$list filter=\"[[$:/state/scm/target-tiddler]has[text]]\" variable=\"ignore\">\n <$action-setfield $tiddler=\"$:/state/scm/viewing-tiddler\" text={{$:/state/scm/target-tiddler}} />\n $list>\n <$list filter=\"[[$:/state/scm/target-tiddler]!has[text]]\" variable=\"ignore\">\n <$action-setfield $tiddler=\"$:/state/scm/viewing-tiddler\" text={{$:/temp/focussedTiddler}} />\n $list>\n <$action-sendmessage $message=\"tm-scm-reload\" />\n <$action-sendmessage $message=\"tm-scm-auto-select-first-commit\" />\n {{$:/plugins/linonetwo/source-control-management/images/zoom-in}}\n $button>\n $wikify>\n
\n"},"$:/plugins/linonetwo/source-control-management/tab.js":{"title":"$:/plugins/linonetwo/source-control-management/tab.js","type":"application/javascript","module-type":"widget","Modern.TiddlyDev#Origin":"git-commit-list.ts","text":"\"use strict\";var import_widget=require(\"$:/core/modules/widgets/widget.js\");if($tw.browser){class a extends import_widget.widget{constructor(e,t){super(e,t),this.initialise(e,t)}render(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute();var i=this.document.createElement(\"div\");i.className=\"tidgi-scm-commit-list-container\",this.renderChildren(i,null),e.insertBefore(i,t),this.domNodes.push(i)}execute(){this.getAttribute(\"tiddler\"),this.getAttribute(\"search\"),this.makeChildWidgets()}refresh(e){var t=this.computeAttributes();return t.tiddler||t.search?(this.refreshSelf(),!0):this.refreshChildren(e)}}const b=exports;b[\"git-commit-list\"]=a}"},"$:/plugins/linonetwo/source-control-management/info.js":{"title":"$:/plugins/linonetwo/source-control-management/info.js","type":"application/javascript","module-type":"info","Modern.TiddlyDev#Origin":"info.ts","text":"\"use strict\";function getInfoTiddlerFields(){var e,i=[];return null!==$tw.browser&&\"undefined\"!=typeof window&&(e=\"function\"==typeof window?.service?.git?.callGitOp,i.push({title:\"$:/info/tidgi/git-api-available\",text:e?\"yes\":\"no\"})),i}var moduleExports=exports;moduleExports.getInfoTiddlerFields=getInfoTiddlerFields;"},"$:/plugins/linonetwo/source-control-management/startup.js":{"title":"$:/plugins/linonetwo/source-control-management/startup.js","type":"application/javascript","module-type":"startup","Modern.TiddlyDev#Origin":"startup.ts","text":"\"use strict\";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(t,e)=>{for(var i in e)__defProp(t,i,{get:e[i],enumerable:!0})},__copyProps=(e,i,a,s)=>{if(i&&\"object\"==typeof i||\"function\"==typeof i)for(let t of __getOwnPropNames(i))__hasOwnProp.call(e,t)||t===a||__defProp(e,t,{get:()=>i[t],enumerable:!(s=__getOwnPropDesc(i,t))||s.enumerable});return e},__toCommonJS=t=>__copyProps(__defProp({},\"__esModule\",{value:!0}),t),startup_exports={},normalizePath=(__export(startup_exports,{startup:()=>startup}),module.exports=__toCommonJS(startup_exports),t=>t.replaceAll(\"\\\\\",\"/\")),getGitRepoPathForFile=async(t,e,i)=>{if(t){if(t.isSubWiki&&t.mainWikiToLink)return t.mainWikiToLink;if(e){var a=normalizePath(e),s=normalizePath(t.wikiFolderLocation);if(!a.startsWith(s)&&i)try{for(const r of(await i.getWorkspacesAsList()).filter(t=>t.wikiFolderLocation).sort((t,e)=>e.wikiFolderLocation.length-t.wikiFolderLocation.length)){var o=normalizePath(r.wikiFolderLocation);if(a.startsWith(o))return r.wikiFolderLocation}}catch{}}return t.wikiFolderLocation}},getRelativePath=(t,e)=>{var i=normalizePath(t),a=normalizePath(e);return i.startsWith(a)?i.substring(a.length).replace(/^\\/+/,\"\"):i},startup=()=>{if($tw.browser){var t=\"undefined\"==typeof global?void 0:global.window;const y=\"undefined\"==typeof window?t??$tw.mockWindow??{}:window;let x=0,k=[],T=!1,u;const P=()=>\"yes\"===$tw.wiki.getTiddlerText(\"$:/plugins/linonetwo/source-control-management/configs/debug\"),$=()=>[{path:\"tiddlers/TestTiddler.tid\",status:\"modified\"},{path:\"other.txt\",status:\"added\"}],_=(i,t)=>{$tw.wiki.addTiddler({title:`$:/temp/source-control-management/${i}/commits`,list:t.map(t=>t.hash)}),t.forEach(t=>{var e=`$:/temp/source-control-management/${i}/commit/`+t.hash;$tw.wiki.addTiddler({title:e,text:t.message,author:t.author?.name,date:t.committerDate,hash:t.hash})})},g=(t,e)=>{var i,a=`$:/temp/source-control-management/${t}/files`,s=(i=t,e.map(t=>({title:`$:/temp/source-control-management/${i}/file/`+encodeURIComponent(t.path),text:t.path,status:t.status,path:t.path})));return s.forEach(t=>{$tw.wiki.addTiddler(t)}),$tw.wiki.addTiddler({title:a,list:s.map(t=>t.title)}),s};$tw.rootWidget.addEventListener(\"tm-scm-reload\",async t=>{if(!T){var e=$tw.wiki.getTiddlerText(\"$:/state/scm/viewing-tiddler\");if(e){var i,a,s,o=$tw.wiki.getTiddlerText(\"$:/state/scm/search\"),r=(i=e,x=0,k=[],$tw.wiki.deleteTiddler(`$:/temp/source-control-management/${i}/commits`),P()),n=y.meta?.()?.workspace,l=y.service?.git,d=y.service?.wiki,c=y.service?.workspace;if(l&&d&&n)if(r)try{T=!0,$tw.wiki.setText(\"$:/state/scm/loading\",\"text\",void 0,\"yes\"),u=await getGitRepoPathForFile(n,void 0,c);var m=[{hash:\"mock1\",parents:[],branch:\"main\",message:\"Mock commit 1\",committerDate:\"2023-01-01\",author:{name:\"Mock User\"}},{hash:\"mock2\",parents:[],branch:\"main\",message:\"Mock commit 2\",committerDate:\"2023-01-02\",author:{name:\"Mock User\"}}];k=m,x=1,_(e,m),$tw.wiki.setText(\"$:/state/scm/has-uncommitted\",\"text\",void 0,\"no\")}catch(v){$tw.wiki.setText(\"$:/state/scm/error\",\"text\",void 0,String(v))}finally{T=!1,$tw.wiki.setText(\"$:/state/scm/loading\",\"text\",void 0,\"no\")}else try{T=!0,$tw.wiki.setText(\"$:/state/scm/loading\",\"text\",void 0,\"yes\");let t=await d.getTiddlerFilePath(e,n?.id);if(t||(a=($tw.boot?.files)?.[e])?.filepath&&(t=a.filepath),t){if(u=await getGitRepoPathForFile(n,t,c)){var w=getRelativePath(t,u),$=(await l.callGitOp(\"getGitLog\",u,{page:x,pageSize:50,searchQuery:o??void 0,searchMode:o?\"message\":\"file\",filePath:w})).entries;k=$,x+=1,_(e,$);try{var g=await l.callGitOp(\"getCommitFiles\",u,\"\"),p=Array.isArray(g)?g:[];const h=getRelativePath(t,u);var f=p.some(t=>normalizePath(t.path)===h);$tw.wiki.setText(\"$:/state/scm/has-uncommitted\",\"text\",void 0,f?\"yes\":\"no\")}catch{$tw.wiki.setText(\"$:/state/scm/has-uncommitted\",\"text\",void 0,\"no\")}}}else s=`$:/temp/source-control-management/${e}/commits`,$tw.wiki.addTiddler({title:s,list:[]})}catch(v){$tw.wiki.setText(\"$:/state/scm/error\",\"text\",void 0,String(v))}finally{T=!1,$tw.wiki.setText(\"$:/state/scm/loading\",\"text\",void 0,\"no\")}}}}),$tw.rootWidget.addEventListener(\"tm-scm-load-uncommitted\",async t=>{var e=$tw.wiki.getTiddlerText(\"$:/state/scm/viewing-tiddler\");if(e){$tw.wiki.setText(\"$:/state/scm/selected-commit\",\"text\",void 0,\"uncommitted\");$tw.wiki.deleteTiddler(`$:/temp/source-control-management/${e}/files`),$tw.wiki.setText(\"$:/state/scm/loading-files\",\"text\",void 0,\"yes\");var i=P(),a=y.meta?.()?.workspace,s=y.service?.workspace,o=y.service?.wiki,r=y.service?.git;if(o&&r){var n,o=await o.getTiddlerFilePath(e,a?.id),a=await getGitRepoPathForFile(a,o,s);try{if(i)n=$(),g(e,n),$tw.wiki.setText(\"$:/state/scm/has-uncommitted\",\"text\",void 0,0