diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..5ff9ca0 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,65 @@ +name: Build plugin + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - "*" # Push events to matching any tag format, i.e. 1.0, 20.15.10 + +env: + PLUGIN_NAME: logseq-files-manager + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v2 + with: + node-version: "16.x" # You might need to adjust this value to your own version + - name: Build + id: build + run: | + npm install + npm run build + mkdir ${{ env.PLUGIN_NAME }} + cp logo.png LICENSE package.json README.md ${{ env.PLUGIN_NAME }} + mv dist images ${{ env.PLUGIN_NAME }} + zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }} + ls + echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)" + + - name: Create Release + uses: ncipollo/release-action@v1 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VERSION: ${{ github.ref }} + with: + allowUpdates: true + draft: false + prerelease: false + + - name: Upload zip file + id: upload_zip + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./${{ env.PLUGIN_NAME }}.zip + asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip + asset_content_type: application/zip + + - name: Upload package.json + id: upload_metadata + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./package.json + asset_name: package.json + asset_content_type: application/json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 17bbc19..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Release -on: - push: - branches: - - main - pull_request: - branches: - - main -jobs: - release: - name: Release - runs-on: ubuntu-18.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - name: Install dependencies - run: yarn - - name: Build - run: yarn build - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx semantic-release \ No newline at end of file diff --git a/.gitignore b/.gitignore index d451ff1..88fbe5a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules .DS_Store -dist dist-ssr *.local diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 5f8a994..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 1.0.0 (2022-01-17) - - -### Features - -* ✨ add Calendar ([67fede3](https://github.com/haydenull/logseq-plugin-milestone/commit/67fede3dcb88aa406a49fd2ddc143b2d6808c2a4)) -* 🎸 create LICENSE ([ab7d2af](https://github.com/haydenull/logseq-plugin-milestone/commit/ab7d2af31230a5043c7b37404232f02edc290ab7)) -* 🎸 initial commit ([76b3f47](https://github.com/haydenull/logseq-plugin-milestone/commit/76b3f47f4cfff0f8e61b0eed32376be7ae8f6ac3)) diff --git a/README-zh_CN.md b/README-zh_CN.md index c204355..15adc6f 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -1,22 +1,25 @@ -# logseq-plugin-milestone -> 在日历中显示时间节点 +# logseq-plugin-milestone-pro +> 在日历中显示时间节点,fork from [logseq-plugin-milestone](https://github.com/haydenull/logseq-plugin-milestone) 简体中文 | [English](./README.md) +- ## 示例 -## 示例 ![demo](./demo.gif) +![demo1](/images/image.png) +![demo1](/images/image%20copy.png) +![demo1](/images/image%20copy%202.png) -## 使用方法 -1. 安装插件 -2. 填写插件配置, **必须填写 `dateFormatter`** -3. 输入 `/` 命令, 选择 `milestone` -4. 在 milestones 的子节点中输入时间节点 - -## 插件配置 +- ## 使用方法 + 1. 安装插件 + 2. 填写插件配置, **必须填写 `dateFormatter`** + 3. 输入 `/` 命令, 选择 `milestone` \ `milestones-page` \ `milestones-all` + 4. milestone:在 milestones 的子节点中输入时间节点 + 5. milestones-page:拉取页面在各个journal中的信息作为里程碑 + 6. milestones-all:综合4和5 +- ## 插件配置 - dateFormatter: 参考 [moment](https://momentjs.com/docs/#/displaying/) 填写时间格式化字符串, 必须匹配您笔记里的时间格式 - -## 配置示例 -```json -{ +- ## 配置示例 + ```json + { "dateFormatter": "YYYY-MM-DD ddd" -} \ No newline at end of file + } diff --git a/README.md b/README.md index 8be4229..8a22b71 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# logseq-plugin-milestone -> show milestone in calendar +# logseq-plugin-milestone-pro +> show milestone in calendar; fork from [logseq-plugin-milestone](https://github.com/haydenull/logseq-plugin-milestone) [![latest release version](https://img.shields.io/github/v/release/haydenull/logseq-plugin-milestone)](https://github.com/haydenull/logseq-plugin-milestone/releases) [![License](https://img.shields.io/github/license/haydenull/logseq-plugin-milestone?color=blue)](https://github.com/haydenull/logseq-plugin-markdown-table/blob/main/LICENSE) @@ -8,12 +8,19 @@ English | [简体中文](./README-zh_CN.md) ## Demo ![demo](./demo.gif) +![demo1](/images/image.png) +![demo1](/images/image%20copy.png) +![demo1](/images/image%20copy%202.png) + ## Usage 1. Install plugin 2. Fill in the plugin configuration, **must fill in `dateFormatter`** -3. Input `/` command, select `milestone` -4. In milestones' sub-nodes, input time node +3. Input `/` command, select `milestone` \ `milestones-page` \ `milestones-all` +4. milestone: Enter time nodes as sub-items within the "milestones" section. +5. milestones-page: Pull information from various journals on the page to serve as milestones. +6. milestones-all: Integrate steps 4 and 5 to create a comprehensive overview of milestones. + ## Plugin configuration - dateFormatter: Refer to [moment](https://momentjs.com/docs/#/displaying/) fill in time format string, must match your notes' time format @@ -22,4 +29,4 @@ English | [简体中文](./README-zh_CN.md) ```json { "dateFormatter": "YYYY-MM-DD ddd" -} \ No newline at end of file +} diff --git a/dist/assets/favicon.17e50649.svg b/dist/assets/favicon.17e50649.svg new file mode 100644 index 0000000..de4aedd --- /dev/null +++ b/dist/assets/favicon.17e50649.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/dist/assets/index.6ef7eb25.js b/dist/assets/index.6ef7eb25.js new file mode 100644 index 0000000..d1ae243 --- /dev/null +++ b/dist/assets/index.6ef7eb25.js @@ -0,0 +1,8 @@ +import{h as b,r as f,j as k,F as E,a as s,B as p,S as W,A as H,b as D,D as Y,c as _,d as V,U as K,e as O,T as $,C as Q,f as G,g as J,R as X,i as Z}from"./vendor.800c6984.js";const ee=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const a of r.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerpolicy&&(r.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?r.credentials="include":o.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}};ee();const B=e=>{const t=e?.match(/\[\[(.+?)\]\]/g)?.slice(-1)[0];return b(t?.replaceAll(/^(\[\[)|(\]\])$/g,""),te()?.dateFormatter)},v=(e,t)=>{t&&(e=e.replace(`#${t}`,"")),t&&(e=e.replace(`[[${t}]]`,"")),e=e.split(` +`)[0];const n=e?.match(/\[\[(.+?)\]\]/g)?.slice(-1)[0];return I(n?e.replace(n,"").trim():e)},I=e=>{const t=/id::\s+[\w-]+/ig;e=e.replace(t,"");const n=/(?"+e.replace(n,"$1")+"

