bcs1037_side-bookmark/main.js

7 lines
23 KiB
JavaScript

/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var C=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var O=(n,e)=>{for(var t in e)C(n,t,{get:e[t],enumerable:!0})},A=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of M(e))!_.call(n,s)&&s!==t&&C(n,s,{get:()=>e[s],enumerable:!(r=F(e,s))||r.enumerable});return n};var U=n=>A(C({},"__esModule",{value:!0}),n);var N={};O(N,{default:()=>T});module.exports=U(N);var S=require("obsidian");var P={bookmarks:[],folders:[],defaultUrl:"https://www.google.com",showBookmarkPanel:!0,interceptLinks:!1},h="side-bookmark-view";function x(){return Date.now().toString(36)+Math.random().toString(36).substring(2,9)}var f=class{constructor(e){this.listeners=[];this.plugin=e,this.data={...P}}async load(){let e=await this.plugin.loadData();e&&(this.data={...P,...e})}async save(){await this.plugin.saveData(this.data)}onChange(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(){for(let e of this.listeners)e()}get defaultUrl(){return this.data.defaultUrl}set defaultUrl(e){this.data.defaultUrl=e}get showBookmarkPanel(){return this.data.showBookmarkPanel}set showBookmarkPanel(e){this.data.showBookmarkPanel=e}get interceptLinks(){return this.data.interceptLinks}set interceptLinks(e){this.data.interceptLinks=e}get bookmarks(){return this.data.bookmarks}get folders(){return this.data.folders}async addBookmark(e,t,r=null){let s=this.data.bookmarks.filter(l=>l.folderId===r),o=s.length>0?Math.max(...s.map(l=>l.order)):-1,i={id:x(),type:"bookmark",title:e,url:t,folderId:r,order:o+1};return this.data.bookmarks.push(i),await this.save(),this.notify(),i}async removeBookmark(e){this.data.bookmarks=this.data.bookmarks.filter(t=>t.id!==e),await this.save(),this.notify()}async updateBookmark(e,t){let r=this.data.bookmarks.find(s=>s.id===e);r&&(Object.assign(r,t),await this.save(),this.notify())}async moveBookmark(e,t){await this.updateBookmark(e,{folderId:t})}async addFolder(e,t=null){let r=this.data.folders.filter(i=>i.parentId===t),s=r.length>0?Math.max(...r.map(i=>i.order)):-1,o={id:x(),type:"folder",name:e,parentId:t,collapsed:!1,order:s+1};return this.data.folders.push(o),await this.save(),this.notify(),o}async removeFolder(e){let t=this.getDescendantFolderIds(e),r=[e,...t];this.data.bookmarks=this.data.bookmarks.filter(s=>{var o;return!r.includes((o=s.folderId)!=null?o:"")}),this.data.folders=this.data.folders.filter(s=>!r.includes(s.id)),await this.save(),this.notify()}async updateFolder(e,t){let r=this.data.folders.find(s=>s.id===e);r&&(Object.assign(r,t),await this.save(),this.notify())}async toggleFolder(e){let t=this.data.folders.find(r=>r.id===e);t&&(t.collapsed=!t.collapsed,await this.save(),this.notify())}getBookmarksByFolder(e){return this.data.bookmarks.filter(t=>t.folderId===e).sort((t,r)=>t.order-r.order)}getSubFolders(e){return this.data.folders.filter(t=>t.parentId===e).sort((t,r)=>t.order-r.order)}getFolder(e){return this.data.folders.find(t=>t.id===e)}getBookmark(e){return this.data.bookmarks.find(t=>t.id===e)}getTreeItems(e){let t=this.getSubFolders(e),r=this.getBookmarksByFolder(e);return[...t,...r].sort((o,i)=>o.order-i.order)}hasBookmarkWithUrl(e){return this.data.bookmarks.some(t=>t.url===e)}getDescendantFolderIds(e){let t=this.data.folders.filter(s=>s.parentId===e),r=[];for(let s of t)r.push(s.id),r.push(...this.getDescendantFolderIds(s.id));return r}};var D=require("obsidian");var u=require("obsidian"),b=class{constructor(e){this.webviewEl=null;this.currentUrl="";this.currentTitle="";this.onAddBookmark=null;this.containerEl=e.createDiv({cls:"sb-browser-panel"}),this.navBarEl=this.containerEl.createDiv({cls:"sb-nav-bar"});let t=this.navBarEl.createDiv({cls:"sb-nav-buttons"});this.backBtn=t.createDiv({cls:"sb-nav-btn",attr:{"aria-label":"\u540E\u9000"}}),(0,u.setIcon)(this.backBtn,"arrow-left"),this.backBtn.addEventListener("click",()=>this.goBack()),this.forwardBtn=t.createDiv({cls:"sb-nav-btn",attr:{"aria-label":"\u524D\u8FDB"}}),(0,u.setIcon)(this.forwardBtn,"arrow-right"),this.forwardBtn.addEventListener("click",()=>this.goForward()),this.refreshBtn=t.createDiv({cls:"sb-nav-btn",attr:{"aria-label":"\u5237\u65B0"}}),(0,u.setIcon)(this.refreshBtn,"refresh-cw"),this.refreshBtn.addEventListener("click",()=>this.reload()),this.urlInput=this.navBarEl.createEl("input",{cls:"sb-url-input",attr:{type:"text",placeholder:"\u8F93\u5165\u7F51\u5740...",spellcheck:"false"}}),this.urlInput.addEventListener("keydown",r=>{r.key==="Enter"&&this.navigateToInput()}),this.urlInput.addEventListener("focus",()=>{this.urlInput.select()}),this.bookmarkBtn=this.navBarEl.createDiv({cls:"sb-nav-btn sb-bookmark-btn",attr:{"aria-label":"\u6DFB\u52A0\u4E66\u7B7E"}}),(0,u.setIcon)(this.bookmarkBtn,"star"),this.bookmarkBtn.addEventListener("click",()=>{this.onAddBookmark&&this.currentUrl&&this.onAddBookmark(this.currentTitle||this.currentUrl,this.currentUrl)}),this.webviewContainer=this.containerEl.createDiv({cls:"sb-webview-container"})}navigate(e){let t=e.trim();t&&(/^https?:\/\//i.test(t)||(t="https://"+t),this.currentUrl=t,this.urlInput.value=t,this.createOrUpdateWebview(t))}goBack(){var e,t;this.webviewEl&&((t=(e=this.webviewEl).goBack)==null||t.call(e))}goForward(){var e,t;this.webviewEl&&((t=(e=this.webviewEl).goForward)==null||t.call(e))}reload(){var e,t;this.webviewEl&&((t=(e=this.webviewEl).reload)==null||t.call(e))}getUrl(){return this.currentUrl}getTitle(){return this.currentTitle}destroy(){this.webviewEl&&(this.webviewEl.remove(),this.webviewEl=null),this.containerEl.remove()}navigateToInput(){let e=this.urlInput.value.trim();e&&this.navigate(e)}createOrUpdateWebview(e){this.webviewEl&&this.webviewEl.remove();let t=document.createElement("webview");t.setAttribute("src",e),t.setAttribute("allowpopups",""),t.addClass("sb-webview"),t.addEventListener("did-navigate",r=>{let s=r;s.url&&(this.currentUrl=s.url,this.urlInput.value=s.url)}),t.addEventListener("did-navigate-in-page",r=>{let s=r;s.url&&(this.currentUrl=s.url,this.urlInput.value=s.url)}),t.addEventListener("page-title-updated",r=>{let s=r;s.title&&(this.currentTitle=s.title)}),t.addEventListener("dom-ready",()=>{let r=t;r.getURL&&(this.currentUrl=r.getURL(),this.urlInput.value=this.currentUrl),r.getTitle&&(this.currentTitle=r.getTitle())}),t.addEventListener("new-window",r=>{r.url&&this.navigate(r.url)}),this.webviewContainer.empty(),this.webviewContainer.appendChild(t),this.webviewEl=t}};var d=require("obsidian");var a=require("obsidian"),m=class extends a.Modal{constructor(e,t,r="",s="",o=null,i){super(e),this.store=t,this.title=r,this.url=s,this.folderId=o,this.onSave=i!=null?i:null}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("side-bookmark-modal"),e.createEl("h3",{text:"\u6DFB\u52A0\u4E66\u7B7E"}),new a.Setting(e).setName("\u6807\u9898").addText(t=>t.setPlaceholder("\u8F93\u5165\u4E66\u7B7E\u6807\u9898").setValue(this.title).onChange(r=>{this.title=r})),new a.Setting(e).setName("\u7F51\u5740").addText(t=>t.setPlaceholder("https://example.com").setValue(this.url).onChange(r=>{this.url=r})),new a.Setting(e).setName("\u6587\u4EF6\u5939").addDropdown(t=>{var r;t.addOption("__root__","\uFF08\u65E0\u6587\u4EF6\u5939\uFF09");for(let s of this.store.folders)t.addOption(s.id,this.getFolderPath(s));t.setValue((r=this.folderId)!=null?r:"__root__"),t.onChange(s=>{this.folderId=s==="__root__"?null:s})}),new a.Setting(e).addButton(t=>t.setButtonText("\u4FDD\u5B58").setCta().onClick(async()=>{if(!this.url.trim())return;this.title.trim()||(this.title=this.url);let r=this.url.trim();/^https?:\/\//i.test(r)||(r="https://"+r),this.onSave?this.onSave(this.title.trim(),r,this.folderId):await this.store.addBookmark(this.title.trim(),r,this.folderId),this.close()})).addButton(t=>t.setButtonText("\u53D6\u6D88").onClick(()=>this.close()))}onClose(){let{contentEl:e}=this;e.empty()}getFolderPath(e){let t=[e.name],r=e;for(;r!=null&&r.parentId;)r=this.store.getFolder(r.parentId),r&&t.unshift(r.name);return t.join(" / ")}},w=class extends a.Modal{constructor(e,t,r,s,o,i){super(e),this.store=t,this.bookmarkId=r,this.title=s,this.url=o,this.folderId=i}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("side-bookmark-modal"),e.createEl("h3",{text:"\u7F16\u8F91\u4E66\u7B7E"}),new a.Setting(e).setName("\u6807\u9898").addText(t=>t.setPlaceholder("\u8F93\u5165\u4E66\u7B7E\u6807\u9898").setValue(this.title).onChange(r=>{this.title=r})),new a.Setting(e).setName("\u7F51\u5740").addText(t=>t.setPlaceholder("https://example.com").setValue(this.url).onChange(r=>{this.url=r})),new a.Setting(e).setName("\u6587\u4EF6\u5939").addDropdown(t=>{var r;t.addOption("__root__","\uFF08\u65E0\u6587\u4EF6\u5939\uFF09");for(let s of this.store.folders)t.addOption(s.id,this.getFolderPath(s));t.setValue((r=this.folderId)!=null?r:"__root__"),t.onChange(s=>{this.folderId=s==="__root__"?null:s})}),new a.Setting(e).addButton(t=>t.setButtonText("\u4FDD\u5B58").setCta().onClick(async()=>{if(!this.url.trim())return;this.title.trim()||(this.title=this.url);let r=this.url.trim();/^https?:\/\//i.test(r)||(r="https://"+r),await this.store.updateBookmark(this.bookmarkId,{title:this.title.trim(),url:r,folderId:this.folderId}),this.close()})).addButton(t=>t.setButtonText("\u53D6\u6D88").onClick(()=>this.close()))}onClose(){let{contentEl:e}=this;e.empty()}getFolderPath(e){let t=[e.name],r=e;for(;r!=null&&r.parentId;)r=this.store.getFolder(r.parentId),r&&t.unshift(r.name);return t.join(" / ")}},v=class extends a.Modal{constructor(e,t,r=null){super(e),this.store=t,this.folderName="",this.parentId=r}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("side-bookmark-modal"),e.createEl("h3",{text:"\u65B0\u5EFA\u6587\u4EF6\u5939"}),new a.Setting(e).setName("\u6587\u4EF6\u5939\u540D\u79F0").addText(t=>t.setPlaceholder("\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0").setValue(this.folderName).onChange(r=>{this.folderName=r})),new a.Setting(e).setName("\u7236\u6587\u4EF6\u5939").addDropdown(t=>{var r;t.addOption("__root__","\uFF08\u6839\u7EA7\u522B\uFF09");for(let s of this.store.folders)t.addOption(s.id,this.getFolderPath(s));t.setValue((r=this.parentId)!=null?r:"__root__"),t.onChange(s=>{this.parentId=s==="__root__"?null:s})}),new a.Setting(e).addButton(t=>t.setButtonText("\u521B\u5EFA").setCta().onClick(async()=>{this.folderName.trim()&&(await this.store.addFolder(this.folderName.trim(),this.parentId),this.close())})).addButton(t=>t.setButtonText("\u53D6\u6D88").onClick(()=>this.close()))}onClose(){let{contentEl:e}=this;e.empty()}getFolderPath(e){let t=[e.name],r=e;for(;r!=null&&r.parentId;)r=this.store.getFolder(r.parentId),r&&t.unshift(r.name);return t.join(" / ")}},B=class extends a.Modal{constructor(e,t,r,s){super(e),this.store=t,this.folderId=r,this.folderName=s}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("side-bookmark-modal"),e.createEl("h3",{text:"\u7F16\u8F91\u6587\u4EF6\u5939"}),new a.Setting(e).setName("\u6587\u4EF6\u5939\u540D\u79F0").addText(t=>t.setPlaceholder("\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0").setValue(this.folderName).onChange(r=>{this.folderName=r})),new a.Setting(e).addButton(t=>t.setButtonText("\u4FDD\u5B58").setCta().onClick(async()=>{this.folderName.trim()&&(await this.store.updateFolder(this.folderId,{name:this.folderName.trim()}),this.close())})).addButton(t=>t.setButtonText("\u53D6\u6D88").onClick(()=>this.close()))}onClose(){let{contentEl:e}=this;e.empty()}},g=class extends a.Modal{constructor(e,t,r){super(e),this.message=t,this.onConfirm=r}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("side-bookmark-modal"),e.createEl("h3",{text:"\u786E\u8BA4\u5220\u9664"}),e.createEl("p",{text:this.message}),new a.Setting(e).addButton(t=>t.setButtonText("\u5220\u9664").setWarning().onClick(async()=>{await this.onConfirm(),this.close()})).addButton(t=>t.setButtonText("\u53D6\u6D88").onClick(()=>this.close()))}onClose(){let{contentEl:e}=this;e.empty()}};var E=class{constructor(e,t,r){this.collapsed=!1;this.unsubscribe=null;this.onNavigate=null;this.app=e,this.store=r,this.containerEl=t.createDiv({cls:"sb-bookmark-panel"}),this.headerEl=this.containerEl.createDiv({cls:"sb-bookmark-header"});let s=this.headerEl.createDiv({cls:"sb-bookmark-header-left"}),o=s.createDiv({cls:"sb-collapse-icon"});(0,d.setIcon)(o,"chevron-down"),s.createSpan({text:"\u4E66\u7B7E",cls:"sb-bookmark-title"}),s.addEventListener("click",()=>{this.toggleCollapse()});let l=this.headerEl.createDiv({cls:"sb-bookmark-header-right"}).createDiv({cls:"sb-add-btn-group"}),p=l.createDiv({cls:"sb-header-btn",attr:{"aria-label":"\u6DFB\u52A0\u4E66\u7B7E"}});(0,d.setIcon)(p,"plus"),p.addEventListener("click",L=>{L.stopPropagation(),new m(this.app,this.store).open()});let c=l.createDiv({cls:"sb-header-btn",attr:{"aria-label":"\u65B0\u5EFA\u6587\u4EF6\u5939"}});(0,d.setIcon)(c,"folder-plus"),c.addEventListener("click",L=>{L.stopPropagation(),new v(this.app,this.store).open()}),this.listEl=this.containerEl.createDiv({cls:"sb-bookmark-list"}),this.unsubscribe=this.store.onChange(()=>{this.renderList()}),this.renderList()}toggleCollapse(){this.collapsed=!this.collapsed,this.containerEl.toggleClass("sb-collapsed",this.collapsed);let e=this.headerEl.querySelector(".sb-collapse-icon");e&&(e.empty(),(0,d.setIcon)(e,this.collapsed?"chevron-right":"chevron-down"))}destroy(){this.unsubscribe&&this.unsubscribe(),this.containerEl.remove()}renderList(){if(this.listEl.empty(),this.store.getTreeItems(null).length===0){let t=this.listEl.createDiv({cls:"sb-empty-state"}),r=t.createDiv({cls:"sb-empty-icon"});(0,d.setIcon)(r,"bookmark"),t.createDiv({text:"\u6682\u65E0\u4E66\u7B7E",cls:"sb-empty-text"}),t.createDiv({text:"\u70B9\u51FB + \u6309\u94AE\u6216 \u2B50 \u6309\u94AE\u6DFB\u52A0\u4E66\u7B7E",cls:"sb-empty-hint"});return}this.renderTreeLevel(this.listEl,null,0)}renderTreeLevel(e,t,r){let s=this.store.getTreeItems(t);for(let o of s)o.type==="folder"?this.renderFolder(e,o,r):this.renderBookmark(e,o,r)}renderFolder(e,t,r){let s=e.createDiv({cls:"sb-tree-item sb-folder-item",attr:{"data-id":t.id,"data-type":"folder",draggable:"true"}});s.style.paddingLeft=`${r*16+4}px`;let o=s.createDiv({cls:"sb-tree-item-row"}),i=o.createDiv({cls:"sb-folder-collapse"});(0,d.setIcon)(i,t.collapsed?"chevron-right":"chevron-down");let l=o.createDiv({cls:"sb-item-icon"});(0,d.setIcon)(l,t.collapsed?"folder":"folder-open"),o.createSpan({text:t.name,cls:"sb-item-label"});let p=this.store.getBookmarksByFolder(t.id).length+this.store.getSubFolders(t.id).length;if(p>0&&o.createSpan({text:`${p}`,cls:"sb-count-badge"}),o.addEventListener("click",()=>{this.store.toggleFolder(t.id)}),o.addEventListener("contextmenu",c=>{c.preventDefault(),c.stopPropagation(),this.showFolderContextMenu(c,t)}),this.setupDragEvents(s,t),!t.collapsed){let c=e.createDiv({cls:"sb-folder-children"});this.renderTreeLevel(c,t.id,r+1)}}renderBookmark(e,t,r){let s=e.createDiv({cls:"sb-tree-item sb-bookmark-item",attr:{"data-id":t.id,"data-type":"bookmark",draggable:"true"}});s.style.paddingLeft=`${r*16+24}px`;let o=s.createDiv({cls:"sb-tree-item-row"}),i=o.createDiv({cls:"sb-item-icon"});(0,d.setIcon)(i,"globe"),o.createSpan({text:t.title,cls:"sb-item-label"}),o.addEventListener("click",()=>{this.onNavigate&&this.onNavigate(t.url)}),o.addEventListener("contextmenu",l=>{l.preventDefault(),l.stopPropagation(),this.showBookmarkContextMenu(l,t)}),this.setupDragEvents(s,t)}showBookmarkContextMenu(e,t){let r=new d.Menu;r.addItem(s=>{s.setTitle("\u6253\u5F00"),s.setIcon("external-link"),s.onClick(()=>{this.onNavigate&&this.onNavigate(t.url)})}),r.addSeparator(),r.addItem(s=>{s.setTitle("\u7F16\u8F91"),s.setIcon("pencil"),s.onClick(()=>{new w(this.app,this.store,t.id,t.title,t.url,t.folderId).open()})}),r.addItem(s=>{s.setTitle("\u79FB\u52A8\u5230..."),s.setIcon("folder-input"),s.onClick(()=>{this.showMoveMenu(e,t)})}),r.addSeparator(),r.addItem(s=>{s.setTitle("\u5220\u9664"),s.setIcon("trash-2"),s.onClick(()=>{new g(this.app,`\u786E\u5B9A\u8981\u5220\u9664\u4E66\u7B7E"${t.title}"\u5417\uFF1F`,async()=>{await this.store.removeBookmark(t.id)}).open()})}),r.showAtMouseEvent(e)}showFolderContextMenu(e,t){let r=new d.Menu;r.addItem(s=>{s.setTitle("\u6DFB\u52A0\u4E66\u7B7E\u5230\u6B64\u6587\u4EF6\u5939"),s.setIcon("plus"),s.onClick(()=>{new m(this.app,this.store,"","",t.id).open()})}),r.addItem(s=>{s.setTitle("\u6DFB\u52A0\u5B50\u6587\u4EF6\u5939"),s.setIcon("folder-plus"),s.onClick(()=>{new v(this.app,this.store,t.id).open()})}),r.addSeparator(),r.addItem(s=>{s.setTitle("\u91CD\u547D\u540D"),s.setIcon("pencil"),s.onClick(()=>{new B(this.app,this.store,t.id,t.name).open()})}),r.addSeparator(),r.addItem(s=>{s.setTitle("\u5220\u9664\u6587\u4EF6\u5939"),s.setIcon("trash-2"),s.onClick(()=>{let o=this.store.getBookmarksByFolder(t.id).length,i=this.store.getSubFolders(t.id).length,l=`\u786E\u5B9A\u8981\u5220\u9664\u6587\u4EF6\u5939"${t.name}"\u5417\uFF1F`;(o>0||i>0)&&(l+=`
\u5176\u4E2D\u5305\u542B ${o} \u4E2A\u4E66\u7B7E\u548C ${i} \u4E2A\u5B50\u6587\u4EF6\u5939\uFF0C\u5C06\u4E00\u5E76\u5220\u9664\u3002`),new g(this.app,l,async()=>{await this.store.removeFolder(t.id)}).open()})}),r.showAtMouseEvent(e)}showMoveMenu(e,t){let r=new d.Menu;t.folderId!==null&&(r.addItem(s=>{s.setTitle("\uFF08\u6839\u7EA7\u522B\uFF09"),s.setIcon("corner-left-up"),s.onClick(async()=>{await this.store.moveBookmark(t.id,null)})}),r.addSeparator());for(let s of this.store.folders)s.id!==t.folderId&&r.addItem(o=>{o.setTitle(s.name),o.setIcon("folder"),o.onClick(async()=>{await this.store.moveBookmark(t.id,s.id)})});r.showAtMouseEvent(e)}setupDragEvents(e,t){e.addEventListener("dragstart",r=>{r.dataTransfer&&(r.dataTransfer.setData("text/plain",JSON.stringify({id:t.id,type:t.type})),r.dataTransfer.effectAllowed="move"),e.addClass("sb-dragging")}),e.addEventListener("dragend",()=>{e.removeClass("sb-dragging"),this.listEl.querySelectorAll(".sb-drop-target").forEach(r=>r.removeClass("sb-drop-target"))}),e.addEventListener("dragover",r=>{r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect="move"),e.addClass("sb-drop-target")}),e.addEventListener("dragleave",()=>{e.removeClass("sb-drop-target")}),e.addEventListener("drop",async r=>{if(r.preventDefault(),e.removeClass("sb-drop-target"),!!r.dataTransfer)try{let s=JSON.parse(r.dataTransfer.getData("text/plain"));if(!s.id||!s.type)return;s.type==="bookmark"&&t.type==="folder"&&await this.store.moveBookmark(s.id,t.id)}catch(s){}})}};var y=class extends D.ItemView{constructor(t,r){super(t);this.browserPanel=null;this.bookmarkPanel=null;this.plugin=r}getViewType(){return h}getDisplayText(){return"Side Bookmark"}getIcon(){return"bookmark"}async onOpen(){let t=this.contentEl;t.empty(),t.addClass("sb-container"),this.browserPanel=new b(t),this.browserPanel.onAddBookmark=(s,o)=>{new m(this.app,this.plugin.store,s,o,null,async(i,l,p)=>{await this.plugin.store.addBookmark(i,l,p)}).open()};let r=this.plugin.store.defaultUrl;r&&this.browserPanel.navigate(r),this.bookmarkPanel=new E(this.app,t,this.plugin.store),this.bookmarkPanel.onNavigate=s=>{this.browserPanel&&this.browserPanel.navigate(s)},this.plugin.store.showBookmarkPanel||this.bookmarkPanel.toggleCollapse()}async onClose(){this.browserPanel&&(this.browserPanel.destroy(),this.browserPanel=null),this.bookmarkPanel&&(this.bookmarkPanel.destroy(),this.bookmarkPanel=null)}navigateTo(t){this.browserPanel&&this.browserPanel.navigate(t)}};var k=require("obsidian"),I=class extends k.PluginSettingTab{constructor(e,t){super(e,t),this.plugin=t}display(){let{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"Side Bookmark \u8BBE\u7F6E"}),new k.Setting(e).setName("\u9ED8\u8BA4\u9996\u9875").setDesc("\u6253\u5F00\u63D2\u4EF6\u65F6\u9ED8\u8BA4\u52A0\u8F7D\u7684\u7F51\u5740").addText(r=>r.setPlaceholder("https://www.google.com").setValue(this.plugin.store.defaultUrl).onChange(async s=>{this.plugin.store.defaultUrl=s,await this.plugin.store.save()})),new k.Setting(e).setName("\u9ED8\u8BA4\u663E\u793A\u4E66\u7B7E\u9762\u677F").setDesc("\u6253\u5F00\u63D2\u4EF6\u65F6\u662F\u5426\u9ED8\u8BA4\u5C55\u5F00\u4E66\u7B7E\u5217\u8868\u9762\u677F").addToggle(r=>r.setValue(this.plugin.store.showBookmarkPanel).onChange(async s=>{this.plugin.store.showBookmarkPanel=s,await this.plugin.store.save()})),new k.Setting(e).setName("\u62E6\u622A\u7B14\u8BB0\u94FE\u63A5").setDesc("\u5F00\u542F\u540E\uFF0C\u5355\u51FB\u7B14\u8BB0\u4E2D\u7684\u5916\u90E8\u94FE\u63A5\uFF08http/https\uFF09\u5C06\u81EA\u52A8\u5728 Side Bookmark \u5185\u7F6E\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\uFF0C\u800C\u975E\u4F7F\u7528\u7CFB\u7EDF\u6D4F\u89C8\u5668\u3002\u6309\u4F4F Cmd/Ctrl \u5355\u51FB\u53EF\u4E34\u65F6\u7ED5\u8FC7\uFF0C\u4ECD\u4F7F\u7528\u7CFB\u7EDF\u6D4F\u89C8\u5668\u6253\u5F00\u3002").addToggle(r=>r.setValue(this.plugin.store.interceptLinks).onChange(async s=>{this.plugin.store.interceptLinks=s,await this.plugin.store.save()})),e.createEl("h3",{text:"\u7EDF\u8BA1"});let t=e.createDiv({cls:"sb-settings-stats"});t.createEl("p",{text:`\u4E66\u7B7E\u6570\u91CF: ${this.plugin.store.bookmarks.length}`}),t.createEl("p",{text:`\u6587\u4EF6\u5939\u6570\u91CF: ${this.plugin.store.folders.length}`})}};var T=class extends S.Plugin{constructor(){super(...arguments);this.modifierKeyPressed=!1}async onload(){this.store=new f(this),await this.store.load(),this.registerView(h,t=>new y(t,this)),this.addRibbonIcon("bookmark","Side Bookmark",()=>{this.activateView()}),this.addCommand({id:"open-side-bookmark",name:"\u6253\u5F00\u4FA7\u8FB9\u680F\u4E66\u7B7E",callback:()=>{this.activateView()}}),this.addSettingTab(new I(this.app,this)),this.registerDomEvent(document,"click",this.handleLinkClick.bind(this),!0),this.registerDomEvent(document,"keydown",t=>{(t.key==="Meta"||t.key==="Control"||t.metaKey||t.ctrlKey)&&(this.modifierKeyPressed=!0)}),this.registerDomEvent(document,"keyup",t=>{(t.key==="Meta"||t.key==="Control"||!t.metaKey&&!t.ctrlKey)&&(this.modifierKeyPressed=!1)}),this.registerDomEvent(window,"blur",()=>{this.modifierKeyPressed=!1}),this.originalWindowOpen=window.open,window.open=(t,r,s)=>{if(this.store.interceptLinks&&t&&!this.modifierKeyPressed){let o=t.toString();if(/^https?:\/\//i.test(o))return this.openUrlInSideBookmark(o),null}return this.originalWindowOpen.call(window,t,r,s)}}onunload(){this.originalWindowOpen&&(window.open=this.originalWindowOpen),this.app.workspace.detachLeavesOfType(h)}handleLinkClick(t){if(!this.store.interceptLinks)return;let s=t.target.closest("a");if(!s)return;let o=s.getAttribute("href")||s.href;!o||!/^https?:\/\//i.test(o)||t.metaKey||t.ctrlKey||s.closest(".sb-browser-panel")||s.closest("webview")||(t.preventDefault(),t.stopPropagation(),this.openUrlInSideBookmark(o))}async openUrlInSideBookmark(t){let{workspace:r}=this.app,s=r.getLeavesOfType(h);if(s.length===0)await this.activateView(),s=r.getLeavesOfType(h);else{let i=s[0];i&&r.revealLeaf(i)}let o=s[0];if(o){let i=o.view;typeof i.navigateTo=="function"&&i.navigateTo(t)}}async activateView(){let{workspace:t}=this.app,r=t.getLeavesOfType(h);if(r.length>0)t.revealLeaf(r[0]);else{let s=t.getRightLeaf(!1);s&&(await s.setViewState({type:h,active:!0}),t.revealLeaf(s))}}};