"},A=e=>{const t=e?.children?.find(n=>n?.content==="milestones");return(t?t?.children:e?.children)?.map(n=>{const i=n?.content;return{content:v(i),date:B(i)}})},j=async(e,t)=>logseq.Editor.getBlock(e,t),te=()=>logseq.settings;async function L(e){const t=new Map,n=[],i=await logseq.Editor.getPage(e);let o;try{o=(await logseq.DB.datascriptQuery(`[:find (pull ?j [:block/journal-day]) (pull ?b [:block/content]) + :in $ ?uuid + :where + [?t :block/uuid ?uuid] + [?b :block/refs ?t] + [?b :block/page ?j] + ]`,`#uuid "${i.uuid}"`)).map(([r,a])=>({...r,...a}))}catch(r){console.error(r);return}for(const r of o)if(r["journal-day"]){const a=new Date(...oe(r["journal-day"])),g=a.getTime();t.has(g)||(t.set(g,{uuid:r.uuid}),n.push({content:v(r.content,e),date:b(a)}))}else n.push({content:v(r.content,e),date:B(r.content)});return n}function oe(e){const t=e/1e4>>0,n=((e-t*1e4)/100>>0)-1,i=e-t*1e4-(n+1)*100;return[t,n,i]}const se=({uuid:e,pageName:t,forceUpdate:n})=>{const[i,o]=f.exports.useState(),[r,a]=f.exports.useState([]),[g,T]=f.exports.useState(!0),[C,N]=f.exports.useState(!1),[m,R]=f.exports.useState(!0),[w,z]=f.exports.useState(!1);f.exports.useEffect(()=>{(async()=>{if(e){const c=await j(e,{includeChildren:!0}),u=A(c)?.sort((h,y)=>h.date.isBefore(y.date)?-1:1);o(u)}if(t){const c=(await L(t))?.sort((l,u)=>l.date.isBefore(u.date)?-1:1);o(c)}if(e&&t){const c=await j(e,{includeChildren:!0}),l=A(c),u=await L(t),h=[...l,...u].sort((y,F)=>y.date.isBefore(F.date)?-1:1);o(h)}})()},[t,e,n]);const U=()=>{T(!g)},q=d=>{N(d)},x=()=>{R(!m)},S=()=>{z(!w)},P=d=>i?.filter(l=>l.date.isSame(d,"day"))?.map((l,u)=>{const h=l.date.isBefore(b(),"day");return s(J,{title:l.content,arrowPointAtCenter:!0,children:s("div",{className:`whitespace-nowrap bg-blue-200 rounded-sm mb-1 ${h?"opacity-50":""}`,children:s("div",{"data-ref":l.content,dangerouslySetInnerHTML:{__html:l.content}})},l.date.valueOf()+u)})});return k(E,{children:[s("div",{className:"w-screen h-screen absolute bg-transparent",onClick:()=>logseq.hideMainUI()}),k("div",{className:`${C?"w-2/3":"w-1/3"} h-5/6 bg-white absolute top-12 right-4 shadow-lg p-1 overflow-auto rounded transition-all`,children:[s("div",{className:"absolute left-4 top-4",children:C?s(p,{shape:"circle",icon:s(W,{}),onClick:()=>q(!1)}):s(p,{shape:"circle",icon:s(H,{}),onClick:()=>q(!0)})}),k("div",{className:"p-4",children:[s("div",{className:"absolute left-16 top-4",children:s(p,{shape:"circle",icon:g?s(D,{}):s(D,{}),onClick:U})}),s("div",{className:"absolute left-28 top-4",children:s(p,{shape:"circle",icon:m?s(Y,{}):s(_,{}),onClick:x})}),s("div",{className:"absolute left-40 top-4",children:s(p,{shape:"circle",icon:w?s(V,{}):s(K,{}),onClick:S})}),s("div",{className:"absolute left-52 top-4",children:s(p,{shape:"circle",icon:r.length>0?s(O,{rotate:180,onClick:()=>a([])}):s(O,{}),onClick:S})}),s("br",{}),s("br",{}),g?s(E,{children:s($,{reverse:w,mode:m?"left":"alternate",children:i?.filter((d,c)=>!r?.includes(c)).map((d,c)=>s($.Item,{dot:s(Q,{style:{fontSize:"16px"},onClick:()=>{a(l=>[...l,c])}}),label:d.date.format("YYYY-MM-DD"),children:s("div",{"data-ref":d.content,dangerouslySetInnerHTML:{__html:d.content}})}))})}):s(G,{dateCellRender:P})]})]})]})};let M=new Map;console.log("[faiz:] === logseq-plugin-milestone loaded"),logseq.ready(()=>{logseq.Editor.registerSlashCommand("milestone",async()=>{const e=await logseq.Editor.getCurrentBlock();!e?.uuid||logseq.Editor.insertAtEditingCursor(`{{renderer milestone-${e.uuid}}}`)}),logseq.Editor.registerSlashCommand("milestones-page",async()=>{!(await logseq.Editor.getCurrentBlock())?.uuid||logseq.Editor.insertAtEditingCursor("{{renderer :milestones, *}}")}),logseq.Editor.registerSlashCommand("milestones-all",async()=>{const e=await logseq.Editor.getCurrentBlock();!e?.uuid||logseq.Editor.insertAtEditingCursor(`{{renderer milestone-${e.uuid}, *}}`)}),logseq.setMainUIInlineStyle({position:"fixed",zIndex:11}),logseq.provideModel({show(e){const t=e?.dataset?.faizUuid,n=e?.dataset?.faizPage;ne(M.get(t)||0,t,n),logseq.showMainUI()}}),logseq.App.onMacroRendererSlotted(async({slot:e,payload:{arguments:t,uuid:n}})=>{const i=M.get(n);if(M.set(n,i?i+1:1),/^milestone/.test(t?.[0])){let o=t[1]?.trim();if(o==="*"){o=(await logseq.Editor.getCurrentPage())?.originalName,logseq.provideUI({key:"milestone-v3",slot:e,reset:!0,template:`show calender view`});return}logseq.provideUI({key:"milestone",slot:e,reset:!0,template:`show calender view`})}if(t?.[0].trim()===":milestones"){let o=t[1]?.trim();o==="*"&&(o=(await logseq.Editor.getCurrentPage())?.originalName),o.startsWith("[[")&&(o=o.substring(2,o.length-2)),o.startsWith("#")&&(o=o.substring(1)),logseq.provideUI({key:"milestone-v2",slot:e,reset:!0,template:`show calender view`})}})});function ne(e,t,n){X.render(s(Z.StrictMode,{children:s(se,{uuid:t,pageName:n,forceUpdate:e})}),document.getElementById("root"))} diff --git a/dist/assets/index.76d0466f.css b/dist/assets/index.76d0466f.css new file mode 100644 index 0000000..eec4dbc --- /dev/null +++ b/dist/assets/index.76d0466f.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );--tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.top-12{top:3rem}.right-4{right:1rem}.left-4{left:1rem}.top-4{top:1rem}.left-16{left:4rem}.left-28{left:7rem}.left-40{left:10rem}.left-52{left:13rem}.mt-4{margin-top:1rem}.mt-2{margin-top:.5rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.block{display:block}.flex{display:flex}.hidden{display:none}.h-screen{height:100vh}.h-5\/6{height:83.333333%}.w-screen{width:100vw}.w-2\/3{width:66.666667%}.w-1\/3{width:33.333333%}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-auto{overflow:auto}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.p-2{padding:.5rem}.p-1{padding:.25rem}.p-4{padding:1rem}.font-bold{font-weight:700}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-filter)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html,body{background-color:transparent}#root{height:100vh;width:100vw}.timeline-view{margin-top:1rem;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.5rem;--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.milestone-item{margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between}.milestone-item .date{font-size:1.125rem;line-height:1.75rem;font-weight:700}.milestone-item .content{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.toggle-timeline-button{margin-top:.5rem;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity));padding:.5rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.milestone-item:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.past-milestone{opacity:.5} diff --git a/dist/assets/vendor.800c6984.js b/dist/assets/vendor.800c6984.js new file mode 100644 index 0000000..31ecfff --- /dev/null +++ b/dist/assets/vendor.800c6984.js @@ -0,0 +1,212 @@ +var fs=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function ds(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function kn(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t}var eM={exports:{}};/*! For license information please see lsplugin.user.js.LICENSE.txt */(function(e,t){(function(r,n){e.exports=n()})(self,function(){return(()=>{var r={227:(i,l,u)=>{var s=u(155);l.formatArgs=function(h){if(h[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+h[0]+(this.useColors?"%c ":" ")+"+"+i.exports.humanize(this.diff),!this.useColors)return;const f="color: "+this.color;h.splice(1,0,f,"color: inherit");let v=0,g=0;h[0].replace(/%[a-zA-Z%]/g,w=>{w!=="%%"&&(v++,w==="%c"&&(g=v))}),h.splice(g,0,f)},l.save=function(h){try{h?l.storage.setItem("debug",h):l.storage.removeItem("debug")}catch{}},l.load=function(){let h;try{h=l.storage.getItem("debug")}catch{}return!h&&s!==void 0&&"env"in s&&(h=s.env.DEBUG),h},l.useColors=function(){return!(typeof window=="undefined"||!window.process||window.process.type!=="renderer"&&!window.process.__nwjs)||(typeof navigator=="undefined"||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},l.storage=function(){try{return localStorage}catch{}}(),l.destroy=(()=>{let h=!1;return()=>{h||(h=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),l.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"],l.log=console.debug||console.log||(()=>{}),i.exports=u(447)(l);const{formatters:c}=i.exports;c.j=function(h){try{return JSON.stringify(h)}catch(f){return"[UnexpectedJSONParseError]: "+f.message}}},447:(i,l,u)=>{i.exports=function(s){function c(v){let g,w,p,d=null;function m(...x){if(!m.enabled)return;const S=m,b=Number(new Date),O=b-(g||b);S.diff=O,S.prev=g,S.curr=b,g=b,x[0]=c.coerce(x[0]),typeof x[0]!="string"&&x.unshift("%O");let _=0;x[0]=x[0].replace(/%([a-zA-Z%])/g,(C,E)=>{if(C==="%%")return"%";_++;const k=c.formatters[E];if(typeof k=="function"){const A=x[_];C=k.call(S,A),x.splice(_,1),_--}return C}),c.formatArgs.call(S,x),(S.log||c.log).apply(S,x)}return m.namespace=v,m.useColors=c.useColors(),m.color=c.selectColor(v),m.extend=h,m.destroy=c.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(w!==c.namespaces&&(w=c.namespaces,p=c.enabled(v)),p),set:x=>{d=x}}),typeof c.init=="function"&&c.init(m),m}function h(v,g){const w=c(this.namespace+(g===void 0?":":g)+v);return w.log=this.log,w}function f(v){return v.toString().substring(2,v.toString().length-2).replace(/\.\*\?$/,"*")}return c.debug=c,c.default=c,c.coerce=function(v){return v instanceof Error?v.stack||v.message:v},c.disable=function(){const v=[...c.names.map(f),...c.skips.map(f).map(g=>"-"+g)].join(",");return c.enable(""),v},c.enable=function(v){let g;c.save(v),c.namespaces=v,c.names=[],c.skips=[];const w=(typeof v=="string"?v:"").split(/[\s,]+/),p=w.length;for(g=0;g{c[v]=s[v]}),c.names=[],c.skips=[],c.formatters={},c.selectColor=function(v){let g=0;for(let w=0;w1?te-1:0),ve=1;ve/gm),se=v(/^data-[\-\w.\u00B7-\uFFFF]/),Y=v(/^aria-[\-\w]+$/),T=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),H=v(/^(?:\w+script|data):/i),Q=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),re=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(G){return typeof G}:function(G){return G&&typeof Symbol=="function"&&G.constructor===Symbol&&G!==Symbol.prototype?"symbol":typeof G};function K(G){if(Array.isArray(G)){for(var J=0,te=Array(G.length);J0&&arguments[0]!==void 0?arguments[0]:ae(),te=function(z){return G(z)};if(te.version="2.3.1",te.removed=[],!J||!J.document||J.document.nodeType!==9)return te.isSupported=!1,te;var le=J.document,ve=J.document,We=J.DocumentFragment,Ie=J.HTMLTemplateElement,$e=J.Node,Ae=J.Element,Fe=J.NodeFilter,tt=J.NamedNodeMap,ot=tt===void 0?J.NamedNodeMap||J.MozNamedAttrMap:tt,Ce=J.Text,fe=J.Comment,Re=J.DOMParser,st=J.trustedTypes,Xe=Ae.prototype,Ee=I(Xe,"cloneNode"),Le=I(Xe,"nextSibling"),it=I(Xe,"childNodes"),Be=I(Xe,"parentNode");if(typeof Ie=="function"){var Ze=ve.createElement("template");Ze.content&&Ze.content.ownerDocument&&(ve=Ze.content.ownerDocument)}var Ue=ie(st,le),He=Ue&&Yr?Ue.createHTML(""):"",Qe=ve,jt=Qe.implementation,xt=Qe.createNodeIterator,ce=Qe.createDocumentFragment,me=Qe.getElementsByTagName,we=le.importNode,ye={};try{ye=V(ve).documentMode?ve.documentMode:{}}catch{}var oe={};te.isSupported=typeof Be=="function"&&jt&&jt.createHTMLDocument!==void 0&&ye!==9;var Oe=ee,_t=ne,Bt=se,Ot=Y,kr=H,bn=Q,Ur=T,Ct=null,zr=j({},[].concat(K(U),K(q),K(M),K(R),K(D))),ct=null,ia=j({},[].concat(K($),K(F),K(B),K(X))),zn=null,Ft=null,gt=!0,je=!0,cr=!1,Ir=!1,On=!1,co=!1,Na=!1,En=!1,$r=!1,la=!0,Yr=!1,Go=!0,Da=!0,ua=!1,nn={},Tr=null,qe=j({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ze=null,Lt=j({},["audio","video","img","source","image","track"]),At=null,Et=j({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),qt="http://www.w3.org/1998/Math/MathML",fr="http://www.w3.org/2000/svg",rr="http://www.w3.org/1999/xhtml",nr=rr,an=!1,ar=null,Xo=ve.createElement("form"),fo=function(z){ar&&ar===z||(z&&(z===void 0?"undefined":re(z))==="object"||(z={}),z=V(z),Ct="ALLOWED_TAGS"in z?j({},z.ALLOWED_TAGS):zr,ct="ALLOWED_ATTR"in z?j({},z.ALLOWED_ATTR):ia,At="ADD_URI_SAFE_ATTR"in z?j(V(Et),z.ADD_URI_SAFE_ATTR):Et,ze="ADD_DATA_URI_TAGS"in z?j(V(Lt),z.ADD_DATA_URI_TAGS):Lt,Tr="FORBID_CONTENTS"in z?j({},z.FORBID_CONTENTS):qe,zn="FORBID_TAGS"in z?j({},z.FORBID_TAGS):{},Ft="FORBID_ATTR"in z?j({},z.FORBID_ATTR):{},nn="USE_PROFILES"in z&&z.USE_PROFILES,gt=z.ALLOW_ARIA_ATTR!==!1,je=z.ALLOW_DATA_ATTR!==!1,cr=z.ALLOW_UNKNOWN_PROTOCOLS||!1,Ir=z.SAFE_FOR_TEMPLATES||!1,On=z.WHOLE_DOCUMENT||!1,En=z.RETURN_DOM||!1,$r=z.RETURN_DOM_FRAGMENT||!1,la=z.RETURN_DOM_IMPORT!==!1,Yr=z.RETURN_TRUSTED_TYPE||!1,Na=z.FORCE_BODY||!1,Go=z.SANITIZE_DOM!==!1,Da=z.KEEP_CONTENT!==!1,ua=z.IN_PLACE||!1,Ur=z.ALLOWED_URI_REGEXP||Ur,nr=z.NAMESPACE||rr,Ir&&(je=!1),$r&&(En=!0),nn&&(Ct=j({},[].concat(K(D))),ct=[],nn.html===!0&&(j(Ct,U),j(ct,$)),nn.svg===!0&&(j(Ct,q),j(ct,F),j(ct,X)),nn.svgFilters===!0&&(j(Ct,M),j(ct,F),j(ct,X)),nn.mathMl===!0&&(j(Ct,R),j(ct,B),j(ct,X))),z.ADD_TAGS&&(Ct===zr&&(Ct=V(Ct)),j(Ct,z.ADD_TAGS)),z.ADD_ATTR&&(ct===ia&&(ct=V(ct)),j(ct,z.ADD_ATTR)),z.ADD_URI_SAFE_ATTR&&j(At,z.ADD_URI_SAFE_ATTR),z.FORBID_CONTENTS&&(Tr===qe&&(Tr=V(Tr)),j(Tr,z.FORBID_CONTENTS)),Da&&(Ct["#text"]=!0),On&&j(Ct,["html","head","body"]),Ct.table&&(j(Ct,["tbody"]),delete zn.tbody),f&&f(z),ar=z)},po=j({},["mi","mo","mn","ms","mtext"]),ul=j({},["foreignobject","desc","title","annotation-xml"]),vo=j({},q);j(vo,M),j(vo,N);var sl=j({},R);j(sl,P);var us=function(z){var Pe=Be(z);Pe&&Pe.tagName||(Pe={namespaceURI:rr,tagName:"template"});var Se=O(z.tagName),ht=O(Pe.tagName);if(z.namespaceURI===fr)return Pe.namespaceURI===rr?Se==="svg":Pe.namespaceURI===qt?Se==="svg"&&(ht==="annotation-xml"||po[ht]):Boolean(vo[Se]);if(z.namespaceURI===qt)return Pe.namespaceURI===rr?Se==="math":Pe.namespaceURI===fr?Se==="math"&&ul[ht]:Boolean(sl[Se]);if(z.namespaceURI===rr){if(Pe.namespaceURI===fr&&!ul[ht]||Pe.namespaceURI===qt&&!po[ht])return!1;var wt=j({},["title","style","font","a","script"]);return!sl[Se]&&(wt[Se]||!vo[Se])}return!1},Pn=function(z){b(te.removed,{element:z});try{z.parentNode.removeChild(z)}catch{try{z.outerHTML=He}catch{z.remove()}}},cl=function(z,Pe){try{b(te.removed,{attribute:Pe.getAttributeNode(z),from:Pe})}catch{b(te.removed,{attribute:null,from:Pe})}if(Pe.removeAttribute(z),z==="is"&&!ct[z])if(En||$r)try{Pn(Pe)}catch{}else try{Pe.setAttribute(z,"")}catch{}},ss=function(z){var Pe=void 0,Se=void 0;if(Na)z=""+z;else{var ht=_(z,/^[\r\n\t ]+/);Se=ht&&ht[0]}var wt=Ue?Ue.createHTML(z):z;if(nr===rr)try{Pe=new Re().parseFromString(wt,"text/html")}catch{}if(!Pe||!Pe.documentElement){Pe=jt.createDocument(nr,"template",null);try{Pe.documentElement.innerHTML=an?"":wt}catch{}}var dr=Pe.body||Pe.documentElement;return z&&Se&&dr.insertBefore(ve.createTextNode(Se),dr.childNodes[0]||null),nr===rr?me.call(Pe,On?"html":"body")[0]:On?Pe.documentElement:dr},fl=function(z){return xt.call(z.ownerDocument||z,z,Fe.SHOW_ELEMENT|Fe.SHOW_COMMENT|Fe.SHOW_TEXT,null,!1)},Ia=function(z){return!(z instanceof Ce||z instanceof fe||typeof z.nodeName=="string"&&typeof z.textContent=="string"&&typeof z.removeChild=="function"&&z.attributes instanceof ot&&typeof z.removeAttribute=="function"&&typeof z.setAttribute=="function"&&typeof z.namespaceURI=="string"&&typeof z.insertBefore=="function")},$a=function(z){return($e===void 0?"undefined":re($e))==="object"?z instanceof $e:z&&(z===void 0?"undefined":re(z))==="object"&&typeof z.nodeType=="number"&&typeof z.nodeName=="string"},Mn=function(z,Pe,Se){oe[z]&&x(oe[z],function(ht){ht.call(te,Pe,Se,ar)})},Qo=function(z){var Pe=void 0;if(Mn("beforeSanitizeElements",z,null),Ia(z)||_(z.nodeName,/[\u0080-\uFFFF]/))return Pn(z),!0;var Se=O(z.nodeName);if(Mn("uponSanitizeElement",z,{tagName:Se,allowedTags:Ct}),!$a(z.firstElementChild)&&(!$a(z.content)||!$a(z.content.firstElementChild))&&A(/<[/\w]/g,z.innerHTML)&&A(/<[/\w]/g,z.textContent)||Se==="select"&&A(/