@mlikiowa/nanaeo 1.0.1702968347635 → 1.0.1702969117186

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/2022/08/04/NewBlog/index.html +1 -3473
  2. package/2022/08/13/GaussWave/index.html +1 -3407
  3. package/about/index.html +1 -3236
  4. package/archives/2022/08/index.html +1 -3411
  5. package/archives/2022/index.html +1 -3411
  6. package/archives/index.html +1 -3308
  7. package/categories/DevLog/index.html +1 -3351
  8. package/categories/SiteLog/index.html +1 -3351
  9. package/categories/index.html +1 -3174
  10. package/content.json +1 -1
  11. package/css/Readme.html +1 -9
  12. package/css/first.css +2 -1504
  13. package/css/style.css +2 -7106
  14. package/friends/index.html +1 -3661
  15. package/index.html +1 -3421
  16. package/js/app.js +2 -1223
  17. package/js/plugins/aplayer.js +2 -186
  18. package/js/plugins/parallax.js +2 -191
  19. package/js/plugins/rightMenu.js +2 -577
  20. package/js/plugins/rightMenus.js +2 -618
  21. package/js/plugins/tags/contributors.js +2 -92
  22. package/js/plugins/tags/friends.js +2 -93
  23. package/js/plugins/tags/sites.js +2 -96
  24. package/js/search/hexo.js +2 -192
  25. package/maps/css/first.css.map +1 -0
  26. package/maps/css/style.css.map +1 -0
  27. package/maps/js/app.js.map +1 -0
  28. package/maps/js/plugins/aplayer.js.map +1 -0
  29. package/maps/js/plugins/parallax.js.map +1 -0
  30. package/maps/js/plugins/rightMenu.js.map +1 -0
  31. package/maps/js/plugins/rightMenus.js.map +1 -0
  32. package/maps/js/plugins/tags/contributors.js.map +1 -0
  33. package/maps/js/plugins/tags/friends.js.map +1 -0
  34. package/maps/js/plugins/tags/sites.js.map +1 -0
  35. package/maps/js/search/hexo.js.map +1 -0
  36. package/maps/volantis-sw.js.map +1 -0
  37. package/package.json +1 -1
  38. package/tags/DevLog/index.html +1 -3351
  39. package/tags/Gauss/index.html +1 -3351
  40. package/tags/Hexo/index.html +1 -3351
  41. package/tags/HexoThemes/index.html +1 -3351
  42. package/tags/SiteLog/index.html +1 -3351
  43. package/tags/index.html +1 -3159
  44. package/volantis-sw.js +2 -797
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/app.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","Array","isArray","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","toString","from","test","len","arr2","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","document","addEventListener","volantis","requestAnimationFrame","VolantisApp","init","subscribe","VolantisFancyBox","highlightKeyWords","startFromURL","locationHash","pjax","pjaxReload","sessionStorage","setItem","title","send","dom","switcher","removeClass","header","wrapper","EventListener","remove","window","location","hash","locationID","decodeURI","split","replace","target","getElementById","setTimeout","startsWith","scroll","to","addTop","offsetHeight","behavior","observer","freeze","scrollCorrection","clientHeight","onresize","documentElement","clientWidth","isMobile","isMobileOld","setGlobalHeaderMenuEvent","setHeader","setHeaderSearch","scrollEventCallBack","event","_volantis$dom$$","$","on","scrolltoElement","bodyAnchor","sidebar","querySelector","querySelectorAll","classList","add","GLOBAL_CONFIG","for_page","includes","for_post","lastupd","webinfo","enable","friendlyShow","innerHTML","utilTimeAgo","lastupdate","BirthDay","Date","runtime","data","timeold","getTime","daysold","Math","floor","concat","unit","body","oncopy","messageCopyright","restData","setIsMobile","elem","correction","top","offsetTop","showHeaderPoint","scrollTop","getScrollTop","topBtn","addClass","del","pdata","ispage","tocTarget","toc","mPhoneList","hide","setScrollAnchor","click","preventDefault","stopPropagation","stopImmediatePropagation","find","html","comment","commentTarget","style","display","toggleClass","setHeaderMenuSelection","headerMenu","element","li","div","idname","pathname","page","match","index","id","_e","menuType","currentTarget","children","some","val","contains","parentElement","childNodes","e2","e1","array","show","menuPhone","getComputedStyle","origin","baseURI","setPageHeaderMenuEvent","search","setTabs","tabs","$tab","className","footnotes","ref","targetID","utilCopyCode","Selector","node","insertAdjacentHTML","_BtnCopy","previousSibling","onclick","_icon","_span","focus","range","Range","selectNodeContents","getSelection","removeAllRanges","addRange","str","utilWriteClipText","innerText","message","icon","navigator","clipboard","writeText","input","createElement","setAttribute","appendChild","select","result","execCommand","removeChild","dateTimeStamp","minute","hour","day","diffValue","minC","hourC","dayC","weekC","monthC","parseInt","datetime","setTime","Nyear","getFullYear","Nmonth","getMonth","Ndate","getDate","getHours","getMinutes","getSeconds","option","tozashMessage","time","position","transitionIn","transitionOut","messageColor","titleColor","backgroundColor","zindex","displayMode","iziToast","layout","closeOnEscape","plugins","css","js","question","success","cancel","tozashQuestion","close","overlay","quection","instance","toast","closedBy","hideMessage","messageCopyrightShow","copyright","removeAttribute","fancybox","checkMain","groupBind","Fancybox","loadFancyBox","selectors","$item","hasAttribute","$link","src","alt","append","cloneNode","replaceWith","bind","groupAll","Hash","hideScrollbar","Thumbs","autoStart","caption","carousel","slide","$trigger","groupName","group","Set","ele","getAttribute","_step","_iterator","unbind","elementHandling","console","params","URL","href","searchParams","get","keywords","post","start","scrollToFirstHighlightKeywordMark","cleanContentVisibility","scrollToNextHighlightKeywordMark","markNextId","markNum","log","walk","createTreeWalker","NodeFilter","SHOW_TEXT","allNodes","nextNode","currentNode","parentNode","matches","indexOfNode","getIndexByWord","nodeValue","mergeIntoSlice","highlightText","highlightStyle","words","text","caseSensitive","included","word","wordLen","startPosition","toLowerCase","indexOf","sort","left","right","end","item","_item","hits","count","wordEnd","shift","size","_step2","_iterator2","_step2$value","createTextNode","substring","substr","insertBefore","background","scrollToPrevHighlightKeywordMark","cleanHighlightStyle","DOMController","visible","param","removeList","list","attrName","attrValue","setAttributeList","setStyle","styleName","styleValue","setStyleList","fadeIn","visibility","opacity","transition","fadeOut","fadeToggle","fadeToggleList","hasClass","RegExp","toggleClassList","VolantisRequest","timeoutFetch","url","ms","requestInit","_requestInit$signal","controller","AbortController","signal","abort","promise","fetch","timer","clearTimeout","Fetch","_Fetch","_callee","timeout","resp","json","_args","_context","ok","status","_x","_x2","POST","_POST","_callee2","formData","_context2","FormData","_x3","_x4","Get","_Get","_callee3","_context3","URLSearchParams","_x5","_x6"],"mappings":"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","file":"../../js/app.js","sourcesContent":["document.addEventListener(\"DOMContentLoaded\", function () {\n volantis.requestAnimationFrame(() => {\n VolantisApp.init();\n VolantisApp.subscribe();\n VolantisFancyBox.init();\n highlightKeyWords.startFromURL();\n locationHash();\n\n volantis.pjax.push(() => {\n VolantisApp.pjaxReload();\n VolantisFancyBox.init();\n sessionStorage.setItem(\"domTitle\", document.title);\n highlightKeyWords.startFromURL();\n }, 'app.js');\n volantis.pjax.send(() => {\n volantis.dom.switcher.removeClass('active'); // 关闭移动端激活的搜索框\n volantis.dom.header.removeClass('z_search-open'); // 关闭移动端激活的搜索框\n volantis.dom.wrapper.removeClass('sub'); // 跳转页面时关闭二级导航\n volantis.EventListener.remove() // 移除事件监听器 see: layout/_partial/scripts/global.ejs\n }, 'app.js');\n });\n});\n\n/* 锚点定位 */\nconst locationHash = () => {\n if (window.location.hash) {\n let locationID = decodeURI(window.location.hash.split('#')[1]).replace(/\\ /g, '-');\n let target = document.getElementById(locationID);\n if (target) {\n setTimeout(() => {\n if (window.location.hash.startsWith('#fn')) { // hexo-reference https://github.com/volantis-x/hexo-theme-volantis/issues/647\n volantis.scroll.to(target, { addTop: - volantis.dom.header.offsetHeight - 5, behavior: 'instant', observer: true })\n } else {\n // 锚点中上半部有大片空白 高度大概是 volantis.dom.header.offsetHeight\n volantis.scroll.to(target, { addTop: 5, behavior: 'instant', observer: true })\n }\n }, 1000)\n }\n }\n}\nObject.freeze(locationHash);\n\n/* Main */\nconst VolantisApp = (() => {\n const fn = {},\n COPYHTML = '<button class=\"btn-copy\" data-clipboard-snippet=\"\"><i class=\"fa-solid fa-copy\"></i><span>COPY</span></button>';\n let scrollCorrection = 80;\n\n fn.init = () => {\n if (volantis.dom.header) {\n scrollCorrection = volantis.dom.header.clientHeight + 16;\n }\n\n window.onresize = () => {\n if (document.documentElement.clientWidth < 500) {\n volantis.isMobile = 1;\n } else {\n volantis.isMobile = 0;\n }\n if (volantis.isMobile != volantis.isMobileOld) {\n fn.setGlobalHeaderMenuEvent();\n fn.setHeader();\n fn.setHeaderSearch();\n }\n }\n volantis.scroll.push(fn.scrollEventCallBack, \"scrollEventCallBack\")\n }\n\n fn.event = () => {\n volantis.dom.$(document.getElementById(\"scroll-down\"))?.on('click', function () {\n fn.scrolltoElement(volantis.dom.bodyAnchor);\n });\n\n // 如果 sidebar 为空,隐藏 sidebar。\n const sidebar = document.querySelector(\"#l_side\")\n if (sidebar) {\n const sectionList = sidebar.querySelectorAll(\"section\")\n if (!sectionList.length) {\n document.querySelector(\"#l_main\").classList.add(\"no_sidebar\")\n }\n }\n\n // 站点信息 最后活动日期\n if (volantis.GLOBAL_CONFIG.sidebar.for_page.includes('webinfo') || volantis.GLOBAL_CONFIG.sidebar.for_post.includes('webinfo')) {\n const lastupd = volantis.GLOBAL_CONFIG.sidebar.webinfo.lastupd;\n if (!!document.getElementById('last-update-show') && lastupd.enable && lastupd.friendlyShow) {\n document.getElementById('last-update-show').innerHTML = fn.utilTimeAgo(volantis.GLOBAL_CONFIG.lastupdate);\n }\n }\n\n // 站点信息 运行时间\n if (!!document.getElementById('webinfo-runtime-count')) {\n let BirthDay = new Date(volantis.GLOBAL_CONFIG.sidebar.webinfo.runtime.data);\n let timeold = (new Date().getTime() - BirthDay.getTime());\n let daysold = Math.floor(timeold / (24 * 60 * 60 * 1000));\n document.getElementById('webinfo-runtime-count').innerHTML = `${daysold} ${volantis.GLOBAL_CONFIG.sidebar.webinfo.runtime.unit}`;\n }\n\n // 消息提示 复制时弹出\n document.body.oncopy = function () {\n fn.messageCopyright()\n };\n }\n\n fn.restData = () => {\n scrollCorrection = volantis.dom.header ? volantis.dom.header.clientHeight + 16 : 80;\n }\n\n fn.setIsMobile = () => {\n if (document.documentElement.clientWidth < 500) {\n volantis.isMobile = 1;\n volantis.isMobileOld = 1;\n } else {\n volantis.isMobile = 0;\n volantis.isMobileOld = 0;\n }\n }\n\n // 校正页面定位(被导航栏挡住的区域)\n fn.scrolltoElement = (elem, correction = scrollCorrection) => {\n volantis.scroll.to(elem, {\n top: elem.offsetTop - correction\n })\n }\n\n // 滚动事件回调们\n fn.scrollEventCallBack = () => {\n // 【移动端 PC】//////////////////////////////////////////////////////////////////////\n\n // 显示/隐藏 Header导航 topBtn 【移动端 PC】\n const showHeaderPoint = volantis.dom.bodyAnchor.offsetTop - scrollCorrection;\n const scrollTop = volantis.scroll.getScrollTop(); // 滚动条距离顶部的距离\n\n // topBtn\n if (volantis.dom.topBtn) {\n if (scrollTop > volantis.dom.bodyAnchor.offsetTop) {\n volantis.dom.topBtn.addClass('show');\n // 向上滚动高亮 topBtn\n if (volantis.scroll.del > 0) {\n volantis.dom.topBtn.removeClass('hl');\n } else {\n volantis.dom.topBtn.addClass('hl');\n }\n } else {\n volantis.dom.topBtn.removeClass('show').removeClass('hl');\n }\n }\n\n // Header导航\n if (volantis.dom.header) {\n if (scrollTop - showHeaderPoint > -1) {\n volantis.dom.header.addClass('show');\n } else {\n volantis.dom.header.removeClass('show');\n }\n }\n\n // 决定一二级导航栏的切换 【向上滚动切换为一级导航栏;向下滚动切换为二级导航栏】 【移动端 PC】\n if (pdata.ispage && volantis.dom.wrapper) {\n if (volantis.scroll.del > 0 && scrollTop > 100) { // 向下滚动\n volantis.dom.wrapper.addClass('sub'); // <---- 二级导航显示\n } else if (volantis.scroll.del < 0) { // 向上滚动\n volantis.dom.wrapper.removeClass('sub'); // <---- 取消二级导航显示 一级导航显示\n }\n }\n\n // 【移动端】//////////////////////////////////////////////////////////////////////\n if (volantis.isMobile) {\n // 【移动端】 页面滚动 隐藏 移动端toc目录按钮\n if (pdata.ispage && volantis.dom.tocTarget && volantis.dom.toc) {\n volantis.dom.tocTarget.removeClass('active');\n volantis.dom.toc.removeClass('active');\n }\n // 【移动端】 滚动时隐藏子菜单\n if (volantis.dom.mPhoneList) {\n volantis.dom.mPhoneList.forEach(function (e) {\n volantis.dom.$(e).hide();\n })\n }\n }\n }\n\n // 设置滚动锚点\n fn.setScrollAnchor = () => {\n // click topBtn 滚动至bodyAnchor 【移动端 PC】\n if (volantis.dom.topBtn && volantis.dom.bodyAnchor) {\n volantis.dom.topBtn.click(e => {\n e.preventDefault();\n e.stopPropagation();\n fn.scrolltoElement(volantis.dom.bodyAnchor);\n e.stopImmediatePropagation();\n });\n }\n\n }\n\n // 设置导航栏\n fn.setHeader = () => {\n // !!! 此处的Dom对象需要重载 !!!\n if (!pdata.ispage) return;\n\n // 填充二级导航文章标题 【移动端 PC】\n volantis.dom.wrapper.find('.nav-sub .title').html(document.title.split(\" - \")[0]);\n\n // ====== bind events to every btn =========\n // 评论按钮 【移动端 PC】\n volantis.dom.comment = volantis.dom.$(document.getElementById(\"s-comment\")); // 评论按钮 桌面端 移动端\n volantis.dom.commentTarget = volantis.dom.$(document.querySelector('#l_main article#comments')); // 评论区域\n if (volantis.dom.commentTarget) {\n volantis.dom.comment.click(e => { // 评论按钮点击后 跳转到评论区域\n e.preventDefault();\n e.stopPropagation();\n fn.scrolltoElement(volantis.dom.commentTarget);\n e.stopImmediatePropagation();\n });\n } else volantis.dom.comment.style.display = 'none'; // 关闭了评论,则隐藏评论按钮\n\n // 移动端toc目录按钮 【移动端】\n if (volantis.isMobile) {\n volantis.dom.toc = volantis.dom.$(document.getElementById(\"s-toc\")); // 目录按钮 仅移动端\n volantis.dom.tocTarget = volantis.dom.$(document.querySelector('#l_side .toc-wrapper')); // 侧边栏的目录列表\n if (volantis.dom.tocTarget) {\n // 点击移动端目录按钮 激活目录按钮 显示侧边栏的目录列表\n volantis.dom.toc.click((e) => {\n e.stopPropagation();\n volantis.dom.tocTarget.toggleClass('active');\n volantis.dom.toc.toggleClass('active');\n });\n // 点击空白 隐藏\n volantis.dom.$(document).click(function (e) {\n e.stopPropagation();\n if (volantis.dom.tocTarget) {\n volantis.dom.tocTarget.removeClass('active');\n }\n volantis.dom.toc.removeClass('active');\n });\n } else volantis.dom.toc.style.display = 'none'; // 隐藏toc目录按钮\n }\n }\n\n // 设置导航栏菜单选中状态 【移动端 PC】\n fn.setHeaderMenuSelection = () => {\n // !!! 此处的Dom对象需要重载 !!!\n volantis.dom.headerMenu = volantis.dom.$(document.querySelectorAll('#l_header .navigation,#l_cover .navigation,#l_side .navigation')); // 导航列表\n\n // 先把已经激活的取消激活\n volantis.dom.headerMenu.forEach(element => {\n let li = volantis.dom.$(element).find('li a.active')\n if (li)\n li.removeClass('active')\n let div = volantis.dom.$(element).find('div a.active')\n if (div)\n div.removeClass('active')\n });\n\n // replace '%' '/' '.'\n var idname = location.pathname.replace(/\\/|%|\\./g, '');\n if (idname.length == 0) {\n idname = 'home';\n }\n var page = idname.match(/page\\d{0,}$/g);\n if (page) {\n page = page[0];\n idname = idname.split(page)[0];\n }\n var index = idname.match(/index.html/);\n if (index) {\n index = index[0];\n idname = idname.split(index)[0];\n }\n // 转义字符如 [, ], ~, #, @\n idname = idname.replace(/(\\[|\\]|~|#|@)/g, '\\\\$1');\n if (idname && volantis.dom.headerMenu) {\n volantis.dom.headerMenu.forEach(element => {\n // idname 不能为数字开头, 加一个 action- 前缀\n let id = element.querySelector(\"[active-action=action-\" + idname + \"]\")\n if (id) {\n volantis.dom.$(id).addClass('active')\n }\n });\n }\n }\n\n // 设置全局事件\n fn.setGlobalHeaderMenuEvent = () => {\n if (volantis.isMobile) {\n // 【移动端】 关闭已经展开的子菜单 点击展开子菜单\n document.querySelectorAll('#l_header .m-phone li').forEach(function (_e) {\n if (_e.querySelector(\".list-v\")) {\n // 点击菜单\n volantis.dom.$(_e).click(function (e) { \n e.stopPropagation();\n let menuType = ''\n // 关闭.menu-phone\n Array.from(e.currentTarget.children).some(val => {\n if(val.classList.contains('s-menu')) {\n menuType = 'menu' // 代表点击的是一级菜单外层的icon\n return\n }\n if(val.classList.contains('menuitem')) {\n menuType = 'item' // 点击的是下拉一级菜单\n return\n }\n })\n if(menuType === 'item') {\n // 关闭已经展开的子菜单, 这一步是针对点击多个拥有二级子菜单的一级菜单,关闭其他所有一级菜单的二级菜单\n // ①\n e.currentTarget.parentElement.childNodes.forEach(function (e2) {\n if (Object.prototype.toString.call(e2) == '[object HTMLLIElement]') {\n e2.childNodes.forEach(function (e1) {\n if (Object.prototype.toString.call(e1) == '[object HTMLUListElement]') {\n volantis.dom.$(e1).hide()\n }\n })\n }\n })\n // 点击展开二级子菜单\n\n /* \n 由于采用事件委托,因此此处点击, 两种情况,currentTarget指向菜单按钮a.s-menu和ul的共同父元素li, 第二,指向ul中的li元素,也就是子菜单\n 区分:情况一的第一个子元素a的类名是s-menu;情况二的子元素a的类名为menuitem\n 我们要点击外部的menu icon时要关闭的是.menu-phone而不是.menuitem\n */\n let array = e.currentTarget.children\n for (let index = 0; index < array.length; index++) {\n const element = array[index];\n if (volantis.dom.$(element).title === 'menu') { // 移动端菜单栏异常\n volantis.dom.$(element).style.display = \"flex\" // https://github.com/volantis-x/hexo-theme-volantis/issues/706\n } else {\n volantis.dom.$(element).show()\n }\n }\n } else { \n let menuPhone = document.querySelector('.switcher .menu-phone')\n let isHiding = window.getComputedStyle(menuPhone).display === 'none'\n if(isHiding) {\n volantis.dom.$(menuPhone).show()\n } else {\n volantis.dom.$(menuPhone).hide()\n // 别忘了再执行①\n // 准备关闭所有二级菜单, 注意此时的e和点击一级菜单时候的e层级不同\n // 此处好像不能使用变量存储的menuPhone?要重新查询\n document.querySelector('.switcher .menu-phone').childNodes.forEach(function (e2) {\n if (Object.prototype.toString.call(e2) == '[object HTMLLIElement]') {\n e2.childNodes.forEach(function (e1) {\n if (Object.prototype.toString.call(e1) == '[object HTMLUListElement]') {\n volantis.dom.$(e1).hide()\n }\n })\n }\n })\n }\n }\n\n }, 0);\n }\n })\n } else {\n // 【PC端】 hover时展开子菜单,点击时[target.baseURI==origin时]隐藏子菜单? 现有逻辑大部分情况不隐藏子菜单\n document.querySelectorAll('#wrapper .m-pc li > a[href]').forEach(function (e) {\n volantis.dom.$(e.parentElement).click(function (e) {\n e.stopPropagation();\n if (e.target.origin == e.target.baseURI) {\n document.querySelectorAll('#wrapper .m-pc .list-v').forEach(function (e) {\n volantis.dom.$(e).hide(); // 大概率不会执行\n })\n }\n }, 0);\n })\n }\n fn.setPageHeaderMenuEvent();\n }\n \n // 【移动端】隐藏子菜单\n fn.setPageHeaderMenuEvent = () => {\n if (!volantis.isMobile) return\n // 【移动端】 点击空白处隐藏子菜单\n volantis.dom.$(document).click(function (e) {\n volantis.dom.mPhoneList.forEach(function (e) {\n volantis.dom.$(e).hide();\n })\n });\n }\n\n // 设置导航栏搜索框 【移动端】\n fn.setHeaderSearch = () => {\n if (!volantis.isMobile) return;\n if (!volantis.dom.switcher) return;\n // 点击移动端搜索按钮\n volantis.dom.switcher.click(function (e) {\n e.stopPropagation();\n volantis.dom.header.toggleClass('z_search-open'); // 激活移动端搜索框\n volantis.dom.switcher.toggleClass('active'); // 移动端搜索按钮\n }, false); // false : pjax 不移除监听\n // 点击空白取消激活\n volantis.dom.$(document).click(function (e) {\n volantis.dom.header.removeClass('z_search-open');\n volantis.dom.switcher.removeClass('active');\n }, false); // false : pjax 不移除监听\n // 移动端点击搜索框 停止事件传播\n volantis.dom.search.click(function (e) {\n e.stopPropagation();\n }, false); // false : pjax 不移除监听\n }\n\n // 设置 tabs 标签 【移动端 PC】\n fn.setTabs = () => {\n let tabs = document.querySelectorAll('#l_main .tabs .nav-tabs')\n if (!tabs) return\n tabs.forEach(function (e) {\n e.querySelectorAll('a').forEach(function (e) {\n volantis.dom.$(e).on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const $tab = volantis.dom.$(e.target.parentElement.parentElement.parentElement);\n $tab.find('.nav-tabs .active').removeClass('active');\n volantis.dom.$(e.target.parentElement).addClass('active');\n $tab.find('.tab-content .active').removeClass('active');\n $tab.find(e.target.className).addClass('active');\n return false;\n });\n })\n })\n }\n\n // hexo-reference 页脚跳转 https://github.com/volantis-x/hexo-theme-volantis/issues/647\n fn.footnotes = () => {\n let ref = document.querySelectorAll('#l_main .footnote-backref, #l_main .footnote-ref > a');\n ref.forEach(function (e, i) {\n ref[i].click = () => { }; // 强制清空原 click 事件\n volantis.dom.$(e).on('click', (e) => {\n e.stopPropagation();\n e.preventDefault();\n let targetID = decodeURI(e.target.hash.split('#')[1]).replace(/\\ /g, '-');\n let target = document.getElementById(targetID);\n if (target) {\n volantis.scroll.to(target, { addTop: - volantis.dom.header.offsetHeight - 5, behavior: 'instant' })\n }\n });\n })\n }\n\n // 工具类:代码块复制\n fn.utilCopyCode = (Selector) => {\n document.querySelectorAll(Selector).forEach(node => {\n const test = node.insertAdjacentHTML(\"beforebegin\", COPYHTML);\n const _BtnCopy = node.previousSibling;\n _BtnCopy.onclick = e => {\n e.stopPropagation();\n const _icon = _BtnCopy.querySelector('i');\n const _span = _BtnCopy.querySelector('span');\n\n node.focus();\n const range = new Range();\n range.selectNodeContents(node);\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(range);\n\n const str = document.getSelection().toString();\n fn.utilWriteClipText(str).then(() => {\n fn.messageCopyright();\n _BtnCopy.classList.add('copied');\n _icon.classList.remove('fa-copy');\n _icon.classList.add('fa-check-circle');\n _span.innerText = \"COPIED\";\n setTimeout(() => {\n _icon.classList.remove('fa-check-circle');\n _icon.classList.add('fa-copy');\n _span.innerText = \"COPY\";\n }, 2000)\n }).catch(e => {\n VolantisApp.message('系统提示', e, {\n icon: 'fa fa-exclamation-circle red'\n });\n _BtnCopy.classList.add('copied-failed');\n _icon.classList.remove('fa-copy');\n _icon.classList.add('fa-exclamation-circle');\n _span.innerText = \"COPY FAILED\";\n setTimeout(() => {\n _icon.classList.remove('fa-exclamation-circle');\n _icon.classList.add('fa-copy');\n _span.innerText = \"COPY\";\n })\n })\n }\n });\n }\n\n // 工具类:复制字符串到剪切板\n fn.utilWriteClipText = (str) => {\n return navigator.clipboard\n .writeText(str)\n .then(() => {\n return Promise.resolve()\n })\n .catch(e => {\n const input = document.createElement('textarea');\n input.setAttribute('readonly', 'readonly');\n document.body.appendChild(input);\n input.innerHTML = str;\n input.select();\n try {\n let result = document.execCommand('copy')\n document.body.removeChild(input);\n if (!result || result === 'unsuccessful') {\n return Promise.reject('复制文本失败!')\n } else {\n return Promise.resolve()\n }\n } catch (e) {\n document.body.removeChild(input);\n return Promise.reject(\n '当前浏览器不支持复制功能,请检查更新或更换其他浏览器操作!'\n )\n }\n })\n }\n\n // 工具类:返回时间间隔\n fn.utilTimeAgo = (dateTimeStamp) => {\n const minute = 1e3 * 60, hour = minute * 60, day = hour * 24, week = day * 7, month = day * 30;\n const now = new Date().getTime();\n const diffValue = now - dateTimeStamp;\n const minC = diffValue / minute,\n hourC = diffValue / hour,\n dayC = diffValue / day,\n weekC = diffValue / week,\n monthC = diffValue / month;\n if (diffValue < 0) {\n result = \"\"\n } else if (monthC >= 1 && monthC < 7) {\n result = \" \" + parseInt(monthC) + \" 月前\"\n } else if (weekC >= 1 && weekC < 4) {\n result = \" \" + parseInt(weekC) + \" 周前\"\n } else if (dayC >= 1 && dayC < 7) {\n result = \" \" + parseInt(dayC) + \" 天前\"\n } else if (hourC >= 1 && hourC < 24) {\n result = \" \" + parseInt(hourC) + \" 小时前\"\n } else if (minC >= 1 && minC < 60) {\n result = \" \" + parseInt(minC) + \" 分钟前\"\n } else if (diffValue >= 0 && diffValue <= minute) {\n result = \"刚刚\"\n } else {\n const datetime = new Date();\n datetime.setTime(dateTimeStamp);\n const Nyear = datetime.getFullYear();\n const Nmonth = datetime.getMonth() + 1 < 10 ? \"0\" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;\n const Ndate = datetime.getDate() < 10 ? \"0\" + datetime.getDate() : datetime.getDate();\n const Nhour = datetime.getHours() < 10 ? \"0\" + datetime.getHours() : datetime.getHours();\n const Nminute = datetime.getMinutes() < 10 ? \"0\" + datetime.getMinutes() : datetime.getMinutes();\n const Nsecond = datetime.getSeconds() < 10 ? \"0\" + datetime.getSeconds() : datetime.getSeconds();\n result = Nyear + \"-\" + Nmonth + \"-\" + Ndate\n }\n return result;\n }\n\n // 消息提示:标准\n fn.message = (title, message, option = {}, done = null) => {\n if (typeof iziToast === \"undefined\") {\n volantis.css(volantis.GLOBAL_CONFIG.plugins.message.css)\n volantis.js(volantis.GLOBAL_CONFIG.plugins.message.js, () => {\n tozashMessage(title, message, option, done);\n });\n } else {\n tozashMessage(title, message, option, done);\n }\n function tozashMessage(title, message, option, done) {\n const {\n icon,\n time,\n position,\n transitionIn,\n transitionOut,\n messageColor,\n titleColor,\n backgroundColor,\n zindex,\n displayMode\n } = option;\n iziToast.show({\n layout: '2',\n icon: 'Fontawesome',\n closeOnEscape: 'true',\n displayMode: displayMode || 'replace',\n transitionIn: transitionIn || volantis.GLOBAL_CONFIG.plugins.message.transitionIn,\n transitionOut: transitionOut || volantis.GLOBAL_CONFIG.plugins.message.transitionOut,\n messageColor: messageColor || volantis.GLOBAL_CONFIG.plugins.message.messageColor,\n titleColor: titleColor || volantis.GLOBAL_CONFIG.plugins.message.titleColor,\n backgroundColor: backgroundColor || volantis.GLOBAL_CONFIG.plugins.message.backgroundColor,\n zindex: zindex || volantis.GLOBAL_CONFIG.plugins.message.zindex,\n icon: icon || volantis.GLOBAL_CONFIG.plugins.message.icon.default,\n timeout: time || volantis.GLOBAL_CONFIG.plugins.message.time.default,\n position: position || volantis.GLOBAL_CONFIG.plugins.message.position,\n title: title,\n message: message,\n onClosed: () => {\n if (done) done();\n },\n });\n }\n }\n\n // 消息提示:询问\n fn.question = (title, message, option = {}, success = null, cancel = null, done = null) => {\n if (typeof iziToast === \"undefined\") {\n volantis.css(volantis.GLOBAL_CONFIG.plugins.message.css)\n volantis.js(volantis.GLOBAL_CONFIG.plugins.message.js, () => {\n tozashQuestion(title, message, option, success, cancel, done);\n });\n } else {\n tozashQuestion(title, message, option, success, cancel, done);\n }\n\n function tozashQuestion(title, message, option, success, cancel, done) {\n const {\n icon,\n time,\n position,\n transitionIn,\n transitionOut,\n messageColor,\n titleColor,\n backgroundColor,\n zindex\n } = option;\n iziToast.question({\n id: 'question',\n icon: 'Fontawesome',\n close: false,\n overlay: true,\n displayMode: 'once',\n position: 'center',\n messageColor: messageColor || volantis.GLOBAL_CONFIG.plugins.message.messageColor,\n titleColor: titleColor || volantis.GLOBAL_CONFIG.plugins.message.titleColor,\n backgroundColor: backgroundColor || volantis.GLOBAL_CONFIG.plugins.message.backgroundColor,\n zindex: zindex || volantis.GLOBAL_CONFIG.plugins.message.zindex,\n icon: icon || volantis.GLOBAL_CONFIG.plugins.message.icon.quection,\n timeout: time || volantis.GLOBAL_CONFIG.plugins.message.time.quection,\n title: title,\n message: message,\n buttons: [\n ['<button><b>是</b></button>', (instance, toast) => {\n instance.hide({ transitionOut: transitionOut || 'fadeOut' }, toast, 'button');\n if (success) success(instance, toast)\n }],\n ['<button><b>否</b></button>', (instance, toast) => {\n instance.hide({ transitionOut: transitionOut || 'fadeOut' }, toast, 'button');\n if (cancel) cancel(instance, toast)\n }]\n ],\n onClosed: (instance, toast, closedBy) => {\n if (done) done(instance, toast, closedBy);\n }\n });\n }\n }\n\n // 消息提示:隐藏\n fn.hideMessage = (done = null) => {\n const toast = document.querySelector('.iziToast');\n if (!toast) {\n if (done) done()\n return;\n }\n\n if (typeof iziToast === \"undefined\") {\n volantis.css(volantis.GLOBAL_CONFIG.plugins.message.css)\n volantis.js(volantis.GLOBAL_CONFIG.plugins.message.js, () => {\n hideMessage(done);\n });\n } else {\n hideMessage(done);\n }\n\n function hideMessage(done) {\n iziToast.hide({}, toast);\n if (done) done();\n }\n }\n\n // 消息提示:复制\n let messageCopyrightShow = 0;\n fn.messageCopyright = () => {\n // 消息提示 复制时弹出\n if (volantis.GLOBAL_CONFIG.plugins.message.enable\n && volantis.GLOBAL_CONFIG.plugins.message.copyright.enable\n && messageCopyrightShow < 1) {\n messageCopyrightShow++;\n VolantisApp.message(volantis.GLOBAL_CONFIG.plugins.message.copyright.title,\n volantis.GLOBAL_CONFIG.plugins.message.copyright.message, {\n icon: volantis.GLOBAL_CONFIG.plugins.message.copyright.icon,\n transitionIn: 'flipInX',\n transitionOut: 'flipOutX',\n displayMode: 1\n });\n }\n }\n\n return {\n init: () => {\n fn.init();\n fn.event();\n },\n subscribe: () => {\n fn.setIsMobile();\n fn.setHeader();\n fn.setHeaderMenuSelection();\n fn.setGlobalHeaderMenuEvent();\n fn.setHeaderSearch();\n fn.setScrollAnchor();\n fn.setTabs();\n fn.footnotes();\n },\n pjaxReload: () => {\n fn.event();\n fn.restData();\n fn.setHeader();\n fn.setHeaderMenuSelection();\n fn.setPageHeaderMenuEvent();\n fn.setScrollAnchor();\n fn.setTabs();\n fn.footnotes();\n\n // 移除小尾巴的移除\n document.querySelector(\"#l_header .nav-main\").querySelectorAll('.list-v:not(.menu-phone)').forEach(function (e) {\n e.removeAttribute(\"style\")\n })\n document.querySelector(\"#l_header .menu-phone.list-v\").removeAttribute(\"style\");\n messageCopyrightShow = 0;\n },\n utilCopyCode: fn.utilCopyCode,\n utilWriteClipText: fn.utilWriteClipText,\n utilTimeAgo: fn.utilTimeAgo,\n message: fn.message,\n question: fn.question,\n hideMessage: fn.hideMessage,\n messageCopyright: fn.messageCopyright,\n scrolltoElement: fn.scrolltoElement\n }\n})()\nObject.freeze(VolantisApp);\n\n/* FancyBox */\nconst VolantisFancyBox = (() => {\n const fn = {};\n\n fn.loadFancyBox = (done) => {\n volantis.css(volantis.GLOBAL_CONFIG.plugins.fancybox.css);\n volantis.js(volantis.GLOBAL_CONFIG.plugins.fancybox.js).then(() => {\n if (done) done();\n })\n }\n\n /**\n * 加载及处理\n * \n * @param {*} checkMain 是否只处理文章区域的文章\n * @param {*} done FancyBox 加载完成后的动作,默认执行分组绑定\n * @returns \n */\n fn.init = (checkMain = true, done = fn.groupBind) => {\n if (!document.querySelector(\".md .gallery img, .fancybox\") && checkMain) return;\n if (typeof Fancybox === \"undefined\") {\n fn.loadFancyBox(done);\n } else {\n done();\n }\n }\n\n /**\n * 图片元素预处理\n * \n * @param {*} selectors 选择器\n * @param {*} name 分组\n */\n fn.elementHandling = (selectors, name) => {\n const nodeList = document.querySelectorAll(selectors);\n nodeList.forEach($item => {\n if ($item.hasAttribute('fancybox')) return;\n $item.setAttribute('fancybox', '');\n const $link = document.createElement('a');\n $link.setAttribute('href', $item.src);\n $link.setAttribute('data-caption', $item.alt);\n $link.setAttribute('data-fancybox', name);\n $link.classList.add('fancybox');\n $link.append($item.cloneNode());\n $item.replaceWith($link);\n })\n }\n\n /**\n * 原生绑定\n * \n * @param {*} selectors 选择器\n */\n fn.bind = (selectors) => {\n fn.init(false, () => {\n Fancybox.bind(selectors, {\n groupAll: true,\n Hash: false,\n hideScrollbar: false,\n Thumbs: {\n autoStart: false,\n },\n caption: function (fancybox, carousel, slide) {\n return slide.$trigger.alt || null\n }\n });\n });\n }\n\n /**\n * 分组绑定\n * \n * @param {*} groupName 分组名称\n */\n fn.groupBind = (groupName = null) => {\n const group = new Set();\n\n document.querySelectorAll(\".gallery\").forEach(ele => {\n if (ele.querySelector(\"img\")) {\n group.add(ele.getAttribute('data-group') || 'default');\n }\n })\n\n if (!!groupName) group.add(groupName);\n\n for (const iterator of group) {\n Fancybox.unbind('[data-fancybox=\"' + iterator + '\"]');\n Fancybox.bind('[data-fancybox=\"' + iterator + '\"]', {\n Hash: false,\n hideScrollbar: false,\n Thumbs: {\n autoStart: false,\n }\n });\n }\n }\n\n return {\n init: fn.init,\n bind: fn.bind,\n groupBind: (selectors, groupName = 'default') => {\n try {\n fn.elementHandling(selectors, groupName);\n fn.init(false, () => {\n fn.groupBind(groupName)\n });\n } catch (error) {\n console.error(error)\n }\n }\n }\n})()\nObject.freeze(VolantisFancyBox);\n\n// highlightKeyWords 与 搜索功能搭配 https://github.com/next-theme/hexo-theme-next/blob/eb194a7258058302baf59f02d4b80b6655338b01/source/js/third-party/search/local-search.js\n// Question: 锚点稳定性未知\n// ToDo: 查找模式\n// 0. (/////////要知道浏览器自带全页面查找功能 CTRL + F)\n// 1. 右键开启查找模式 / 导航栏菜单开启?? / CTRL + F ???\n// 2. 查找模式面板 (可拖动? or 固定?)\n// 3. keyword mark id 从 0 开始编号 查找下一处 highlightKeyWords.scrollToNextHighlightKeywordMark() 查找上一处 scrollToPrevHighlightKeywordMark() 循环查找(取模%)\n// 4. 可输入修改 查找关键词 keywords(type:list)\n// 5. 区分大小写 caseSensitive (/ 全字匹配?? / 正则匹配??)\n// 6. 在选定区域中查找 querySelector ??\n// 7. 关闭查找模式\n// 8. 搜索跳转 (URL 入口) 自动开启查找模式 调用 scrollToNextHighlightKeywordMark()\nconst highlightKeyWords = (() => {\n let fn = {}\n fn.markNum = 0\n fn.markNextId = -1\n fn.startFromURL = () => {\n const params = decodeURI(new URL(location.href).searchParams.get('keyword'));\n const keywords = params ? params.split(' ') : [];\n const post = document.querySelector('#l_main');\n if (keywords.length == 1 && keywords[0] == \"null\") {\n return;\n }\n fn.start(keywords, post); // 渲染耗时较长\n fn.scrollToFirstHighlightKeywordMark()\n }\n fn.scrollToFirstHighlightKeywordMark = () => {\n volantis.cleanContentVisibility();\n let target = fn.scrollToNextHighlightKeywordMark(\"0\");\n if (!target) {\n volantis.requestAnimationFrame(fn.scrollToFirstHighlightKeywordMark)\n }\n }\n fn.scrollToNextHighlightKeywordMark = (id) => {\n // Next Id\n let input = id || (fn.markNextId + 1) % fn.markNum;\n fn.markNextId = parseInt(input)\n let target = document.getElementById(\"keyword-mark-\" + fn.markNextId);\n if (!target) {\n fn.markNextId = (fn.markNextId + 1) % fn.markNum;\n target = document.getElementById(\"keyword-mark-\" + fn.markNextId);\n }\n if (target) {\n volantis.scroll.to(target, { addTop: - volantis.dom.header.offsetHeight - 5, behavior: 'instant' })\n }\n // Current target\n return target\n }\n fn.scrollToPrevHighlightKeywordMark = (id) => {\n // Prev Id\n let input = id || (fn.markNextId - 1 + fn.markNum) % fn.markNum;\n fn.markNextId = parseInt(input)\n let target = document.getElementById(\"keyword-mark-\" + fn.markNextId);\n if (!target) {\n fn.markNextId = (fn.markNextId - 1 + fn.markNum) % fn.markNum;\n target = document.getElementById(\"keyword-mark-\" + fn.markNextId);\n }\n if (target) {\n volantis.scroll.to(target, { addTop: - volantis.dom.header.offsetHeight - 5, behavior: 'instant' })\n }\n // Current target\n return target\n }\n fn.start = (keywords, querySelector) => {\n fn.markNum = 0\n if (!keywords.length || !querySelector || (keywords.length == 1 && keywords[0] == \"null\")) return;\n console.log(keywords);\n const walk = document.createTreeWalker(querySelector, NodeFilter.SHOW_TEXT, null);\n const allNodes = [];\n while (walk.nextNode()) {\n if (!walk.currentNode.parentNode.matches('button, select, textarea')) allNodes.push(walk.currentNode);\n }\n allNodes.forEach(node => {\n const [indexOfNode] = fn.getIndexByWord(keywords, node.nodeValue);\n if (!indexOfNode.length) return;\n const slice = fn.mergeIntoSlice(0, node.nodeValue.length, indexOfNode);\n fn.highlightText(node, slice, 'keyword');\n fn.highlightStyle()\n });\n }\n fn.getIndexByWord = (words, text, caseSensitive = false) => {\n const index = [];\n const included = new Set();\n words.forEach(word => {\n const div = document.createElement('div');\n div.innerText = word;\n word = div.innerHTML;\n\n const wordLen = word.length;\n if (wordLen === 0) return;\n let startPosition = 0;\n let position = -1;\n if (!caseSensitive) {\n text = text.toLowerCase();\n word = word.toLowerCase();\n }\n while ((position = text.indexOf(word, startPosition)) > -1) {\n index.push({ position, word });\n included.add(word);\n startPosition = position + wordLen;\n }\n });\n index.sort((left, right) => {\n if (left.position !== right.position) {\n return left.position - right.position;\n }\n return right.word.length - left.word.length;\n });\n return [index, included];\n };\n fn.mergeIntoSlice = (start, end, index) => {\n let item = index[0];\n let { position, word } = item;\n const hits = [];\n const count = new Set();\n while (position + word.length <= end && index.length !== 0) {\n count.add(word);\n hits.push({\n position,\n length: word.length\n });\n const wordEnd = position + word.length;\n\n index.shift();\n while (index.length !== 0) {\n item = index[0];\n position = item.position;\n word = item.word;\n if (wordEnd > position) {\n index.shift();\n } else {\n break;\n }\n }\n }\n return {\n hits,\n start,\n end,\n count: count.size\n };\n };\n fn.highlightText = (node, slice, className) => {\n const val = node.nodeValue;\n let index = slice.start;\n const children = [];\n for (const { position, length } of slice.hits) {\n const text = document.createTextNode(val.substring(index, position));\n index = position + length;\n let mark = document.createElement('mark');\n mark.className = className;\n mark = fn.highlightStyle(mark)\n mark.appendChild(document.createTextNode(val.substr(position, length)));\n children.push(text, mark);\n }\n node.nodeValue = val.substring(index, slice.end);\n children.forEach(element => {\n node.parentNode.insertBefore(element, node);\n });\n }\n fn.highlightStyle = (mark) => {\n if (!mark) return;\n mark.id = \"keyword-mark-\" + fn.markNum;\n fn.markNum++;\n mark.style.background = \"transparent\";\n mark.style[\"border-bottom\"] = \"1px dashed #ff2a2a\";\n mark.style[\"color\"] = \"#ff2a2a\";\n mark.style[\"font-weight\"] = \"bold\";\n return mark\n }\n fn.cleanHighlightStyle = () => {\n document.querySelectorAll(\".keyword\").forEach(mark => {\n mark.style.background = \"transparent\";\n mark.style[\"border-bottom\"] = null;\n mark.style[\"color\"] = null;\n mark.style[\"font-weight\"] = null;\n })\n }\n return {\n start: (keywords, querySelector) => {\n fn.start(keywords, querySelector)\n },\n startFromURL: () => {\n fn.startFromURL()\n },\n scrollToNextHighlightKeywordMark: (id) => {\n fn.scrollToNextHighlightKeywordMark(id)\n },\n scrollToPrevHighlightKeywordMark: (id) => {\n fn.scrollToPrevHighlightKeywordMark(id)\n },\n cleanHighlightStyle: () => {\n fn.cleanHighlightStyle()\n },\n }\n})()\nObject.freeze(highlightKeyWords);\n\n/* DOM 控制 */\nconst DOMController = {\n /**\n * 控制元素显隐\n */\n visible: (ele, type = true) => {\n if (ele) ele.style.display = type === true ? 'block' : 'none';\n },\n\n /**\n * 移除元素\n */\n remove: (param) => {\n const node = document.querySelectorAll(param);\n node.forEach(ele => {\n ele.remove();\n })\n },\n\n removeList: (list) => {\n list.forEach(param => {\n DOMController.remove(param)\n })\n },\n\n /**\n * 设置属性\n */\n setAttribute: (param, attrName, attrValue) => {\n const node = document.querySelectorAll(param);\n node.forEach(ele => {\n ele.setAttribute(attrName, attrValue)\n })\n },\n\n setAttributeList: (list) => {\n list.forEach(item => {\n DOMController.setAttribute(item[0], item[1], item[2])\n })\n },\n\n /**\n * 设置样式\n */\n setStyle: (param, styleName, styleValue) => {\n const node = document.querySelectorAll(param);\n node.forEach(ele => {\n ele.style[styleName] = styleValue;\n })\n },\n\n setStyleList: (list) => {\n list.forEach(item => {\n DOMController.setStyle(item[0], item[1], item[2])\n })\n },\n\n fadeIn: (e) => {\n if (!e) return;\n e.style.visibility = \"visible\";\n e.style.opacity = 1;\n e.style.display = \"block\";\n e.style.transition = \"all 0.5s linear\";\n return e\n },\n\n fadeOut: (e) => {\n if (!e) return;\n e.style.visibility = \"hidden\";\n e.style.opacity = 0;\n e.style.display = \"none\";\n e.style.transition = \"all 0.5s linear\";\n return e\n },\n\n fadeToggle: (e) => {\n if (!e) return;\n if (e.style.visibility == \"hidden\") {\n e = DOMController.fadeIn(e)\n } else {\n e = DOMController.fadeOut(e)\n }\n return e\n },\n\n fadeToggleList: (list) => {\n list.forEach(param => {\n DOMController.fadeToggle(param)\n })\n },\n\n hasClass: (e, c) => {\n if (!e) return;\n return e.className.match(new RegExp('(\\\\s|^)' + c + '(\\\\s|$)'));\n },\n\n addClass: (e, c) => {\n if (!e) return;\n e.classList.add(c);\n return e\n },\n\n removeClass: (e, c) => {\n if (!e) return;\n e.classList.remove(c);\n return e\n },\n\n toggleClass: (e, c) => {\n if (!e) return;\n if (DOMController.hasClass(e, c)) {\n DOMController.removeClass(e, c)\n } else {\n DOMController.addClass(e, c)\n }\n return e\n },\n\n toggleClassList: (list) => {\n list.forEach(item => {\n DOMController.toggleClass(item[0], item[1])\n })\n }\n}\nObject.freeze(DOMController);\n\nconst VolantisRequest = {\n timeoutFetch: (url, ms, requestInit) => {\n const controller = new AbortController()\n requestInit.signal?.addEventListener('abort', () => controller.abort())\n let promise = fetch(url, { ...requestInit, signal: controller.signal })\n if (ms > 0) {\n const timer = setTimeout(() => controller.abort(), ms)\n promise.finally(() => { clearTimeout(timer) })\n }\n promise = promise.catch((err) => {\n throw ((err || {}).name === 'AbortError') ? new Error(`Fetch timeout: ${url}`) : err\n })\n return promise\n },\n\n Fetch: async (url, requestInit, timeout = 15000) => {\n const resp = await VolantisRequest.timeoutFetch(url, timeout, requestInit);\n if (!resp.ok) throw new Error(`Fetch error: ${url} | ${resp.status}`);\n let json = await resp.json()\n if (!json.success) throw json\n return json\n },\n\n POST: async (url, data) => {\n const requestInit = {\n method: 'POST',\n }\n if (data) {\n const formData = new FormData();\n Object.keys(data).forEach(key => formData.append(key, String(data[key])))\n requestInit.body = formData;\n }\n const json = await VolantisRequest.Fetch(url, requestInit)\n return json.data;\n },\n\n Get: async (url, data) => {\n const json = await VolantisRequest.Fetch(url + (data ? (`?${new URLSearchParams(data)}`) : ''), {\n method: 'GET'\n })\n }\n}\nObject.freeze(VolantisRequest);\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/aplayer.js"],"names":["RightMenuAplayer","playStatus","APlayer","fn","undefined","player","setAPlayerObject","observer","setAPlayerObserver","meting","document","querySelectorAll","length","forEach","item","index","meta","id","volantis","GLOBAL_CONFIG","plugins","aplayer","updateTitle","on","e","updateAPlayerControllerStatus","status","onUpdateAPlayerVolume","volumeBarWrap","getElementsByClassName","children","volumeBar","thumbMove","updateAPlayerVolume","thumbUp","classList","remove","removeEventListener","addEventListener","event","stopPropagation","add","error","console","log","percentage","clientX","changedTouches","getBoundingClientRect","left","clientWidth","Math","max","min","volume","style","width","audio","paused","checkAPlayer","toggle","skipBack","play","skipForward","percent","list","obj","audios","innerHTML","title","aplayerBackward","aplayerToggle","aplayerForward","Object","freeze","requestAnimationFrame"],"mappings":"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","file":"../../../js/plugins/aplayer.js","sourcesContent":["/**\n * 右键音乐\n * */\nconst RightMenuAplayer = (() => {\n let playStatus; // 播放器状态\n const APlayer = {}; // 右键音乐所控制的播放器\n const fn = {};\n\n fn.checkAPlayer = () => {\n if (playStatus === undefined || APlayer.player === undefined) {\n fn.setAPlayerObject();\n } else if (APlayer.observer === undefined) {\n fn.setAPlayerObserver();\n }\n }\n\n // 设置全局播放器所对应的 aplyer 对象\n fn.setAPlayerObject = () => {\n let meting = document.querySelectorAll('.footer meting-js');\n if (meting.length == 0) {\n meting = document.querySelectorAll('meting-js');\n }\n APlayer.player = undefined;\n meting.forEach((item, index) => {\n if (item.meta.id == volantis.GLOBAL_CONFIG.plugins.aplayer.id && item.aplayer && APlayer.player === undefined) {\n APlayer.player = item.aplayer;\n fn.setAPlayerObserver();\n fn.updateTitle();\n }\n });\n }\n\n // 事件监听\n fn.setAPlayerObserver = () => {\n try {\n APlayer.player.on('play', function (e) {\n fn.updateAPlayerControllerStatus(e);\n APlayer.status = 'play';\n });\n APlayer.player.on('pause', function (e) {\n fn.updateAPlayerControllerStatus(e);\n APlayer.status = 'pause';\n });\n APlayer.player.on('volumechange', function (e) {\n fn.onUpdateAPlayerVolume(e);\n });\n APlayer.player.on('loadstart', function (e) {\n fn.updateTitle(e);\n });\n\n // 监听音量手势\n APlayer.volumeBarWrap = document.getElementsByClassName('nav volume')[0].children[0];\n APlayer.volumeBar = APlayer.volumeBarWrap.children[0];\n\n const thumbMove = (e) => {\n fn.updateAPlayerVolume(e);\n };\n\n const thumbUp = (e) => {\n APlayer.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n fn.updateAPlayerVolume(e);\n };\n\n APlayer.volumeBarWrap.addEventListener('mousedown', (event) => {\n event.stopPropagation();\n APlayer.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n\n APlayer.volumeBarWrap.addEventListener('click', (event) => {\n event.stopPropagation();\n });\n\n fn.updateAPlayerControllerStatus();\n fn.onUpdateAPlayerVolume();\n APlayer.observer = true;\n } catch (error) {\n console.log(error);\n APlayer.observer = undefined;\n }\n }\n\n fn.updateAPlayerVolume = (e) => {\n let percentage = ((e.clientX || e.changedTouches[0].clientX) -\n APlayer.volumeBar.getBoundingClientRect().left) / APlayer.volumeBar.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n APlayer.player.volume(percentage);\n }\n\n fn.onUpdateAPlayerVolume = () => {\n try {\n APlayer.volumeBar.children[0].style.width = APlayer.player.audio.volume * 100 + '%';\n } catch (error) {\n console.log(error);\n }\n }\n\n // 更新控制器状态\n fn.updateAPlayerControllerStatus = () => {\n try {\n if (APlayer.player.audio.paused) {\n playStatus = 'pause';\n document.getElementsByClassName('nav toggle')[0].children[0].classList.add('fa-play');\n document.getElementsByClassName('nav toggle')[0].children[0].classList.remove('fa-pause');\n } else {\n playStatus = 'play';\n document.getElementsByClassName('nav toggle')[0].children[0].classList.remove('fa-play');\n document.getElementsByClassName('nav toggle')[0].children[0].classList.add('fa-pause');\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n // 播放/暂停\n fn.aplayerToggle = () => {\n fn.checkAPlayer();\n try {\n APlayer.player.toggle();\n } catch (error) {\n console.log(error);\n }\n }\n\n // 上一曲\n fn.aplayerBackward = () => {\n fn.checkAPlayer();\n try {\n APlayer.player.skipBack();\n APlayer.player.play();\n } catch (error) {\n console.log(error);\n }\n }\n\n // 下一曲\n fn.aplayerForward = () => {\n fn.checkAPlayer();\n try {\n APlayer.player.skipForward();\n APlayer.player.play();\n } catch (error) {\n console.log(error);\n }\n }\n\n // 调节音量\n fn.aplayerVolume = (percent) => {\n fn.checkAPlayer();\n try {\n APlayer.player.volume(percent);\n } catch (error) {\n console.log(error);\n }\n }\n\n // 更新音乐标题\n fn.updateTitle = () => {\n fn.checkAPlayer();\n try {\n const index = APlayer.player.list.index;\n const obj = APlayer.player.list.audios[index];\n document.getElementsByClassName('nav music-title')[0].innerHTML = obj.title;\n } catch (error) {\n //console.log(error);\n }\n }\n\n return {\n checkAPlayer: fn.checkAPlayer,\n aplayerBackward: fn.aplayerBackward,\n aplayerToggle: fn.aplayerToggle,\n aplayerForward: fn.aplayerForward,\n APlayer: APlayer\n }\n})()\n\nObject.freeze(RightMenuAplayer);\n\nvolantis.requestAnimationFrame(() => {\n RightMenuAplayer.checkAPlayer();\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/parallax.js"],"names":["Parallax","options","speed","zIndex","fade","slidein","slider","mirrors","length","opac","parseFloat","style","opacity","setTimeout","mirror","remove","shift","start","document","createElement","classList","add","visibility","position","top","left","overflow","window","appendChild","src","alt","mirrorItem","push","addEventListener","update","init","loadDimensions","wH","documentElement","clientHeight","wW","clientWidth","getScrollTop","scrollPos","pageYOffset","compatMode","scrollTop","body","lastPosition","loop","winScrollTop","yoffset","sT","Math","max","sL","scrollLeft","overScroll","min","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","refreshItem","aspectRatio","naturalWidth","naturalHeight","aspect","boxWidth","boxHeight","boxOffsetTop","boxOffsetLeft","boxOffsetBottom","margin","winHeight","maxOffset","minOffset","imageHeightMin","imageOffsetMin","imageWidth","imageHeight","offsetBaseTop","offsetLeft","renderItem","scrollBottom","mirrorTop","mirrorLeft","offsetTop","transform","height","width","maxWidth","forEach","e"],"mappings":"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","file":"../../../js/plugins/parallax.js","sourcesContent":["let Parallax = {};\nParallax.options = {};\nParallax.options.speed = 0.25;\nParallax.options.zIndex = -100;\nParallax.options.fade = 1500;\nParallax.slidein = () => {\n let slider = Parallax.mirrors[0].slider;\n if (Parallax.mirrors.length >= 2) {\n slider = Parallax.mirrors[1].slider;\n }\n var opac = parseFloat(slider.style.opacity);\n if (opac !== 1) {\n if (Parallax.mirrors.length >= 2) {\n opac = opac + 0.1;\n slider.style.opacity = opac;\n setTimeout(Parallax.slidein, Parallax.options.fade / 10);\n }else{\n slider.style.opacity = 1;\n }\n } else {\n if (Parallax.mirrors.length >= 2) {\n Parallax.mirrors[0].mirror.remove();\n Parallax.mirrors.shift();\n }\n }\n};\nParallax.start = () => {\n let mirror = document.createElement(\"div\");\n mirror.classList.add(\"parallax-mirror\");\n mirror.style.visibility = \"hidden\";\n mirror.style.zIndex = Parallax.options.zIndex;\n mirror.style.position = \"fixed\";\n mirror.style.top = 0;\n mirror.style.left = 0;\n mirror.style.overflow = \"hidden\";\n Parallax.window.appendChild(mirror);\n let slider = document.createElement(\"img\");\n slider.src = Parallax.options.src;\n slider.alt = \"parallax\";\n slider.classList.add(\"parallax-slider\");\n slider.style.opacity = 0;\n mirror.appendChild(slider);\n if (!Parallax.mirrors) {\n Parallax.mirrors = [];\n }\n let mirrorItem = {};\n mirrorItem.mirror = mirror;\n mirrorItem.slider = slider;\n Parallax.mirrors.push(mirrorItem);\n Parallax.slidein();\n slider.addEventListener(\n \"load\",\n function () {\n Parallax.update();\n },\n false\n );\n};\nParallax.init = () => {\n function loadDimensions() {\n Parallax.wH = document.documentElement.clientHeight;\n Parallax.wW = document.documentElement.clientWidth;\n }\n function getScrollTop() {\n var scrollPos;\n if (window.pageYOffset) {\n scrollPos = window.pageYOffset;\n } else if (document.compatMode && document.compatMode != \"BackCompat\") {\n scrollPos = document.documentElement.scrollTop;\n } else if (document.body) {\n scrollPos = document.body.scrollTop;\n }\n return scrollPos;\n }\n function loadScrollPosition() {\n const winScrollTop = getScrollTop();\n Parallax.sT = Math.max(0, winScrollTop);\n Parallax.sL = Math.max(0, document.body.scrollLeft);\n Parallax.overScroll = Math.min(winScrollTop, 0);\n }\n window.addEventListener(\n \"resize\",\n function () {\n loadDimensions();\n Parallax.update();\n },\n false\n );\n loadDimensions();\n let lastPosition = -1;\n (function loop() {\n const yoffset = getScrollTop();\n if (lastPosition !== yoffset) {\n lastPosition = yoffset;\n loadScrollPosition();\n Parallax.update();\n }\n window.requestAnimationFrame =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame;\n window.requestAnimationFrame(loop);\n })();\n};\n\nParallax.refreshItem = (slider) => {\n Parallax.options.aspectRatio =\n slider.naturalWidth / (slider.naturalHeight || 1);\n const aspect = Parallax.options.aspectRatio || 1;\n Parallax.options.boxWidth = Parallax.window.clientWidth;\n Parallax.options.boxHeight = Parallax.window.clientHeight;\n Parallax.options.boxOffsetTop = Parallax.window.scrollTop;\n Parallax.options.boxOffsetLeft = Parallax.window.scrollLeft;\n Parallax.options.boxOffsetBottom =\n Parallax.options.boxOffsetTop + Parallax.options.boxHeight;\n const winHeight = Parallax.wH;\n const maxOffset = Parallax.options.boxOffsetTop;\n const minOffset = Math.max(\n Parallax.options.boxOffsetTop + Parallax.options.boxHeight - winHeight,\n 0\n );\n const imageHeightMin =\n (Parallax.options.boxHeight +\n (maxOffset - minOffset) * (1 - Parallax.options.speed)) |\n 0;\n const imageOffsetMin =\n ((Parallax.options.boxOffsetTop - maxOffset) *\n (1 - Parallax.options.speed)) |\n 0;\n let margin;\n if (Parallax.options.boxWidth < imageHeightMin * aspect) {\n Parallax.options.imageWidth = (imageHeightMin * aspect) | 0;\n Parallax.options.imageHeight = imageHeightMin;\n Parallax.options.offsetBaseTop = imageOffsetMin;\n margin = Parallax.options.imageWidth - Parallax.options.boxWidth;\n Parallax.options.offsetLeft = (-margin / 2) | 0;\n } else {\n Parallax.options.imageWidth = Parallax.options.boxWidth;\n Parallax.options.imageHeight = (Parallax.options.boxWidth / aspect) | 0;\n Parallax.options.offsetLeft = 0;\n margin = Parallax.options.imageHeight - imageHeightMin;\n Parallax.options.offsetBaseTop = (imageOffsetMin - margin / 2) | 0;\n }\n};\nParallax.renderItem = (mirror, slider) => {\n const scrollTop = Parallax.sT;\n const scrollLeft = Parallax.sL;\n const scrollBottom = scrollTop + Parallax.wH;\n if (\n Parallax.options.boxOffsetBottom > scrollTop &&\n Parallax.options.boxOffsetTop <= scrollBottom\n ) {\n Parallax.options.visibility = \"visible\";\n Parallax.options.mirrorTop = Parallax.options.boxOffsetTop - scrollTop;\n Parallax.options.mirrorLeft = Parallax.options.boxOffsetLeft - scrollLeft;\n Parallax.options.offsetTop =\n Parallax.options.offsetBaseTop -\n Parallax.options.mirrorTop * (1 - Parallax.options.speed);\n } else {\n Parallax.options.visibility = \"hidden\";\n }\n mirror.style.transform =\n \"translate3d(\" +\n Parallax.options.mirrorLeft +\n \"px, \" +\n Parallax.options.mirrorTop +\n \"px, 0px)\";\n mirror.style.visibility = Parallax.options.visibility;\n mirror.style.height = Parallax.options.boxHeight + \"px\";\n mirror.style.width = Parallax.options.boxWidth + \"px\";\n\n slider.style.transform =\n \"translate3d(\" +\n Parallax.options.offsetLeft +\n \"px, \" +\n Parallax.options.offsetTop +\n \"px, 0px)\";\n slider.style.position = \"absolute\";\n slider.style.height = Parallax.options.imageHeight + \"px\";\n slider.style.width = Parallax.options.imageWidth + \"px\";\n slider.style.maxWidth = \"none\";\n};\nParallax.update = () => {\n if (!Parallax.mirrors) {\n return\n }\n Parallax.mirrors.forEach((e) => {\n Parallax.refreshItem(e.slider);\n Parallax.renderItem(e.mirror, e.slider);\n });\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/rightMenu.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","_defineProperty","obj","key","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","RightMenu","rightMenuConfig","volantis","GLOBAL_CONFIG","plugins","rightmenu","messageRightMenu","message","enable","_rightMenuWrapper","document","getElementById","_rightMenuContent","_printHtml","_menuMusic","_readingModel","_readBkg","_menuLoad","querySelectorAll","_menuOption","querySelector","_searchWord","_copyText","_copyPaste","_copySelect","_copyCut","_copyHref","_copySrc","_copyImg","_openTab","_backward","_toggle","_forward","urlRegx","init","DOMController","visible","parentNode","removeChild","readBkg","createElement","className","id","window","body","appendChild","initEvent","oncontextmenu","event","ctrlKey","offsetWidth","hideMenu","popMenu","stopPropagation","preventDefault","removeEventListener","addEventListener","onclick","RightMenuAplayer","aplayerBackward","aplayerToggle","aplayerForward","mouseClientX","clientX","mouseClientY","clientY","screenWidth","documentElement","clientWidth","screenHeight","clientHeight","setMenuItem","focus","style","zIndex","menuWidth","menuHeight","offsetHeight","showLeft","showTop","left","top","notice","showMessage","blur","console","NoticeRightMenu","localStorage","getItem","VolantisApp","icon","faicon","time","setItem","optionFlag","eventTarget","target","selectText","getSelection","toString","tagName","toLowerCase","inputStr","select","statrPos","selectionStart","endPos","selectionEnd","copyString","substring","readClipboard","text","insertAtCaret","eventHref","href","test","open","eventSrc","currentSrc","trimEnd","endsWith","writeClipImg","flag","OpenSearch","_printArticle","pathName","location","pathname","question","printHtml","readingModel","aplayer","APlayer","player","music_alwaysShow","status","ele","layout","includes","checkAPlayer","str","utilWriteClipText","messageCopyright","writeClipText","navigator","clipboard","writeText","input","setAttribute","result","execCommand","_ref","_callee","success","parentElement","data","blob","dom","textRange","selection","range","_context","customPicUrl","replace","old","fetch","write","ClipboardItem","t0","createTextRange","moveToElementText","createRange","selectNodeContents","removeAllRanges","addRange","_x","_x2","_x3","_callee2","_context2","permissions","query","state","readText","elemt","startPos","scrollTop","isReadModel","remove","setStyle","setTimeout","print","innerHTML","reload","ScrollReveal","clean","fadeToggle","toggleClass","option","backgroundColor","hasClass","destroy","freeze","requestAnimationFrame","readyState","pjax","send"],"mappings":"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","file":"../../../js/plugins/rightMenu.js","sourcesContent":["const RightMenu = (() => {\n const\n rightMenuConfig = volantis.GLOBAL_CONFIG.plugins.rightmenu,\n messageRightMenu = volantis.GLOBAL_CONFIG.plugins.message.enable && volantis.GLOBAL_CONFIG.plugins.message.rightmenu.enable;\n\n const\n fn = {},\n _rightMenuWrapper = document.getElementById('rightmenu-wrapper'),\n _rightMenuContent = document.getElementById('rightmenu-content'),\n _printHtml = document.getElementById('printHtml'),\n _menuMusic = document.getElementById('menuMusic'),\n _readingModel = document.getElementById('readingModel'),\n _readBkg = document.getElementById('read_bkg');\n\n const\n _menuLoad = document.querySelectorAll('.menuLoad-Content'),\n _menuOption = document.querySelector('.menu-Option'),\n _searchWord = document.querySelector('.menu-Option[data-fn-type=\"searchWord\"]'),\n _copyText = document.querySelector('.menu-Option[data-fn-type=\"copyText\"]'),\n _copyPaste = document.querySelector('.menu-Option[data-fn-type=\"copyPaste\"]'),\n _copySelect = document.querySelector('.menu-Option[data-fn-type=\"copySelect\"]'),\n _copyCut = document.querySelector('.menu-Option[data-fn-type=\"copyCut\"]'),\n _copyHref = document.querySelector('.menu-Option[data-fn-type=\"copyHref\"]'),\n _copySrc = document.querySelector('.menu-Option[data-fn-type=\"copySrc\"]'),\n _copyImg = document.querySelector('.menu-Option[data-fn-type=\"copyImg\"]'),\n _openTab = document.querySelector('.menu-Option[data-fn-type=\"openTab\"]'),\n _backward = document.querySelector('#menuMusic .backward'),\n _toggle = document.querySelector('#menuMusic .toggle'),\n _forward = document.querySelector('#menuMusic .forward');\n\n const urlRegx = /^((https|http)?:\\/\\/)+[A-Za-z0-9]+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\':+!]*([^<>\\\"\\\"])*$/;\n\n fn.init = () => {\n DOMController.visible(_menuMusic, false);\n DOMController.visible(_menuOption, false);\n if (_readBkg) _readBkg.parentNode.removeChild(_readBkg);\n\n const readBkg = document.createElement(\"div\");\n readBkg.className = \"common_read_bkg common_read_hide\";\n readBkg.id = \"read_bkg\";\n window.document.body.appendChild(readBkg);\n }\n\n fn.initEvent = () => {\n window.document.oncontextmenu = (event) => {\n if (event.ctrlKey || document.body.offsetWidth <= 500) {\n fn.hideMenu();\n return true;\n }\n return fn.popMenu(event);\n }\n\n _rightMenuWrapper.oncontextmenu = (event) => {\n event.stopPropagation();\n event.preventDefault();\n return false;\n }\n\n window.removeEventListener('blur', fn.hideMenu);\n window.addEventListener('blur', fn.hideMenu);\n document.body.removeEventListener('click', fn.hideMenu);\n document.body.addEventListener('click', fn.hideMenu);\n\n if (_forward && _toggle && _forward) {\n _backward.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerBackward();\n }\n _toggle.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerToggle();\n }\n _forward.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerForward();\n }\n }\n }\n\n // 菜单位置设定\n fn.popMenu = (event) => {\n let mouseClientX = event.clientX;\n let mouseClientY = event.clientY;\n let screenWidth = document.documentElement.clientWidth || document.body.clientWidth;\n let screenHeight = document.documentElement.clientHeight || document.body.clientHeight;\n\n try {\n fn.setMenuItem(event);\n DOMController.visible(_rightMenuWrapper);\n _rightMenuWrapper.focus();\n _rightMenuWrapper.style.zIndex = '-2147483648';\n let menuWidth = _rightMenuContent.offsetWidth;\n let menuHeight = _rightMenuContent.offsetHeight;\n let showLeft = mouseClientX + menuWidth > screenWidth ? mouseClientX - menuWidth + 10 : mouseClientX;\n let showTop = mouseClientY + menuHeight > screenHeight ? mouseClientY - menuHeight + 10 : mouseClientY;\n showTop = mouseClientY + menuHeight > screenHeight && showTop < menuHeight && mouseClientY < menuHeight ?\n showTop + (screenHeight - menuHeight - showTop - 10) : showTop;\n _rightMenuWrapper.style.left = showLeft + \"px\";\n _rightMenuWrapper.style.top = showTop + \"px\";\n _rightMenuWrapper.style.zIndex = '2147483648';\n if (volantis.GLOBAL_CONFIG.plugins.message.rightmenu.notice) fn.showMessage();\n } catch (error) {\n _rightMenuWrapper.blur();\n console.error(error);\n return true;\n }\n\n return false;\n }\n\n // 消息提示\n fn.showMessage = () => {\n const NoticeRightMenu = localStorage.getItem('NoticeRightMenu') === 'true';\n if (messageRightMenu && !NoticeRightMenu)\n VolantisApp.message('右键菜单', '唤醒原系统菜单请使用:<kbd>Ctrl</kbd> + <kbd>右键</kbd>', {\n icon: rightMenuConfig.faicon + ' fa-exclamation-square red',\n time: 9000\n }, () => {\n localStorage.setItem('NoticeRightMenu', 'true')\n });\n }\n\n // 菜单项设置\n fn.setMenuItem = (event) => {\n let optionFlag = false;\n const eventTarget = event.target;\n const selectText = window.getSelection().toString();\n DOMController.visible(_openTab, false); // 隐藏新标签页打开\n\n // 判断是否是输入框\n if (eventTarget.tagName.toLowerCase() === 'input' || eventTarget.tagName.toLowerCase() === 'textarea') {\n const inputStr = eventTarget.value;\n\n // 全选\n if (inputStr.length > 0) {\n DOMController.visible(_copySelect);\n _copySelect.onclick = () => {\n event.preventDefault();\n eventTarget.select();\n }\n } else {\n DOMController.visible(_copySelect, false);\n }\n\n // 剪切\n if (selectText) {\n DOMController.visible(_copyCut);\n _copyCut.onclick = () => {\n const statrPos = eventTarget.selectionStart;\n const endPos = eventTarget.selectionEnd;\n fn.copyString(selectText);\n eventTarget.value = inputStr.substring(0, statrPos) + inputStr.substring(endPos, inputStr.length);\n eventTarget.selectionStart = statrPos;\n eventTarget.selectionEnd = statrPos;\n eventTarget.focus();\n }\n } else {\n DOMController.visible(_copyCut, false);\n }\n\n // 粘贴\n fn.readClipboard().then(text => {\n // 如果剪切板存在内容\n if (!!text) {\n DOMController.visible(_copyPaste);\n _copyPaste.onclick = () => {\n fn.insertAtCaret(eventTarget, text);\n }\n } else {\n DOMController.visible(_copyPaste, false);\n }\n }).catch((err) => {\n console.error(err);\n DOMController.visible(_copyPaste, false);\n });\n } else {\n DOMController.visible(_copySelect, false);\n DOMController.visible(_copyPaste, false);\n DOMController.visible(_copyCut, false);\n }\n\n // 新标签打开链接\n const eventHref = eventTarget.href;\n if (!!eventHref && urlRegx.test(eventHref)) {\n optionFlag = true;\n DOMController.visible(_copyHref);\n DOMController.visible(_openTab);\n if (_copyHref) _copyHref.onclick = () => {\n fn.copyString(eventHref);\n }\n _openTab.onclick = () => {\n window.open(eventHref);\n }\n } else {\n DOMController.visible(_copyHref, false);\n }\n\n // 新标签打开图片 & 复制图片链接\n const eventSrc = eventTarget.currentSrc;\n if (!!eventSrc && urlRegx.test(eventSrc)) {\n optionFlag = true;\n DOMController.visible(_copySrc);\n DOMController.visible(_openTab);\n\n _copySrc.onclick = () => {\n fn.copyString(eventSrc);\n }\n\n _openTab.onclick = () => {\n window.open(eventSrc);\n }\n } else {\n DOMController.visible(_copySrc, false);\n }\n\n // 复制图片\n if (!!eventSrc && urlRegx.test(eventSrc) && eventSrc.trimEnd().endsWith('.png')) {\n optionFlag = true;\n DOMController.visible(_copyImg);\n\n _copyImg.onclick = () => {\n fn.writeClipImg(event, flag => {\n if (flag && messageRightMenu) VolantisApp.message('系统提示', '图片复制成功!', {\n icon: rightMenuConfig.faicon + ' fa-images'\n });\n }, (error) => {\n if (messageRightMenu) VolantisApp.message('系统提示', '复制失败:' + error, {\n icon: rightMenuConfig.faicon + ' fa-exclamation-square red'\n });\n })\n }\n } else {\n DOMController.visible(_copyImg, false);\n }\n\n // 复制文本\n if (selectText) {\n optionFlag = true;\n DOMController.visible(_copyText);\n DOMController.visible(_searchWord);\n\n _copyText.onclick = () => {\n fn.copyString(selectText);\n }\n\n !!_searchWord && (_searchWord.onclick = () => {\n OpenSearch(selectText);\n })\n } else {\n DOMController.visible(_copyText, false);\n DOMController.visible(_searchWord, false);\n }\n\n // 打印\n const _printArticle = document.querySelector('#post.article') || null;\n const pathName = window.location.pathname;\n if (!!_printArticle) {\n DOMController.visible(_printHtml);\n DOMController.visible(_readingModel);\n\n if (_printHtml) {\n _printHtml.onclick = () => {\n if (window.location.pathname === pathName) {\n const message = '是否打印当前页面?<br><em style=\"font-size: 80%\">建议打印时勾选背景图形</em><br>';\n if (messageRightMenu) VolantisApp.question('', message, {}, () => {\n fn.printHtml();\n })\n } else {\n fn.hideMenu();\n }\n }\n }\n\n if (_readingModel) {\n _readingModel.onclick = () => {\n if (window.location.pathname === pathName) {\n fn.readingModel();\n } else {\n fn.readingModel();\n }\n }\n }\n\n } else {\n DOMController.visible(_printHtml, false);\n DOMController.visible(_readingModel, false);\n }\n\n if (volantis.GLOBAL_CONFIG.plugins.aplayer.enable\n && typeof RightMenuAplayer !== 'undefined'\n && RightMenuAplayer.APlayer.player !== undefined) {\n if (rightMenuConfig.music_alwaysShow) {\n DOMController.visible(_menuMusic);\n } else if (RightMenuAplayer.APlayer.status === 'play' || RightMenuAplayer.APlayer.status === 'undefined') {\n optionFlag = true;\n DOMController.visible(_menuMusic);\n } else {\n DOMController.visible(_menuMusic, false);\n }\n } else {\n DOMController.visible(_menuMusic, false);\n }\n\n _menuLoad.forEach(ele => {\n DOMController.visible(ele, !optionFlag);\n })\n\n if (volantis.GLOBAL_CONFIG.plugins.aplayer.enable\n && rightMenuConfig.layout.includes('music')) {\n RightMenuAplayer.checkAPlayer();\n }\n }\n\n // 隐藏菜单\n fn.hideMenu = () => {\n DOMController.visible(_rightMenuWrapper, false);\n }\n\n // 复制字符串\n fn.copyString = (str) => {\n VolantisApp.utilWriteClipText(str)\n .then(() => {\n if (messageRightMenu) {\n VolantisApp.messageCopyright();\n }\n }).catch(e => {\n if (messageRightMenu) {\n VolantisApp.message('系统提示', e, {\n icon: rightMenuConfig.faicon + ' fa-exclamation-square red'\n });\n }\n })\n }\n\n // 写入文本到剪切板\n fn.writeClipText = (str) => {\n try {\n return navigator.clipboard\n .writeText(str)\n .then(() => {\n return Promise.resolve()\n })\n .catch(err => {\n return Promise.reject(err)\n })\n } catch (e) {\n const input = document.createElement('input');\n input.setAttribute('readonly', 'readonly');\n document.body.appendChild(input);\n input.setAttribute('value', str);\n input.select();\n try {\n let result = document.execCommand('copy')\n document.body.removeChild(input);\n if (!result || result === 'unsuccessful') {\n return Promise.reject('复制文本失败!')\n } else {\n return Promise.resolve()\n }\n } catch (e) {\n document.body.removeChild(input);\n return Promise.reject(\n '当前浏览器不支持复制功能,请检查更新或更换其他浏览器操作!'\n )\n }\n }\n }\n\n // 写入图片到剪切板\n fn.writeClipImg = async function (event, success, error) {\n const eventSrc = rightMenuConfig.customPicUrl.enable ?\n event.target.currentSrc.replace(rightMenuConfig.customPicUrl.old, rightMenuConfig.customPicUrl.new) :\n event.target.currentSrc;\n const parentElement = event.target.parentElement;\n try {\n const data = await fetch(eventSrc);\n const blob = await data.blob();\n await navigator.clipboard\n .write([\n new ClipboardItem({\n [blob.type]: blob\n })\n ]).then(() => {\n success(true);\n }, (e) => {\n console.error('图片复制失败:', e);\n error(e);\n });\n } catch (e) {\n const dom = document;\n try {\n if (dom.body.createTextRange) {\n const textRange = document.body.createTextRange();\n textRange.moveToElementText(parentElement);\n textRange.select();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(parentElement);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n document.execCommand('copy');\n window.getSelection().removeAllRanges();\n success(false);\n } catch (e) {\n console.error(e);\n error('不支持复制当前图片!');\n }\n }\n }\n\n // 请求读取剪切板\n fn.readClipboard = async () => {\n const result = await navigator.permissions.query({\n name: 'clipboard-read'\n });\n if (result.state === 'granted' || result.state === 'prompt') {\n // 修改为 .read() 可以获取剪切板中的文字/图片\n // 返回的是 ClipboardItem\n return navigator.clipboard\n .readText()\n .then(text => text)\n .catch(err => Promise.reject(err));\n }\n return Promise.reject(result);\n }\n\n // 粘贴文本\n fn.insertAtCaret = (elemt, value) => {\n const startPos = elemt.selectionStart,\n endPos = elemt.selectionEnd;\n if (document.selection) {\n elemt.focus();\n var sel = document.selection.createRange();\n sel.text = value;\n elemt.focus();\n } else {\n if (startPos || startPos == '0') {\n var scrollTop = elemt.scrollTop;\n elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value.length);\n elemt.focus();\n elemt.selectionStart = startPos + value.length;\n elemt.selectionEnd = startPos + value.length;\n elemt.scrollTop = scrollTop;\n } else {\n elemt.value += value;\n elemt.focus();\n }\n }\n }\n\n // 执行打印页面\n fn.printHtml = () => {\n if (volantis.isReadModel) fn.readingModel();\n DOMController.setAttribute('details', 'open', 'true');\n DOMController.remove('.cus-article-bkg');\n DOMController.remove('.iziToast-overlay');\n DOMController.remove('.iziToast-wrapper');\n DOMController.remove('.prev-next');\n DOMController.remove('footer');\n DOMController.remove('#l_header');\n DOMController.remove('#l_cover');\n DOMController.remove('#l_side');\n DOMController.remove('#comments');\n DOMController.remove('#s-top');\n DOMController.remove('#BKG');\n DOMController.remove('#rightmenu-wrapper');\n DOMController.remove('.nav-tabs');\n DOMController.remove('.parallax-mirror');\n DOMController.remove('.new-meta-item.share');\n DOMController.remove('div.footer');\n DOMController.setStyle('body', 'backgroundColor', 'unset');\n DOMController.setStyle('#l_main', 'width', '100%');\n DOMController.setStyle('#post', 'boxShadow', 'none');\n DOMController.setStyle('#post', 'background', 'none');\n DOMController.setStyle('#post', 'padding', '0');\n DOMController.setStyle('h1', 'textAlign', 'center');\n DOMController.setStyle('h1', 'fontWeight', '600');\n DOMController.setStyle('h1', 'fontSize', '2rem');\n DOMController.setStyle('h1', 'marginBottom', '20px');\n DOMController.setStyle('.tab-pane', 'display', 'block');\n DOMController.setStyle('.tab-content', 'borderTop', 'none');\n DOMController.setStyle('.highlight>table pre', 'whiteSpace', 'pre-wrap');\n DOMController.setStyle('.highlight>table pre', 'wordBreak', 'break-all');\n DOMController.setStyle('.fancybox img', 'height', 'auto');\n DOMController.setStyle('.fancybox img', 'weight', 'auto');\n\n setTimeout(() => {\n window.print();\n document.body.innerHTML = '';\n window.location.reload();\n }, 50);\n }\n\n // 阅读模式\n fn.readingModel = () => {\n if (typeof ScrollReveal === 'function') ScrollReveal().clean('#comments');\n DOMController.fadeToggle(document.querySelector('#l_header'))\n DOMController.fadeToggle(document.querySelector('footer'))\n DOMController.fadeToggle(document.querySelector('#s-top'))\n DOMController.fadeToggle(document.querySelector('.article-meta#bottom'))\n DOMController.fadeToggle(document.querySelector('.prev-next'))\n DOMController.fadeToggle(document.querySelector('#l_side'))\n DOMController.fadeToggle(document.querySelector('#comments'))\n\n DOMController.toggleClass(document.querySelector('#l_main'), 'common_read')\n DOMController.toggleClass(document.querySelector('#l_main'), 'common_read_main')\n DOMController.toggleClass(document.querySelector('#l_body'), 'common_read')\n DOMController.toggleClass(document.querySelector('#safearea'), 'common_read')\n DOMController.toggleClass(document.querySelector('#pjax-container'), 'common_read')\n DOMController.toggleClass(document.querySelector('#read_bkg'), 'common_read_hide')\n DOMController.toggleClass(document.querySelector('h1'), 'common_read_h1')\n DOMController.toggleClass(document.querySelector('#post'), 'post_read')\n DOMController.toggleClass(document.querySelector('#l_cover'), 'read_cover')\n DOMController.toggleClass(document.querySelector('.widget.toc-wrapper'), 'post_read')\n\n volantis.isReadModel = volantis.isReadModel === undefined ? true : !volantis.isReadModel;\n if (volantis.isReadModel) {\n const option = {\n backgroundColor: 'var(--color-read-post)',\n icon: rightMenuConfig.faicon + ' fa-book-reader',\n time: 5000\n }\n if (messageRightMenu) VolantisApp.message('系统提示', '阅读模式已开启,您可以点击屏幕空白处退出。', option);\n document.querySelector('#l_body').removeEventListener('click', fn.readingModel);\n document.querySelector('#l_body').addEventListener('click', (event) => {\n if (DOMController.hasClass(event.target, 'common_read')) {\n fn.readingModel();\n }\n });\n } else {\n document.querySelector('#l_body').removeEventListener('click', fn.readingModel);\n document.querySelector('#post').removeEventListener('click', fn.readingModel);\n }\n }\n\n return {\n init: (notice = false) => {\n fn.init();\n fn.initEvent();\n if (notice && messageRightMenu) VolantisApp.message('系统提示', '自定义右键注册成功。');\n },\n destroy: (notice = false) => {\n fn.hideMenu();\n window.document.oncontextmenu = () => {\n return true\n };\n if (notice && messageRightMenu) VolantisApp.message('系统提示', '自定义右键注销成功。');\n },\n hideMenu: fn.hideMenu,\n readingModel: fn.readingModel\n }\n})()\n\nObject.freeze(RightMenu);\n\nvolantis.requestAnimationFrame(() => {\n if (document.readyState !== 'loading') {\n RightMenu.init();\n\n volantis.pjax.send(() => {\n RightMenu.hideMenu();\n })\n } else {\n document.addEventListener(\"DOMContentLoaded\", function () {\n RightMenu.init();\n\n volantis.pjax.send(() => {\n RightMenu.hideMenu();\n })\n })\n }\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/rightMenus.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","RightMenus","defaultEvent","defaultGroup","messageRightMenu","volantis","GLOBAL_CONFIG","plugins","message","enable","rightmenu","corsAnywhere","rightmenus","options","urlRegx","imgRegx","initialMenu","fun","init","pjax","send","hideMenu","isReadModel","readMode","readClipboard","_readClipboard","_callee","clipboardText","result","_context","navigator","permissions","query","t0","state","clipboard","readText","window","clipboardRead","writeClipText","text","writeText","writeClipImg","_writeClipImg","_callee2","link","success","image","_context2","Image","crossOrigin","addEventListener","canvas","document","createElement","context","getContext","width","height","drawImage","toBlob","blob","write","ClipboardItem","src","concat","_x","_x2","_x3","insertAtCaret","elemt","startPos","selectionStart","endPos","selectionEnd","selection","focus","createRange","scrollTop","substring","rightMenuConfig","_rightMenuWrapper","getElementById","_rightMenuContent","_rightMenuList","querySelectorAll","_rightMenuListWithHr","_readBkg","_menuMusic","_backward","querySelector","_toggle","_forward","globalData","mouseEvent","isInputBox","selectText","inputValue","isLink","linkUrl","isMediaLink","mediaLinkUrl","isImage","isArticle","pathName","isReadClipboard","isShowMusic","statusCheck","globalDataBackup","assign","initEvent","elementAppend","contextmenu","menuEvent","parentNode","removeChild","readBkg","className","id","body","appendChild","menuPosition","event","mouseClientX","clientX","mouseClientY","clientY","screenWidth","documentElement","clientWidth","screenHeight","clientHeight","style","display","menuControl","menuWidth","offsetWidth","menuHeight","offsetHeight","showLeft","showTop","left","top","notice","menuNotic","console","globalDataSet","item","nodeName","firstElementChild","groupName","getAttribute","itemEvent","articleShowLink","every","start","elementHrItem","hide","nextElementSibling","_volantis$GLOBAL_CONF","getSelection","toString","target","tagName","toLowerCase","href","test","currentSrc","location","pathname","aplayer","RightMenuAplayer","APlayer","player","musicAlwaysShow","status","oncontextmenu","ctrlKey","stopPropagation","preventDefault","removeEventListener","eventName","RightMenusFunction","debug","VolantisApp","icon","iconPrefix","time","onclick","aplayerBackward","aplayerToggle","aplayerForward","NoticeRightMenu","localStorage","getItem","displayMode","setItem","copyText","utilWriteClipText","messageCopyright","copyLink","copyAll","select","copyPaste","_callee3","_context3","copyCut","statrPos","inputStr","copyImg","hideMessage","printMode","question","printHtml","DOMController","setAttribute","removeList","setStyleList","setTimeout","print","innerHTML","reload","ScrollReveal","clean","fadeToggleList","toggleClassList","setStyle","backgroundColor","hasClass","freeze","requestAnimationFrame","readyState"],"mappings":"AAAA,aAEA,SAASA,QAAQC,GAAgC,OAAOD,QAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,QAAQC,EAAI,CAC7T,SAASK,sBAFTA,oBAAA,WAAA,OAAAC,CAAA,EAAA,IAAAC,EAAAD,EAAA,CAAA,EAAAE,EAAAC,OAAAL,UAAAM,EAAAF,EAAAG,eAAAX,EAAAS,OAAAG,gBAAA,SAAAL,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAAK,KAAA,EAAAC,EAAA,mBAAAb,OAAAA,OAAA,CAAA,EAAAc,EAAAD,EAAAZ,UAAA,aAAAc,EAAAF,EAAAG,eAAA,kBAAAC,EAAAJ,EAAAK,aAAA,gBAAA,SAAAC,EAAAb,EAAAD,EAAAE,GAAA,OAAAC,OAAAG,eAAAL,EAAAD,EAAA,CAAAO,MAAAL,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAAD,EAAA,CAAA,IAAAc,EAAA,CAAA,EAAA,GAAA,CAAA,MAAAb,GAAAa,EAAA,SAAAb,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,CAAA,CAAA,CAAA,SAAAgB,EAAAjB,EAAAD,EAAAE,EAAAE,GAAA,IAAAI,EAAAR,GAAAA,EAAAF,qBAAAqB,EAAAnB,EAAAmB,EAAAV,EAAAN,OAAAiB,OAAAZ,EAAAV,WAAAY,EAAA,IAAAW,EAAAjB,GAAA,IAAA,OAAAV,EAAAe,EAAA,UAAA,CAAAF,MAAAe,EAAArB,EAAAC,EAAAQ,KAAAD,CAAA,CAAA,SAAAc,EAAAtB,EAAAD,EAAAE,GAAA,IAAA,MAAA,CAAAsB,KAAA,SAAAC,IAAAxB,EAAAyB,KAAA1B,EAAAE,GAAA,CAAA,MAAAD,GAAA,MAAA,CAAAuB,KAAA,QAAAC,IAAAxB,EAAA,CAAA,CAAAD,EAAAkB,KAAAA,EAAA,IAAAS,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,CAAA,EAAA,SAAAZ,IAAA,CAAA,SAAAa,IAAA,CAAA,SAAAC,IAAA,CAAA,IAAAC,EAAA,CAAA,EAAApB,EAAAoB,EAAAzB,GAAA,WAAA,OAAA0B,IAAA,IAAA,IAAAC,EAAAjC,OAAAkC,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAApC,GAAAE,EAAAsB,KAAAY,EAAA7B,KAAAyB,EAAAI,GAAA,IAAAE,EAAAP,EAAAnC,UAAAqB,EAAArB,UAAAK,OAAAiB,OAAAc,GAAA,SAAAO,EAAAxC,GAAA,CAAA,OAAA,QAAA,UAAAyC,SAAA,SAAA1C,GAAAc,EAAAb,EAAAD,GAAA,SAAAC,GAAA,OAAAkC,KAAAQ,QAAA3C,EAAAC,EAAA,GAAA,GAAA,CAAA,SAAA2C,EAAA3C,EAAAD,GAAA,SAAA6C,EAAA3C,EAAAR,EAAAc,EAAAC,GAAA,IAAAC,EAAAa,EAAAtB,EAAAC,GAAAD,EAAAP,GAAA,GAAA,UAAAgB,EAAAc,KAAA,CAAA,IAAAZ,EAAAF,EAAAe,IAAAE,EAAAf,EAAAL,MAAA,OAAAoB,GAAA,UAAAlC,QAAAkC,IAAAvB,EAAAsB,KAAAC,EAAA,WAAA3B,EAAA8C,QAAAnB,EAAAoB,SAAAC,MAAA,SAAA/C,GAAA4C,EAAA,OAAA5C,EAAAO,EAAAC,EAAA,IAAA,SAAAR,GAAA4C,EAAA,QAAA5C,EAAAO,EAAAC,EAAA,IAAAT,EAAA8C,QAAAnB,GAAAqB,MAAA,SAAA/C,GAAAW,EAAAL,MAAAN,EAAAO,EAAAI,EAAA,IAAA,SAAAX,GAAA,OAAA4C,EAAA,QAAA5C,EAAAO,EAAAC,EAAA,GAAA,CAAAA,EAAAC,EAAAe,IAAA,CAAA,IAAAvB,EAAAR,EAAAyC,KAAA,UAAA,CAAA5B,MAAA,SAAAN,EAAAG,GAAA,SAAA6C,IAAA,OAAA,IAAAjD,GAAA,SAAAA,EAAAE,GAAA2C,EAAA5C,EAAAG,EAAAJ,EAAAE,EAAA,GAAA,CAAA,OAAAA,EAAAA,EAAAA,EAAA8C,KAAAC,EAAAA,GAAAA,GAAA,GAAA,CAAA,SAAA3B,EAAAtB,EAAAE,EAAAE,GAAA,IAAAV,EAAAiC,EAAA,OAAA,SAAAnB,EAAAC,GAAA,GAAAf,IAAAmC,EAAA,MAAA,IAAAqB,MAAA,gCAAA,GAAAxD,IAAAoC,EAAA,CAAA,GAAA,UAAAtB,EAAA,MAAAC,EAAA,MAAA,CAAAF,MAAAN,EAAAkD,MAAA,EAAA,CAAA,IAAA/C,EAAAgD,OAAA5C,EAAAJ,EAAAqB,IAAAhB,IAAA,CAAA,IAAAC,EAAAN,EAAAiD,SAAA,GAAA3C,EAAA,CAAA,IAAAE,EAAA0C,EAAA5C,EAAAN,GAAA,GAAAQ,EAAA,CAAA,GAAAA,IAAAmB,EAAA,SAAA,OAAAnB,CAAA,CAAA,CAAA,GAAA,SAAAR,EAAAgD,OAAAhD,EAAAmD,KAAAnD,EAAAoD,MAAApD,EAAAqB,SAAA,GAAA,UAAArB,EAAAgD,OAAA,CAAA,GAAA1D,IAAAiC,EAAA,MAAAjC,EAAAoC,EAAA1B,EAAAqB,IAAArB,EAAAqD,kBAAArD,EAAAqB,IAAA,KAAA,WAAArB,EAAAgD,QAAAhD,EAAAsD,OAAA,SAAAtD,EAAAqB,KAAA/B,EAAAmC,EAAA,IAAAK,EAAAX,EAAAvB,EAAAE,EAAAE,GAAA,GAAA,WAAA8B,EAAAV,KAAA,CAAA,GAAA9B,EAAAU,EAAA+C,KAAArB,EAAAF,EAAAM,EAAAT,MAAAM,EAAA,SAAA,MAAA,CAAAxB,MAAA2B,EAAAT,IAAA0B,KAAA/C,EAAA+C,KAAA,CAAA,UAAAjB,EAAAV,OAAA9B,EAAAoC,EAAA1B,EAAAgD,OAAA,QAAAhD,EAAAqB,IAAAS,EAAAT,IAAA,CAAA,CAAA,CAAA,SAAA6B,EAAAtD,EAAAE,GAAA,IAAAE,EAAAF,EAAAkD,OAAA1D,EAAAM,EAAAJ,SAAAQ,GAAA,GAAAV,IAAAO,EAAA,OAAAC,EAAAmD,SAAA,KAAA,UAAAjD,GAAAJ,EAAAJ,SAAA,YAAAM,EAAAkD,OAAA,SAAAlD,EAAAuB,IAAAxB,EAAAqD,EAAAtD,EAAAE,GAAA,UAAAA,EAAAkD,SAAA,WAAAhD,IAAAF,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAA,IAAAkC,UAAA,oCAAAvD,EAAA,aAAA2B,EAAA,IAAAvB,EAAAe,EAAA7B,EAAAM,EAAAJ,SAAAM,EAAAuB,KAAA,GAAA,UAAAjB,EAAAgB,KAAA,OAAAtB,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAAjB,EAAAiB,IAAAvB,EAAAmD,SAAA,KAAAtB,EAAA,IAAAtB,EAAAD,EAAAiB,IAAA,OAAAhB,EAAAA,EAAA0C,MAAAjD,EAAAF,EAAA4D,YAAAnD,EAAAF,MAAAL,EAAA2D,KAAA7D,EAAA8D,QAAA,WAAA5D,EAAAkD,SAAAlD,EAAAkD,OAAA,OAAAlD,EAAAuB,IAAAxB,GAAAC,EAAAmD,SAAA,KAAAtB,GAAAtB,GAAAP,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAA,IAAAkC,UAAA,oCAAAzD,EAAAmD,SAAA,KAAAtB,EAAA,CAAA,SAAAgC,EAAA9D,GAAA,IAAAD,EAAA,CAAAgE,OAAA/D,EAAA,IAAA,KAAAA,IAAAD,EAAAiE,SAAAhE,EAAA,IAAA,KAAAA,IAAAD,EAAAkE,WAAAjE,EAAA,GAAAD,EAAAmE,SAAAlE,EAAA,IAAAkC,KAAAiC,WAAAC,KAAArE,EAAA,CAAA,SAAAsE,EAAArE,GAAA,IAAAD,EAAAC,EAAAsE,YAAA,CAAA,EAAAvE,EAAAwB,KAAA,gBAAAxB,EAAAyB,IAAAxB,EAAAsE,WAAAvE,CAAA,CAAA,SAAAqB,EAAApB,GAAAkC,KAAAiC,WAAA,CAAA,CAAAJ,OAAA,SAAA/D,EAAAyC,QAAAqB,EAAA5B,MAAAA,KAAAqC,OAAA,EAAA,CAAA,SAAAjC,EAAAvC,GAAA,GAAAA,GAAA,KAAAA,EAAA,CAAA,IAAAE,EAAAF,EAAAS,GAAA,GAAAP,EAAA,OAAAA,EAAAwB,KAAA1B,GAAA,GAAA,mBAAAA,EAAA6D,KAAA,OAAA7D,EAAA,IAAAyE,MAAAzE,EAAA0E,QAAA,CAAA,IAAAhF,GAAA,EAAAc,EAAA,SAAAqD,IAAA,OAAAnE,EAAAM,EAAA0E,QAAA,GAAAtE,EAAAsB,KAAA1B,EAAAN,GAAA,OAAAmE,EAAAtD,MAAAP,EAAAN,GAAAmE,EAAAV,MAAA,EAAAU,EAAA,OAAAA,EAAAtD,MAAAN,EAAA4D,EAAAV,MAAA,EAAAU,CAAA,EAAA,OAAArD,EAAAqD,KAAArD,CAAA,CAAA,CAAA,MAAA,IAAAmD,UAAAlE,QAAAO,GAAA,mBAAA,CAAA,OAAAgC,EAAAlC,UAAAmC,EAAAvC,EAAA8C,EAAA,cAAA,CAAAjC,MAAA0B,EAAAjB,cAAA,IAAAtB,EAAAuC,EAAA,cAAA,CAAA1B,MAAAyB,EAAAhB,cAAA,IAAAgB,EAAA2C,YAAA7D,EAAAmB,EAAArB,EAAA,qBAAAZ,EAAA4E,oBAAA,SAAA3E,GAAA,IAAAD,EAAA,mBAAAC,GAAAA,EAAAJ,YAAA,QAAAG,IAAAA,IAAAgC,GAAA,uBAAAhC,EAAA2E,aAAA3E,EAAA6E,MAAA,EAAA7E,EAAA8E,KAAA,SAAA7E,GAAA,OAAAE,OAAA4E,eAAA5E,OAAA4E,eAAA9E,EAAAgC,IAAAhC,EAAA+E,UAAA/C,EAAAnB,EAAAb,EAAAW,EAAA,sBAAAX,EAAAH,UAAAK,OAAAiB,OAAAoB,GAAAvC,CAAA,EAAAD,EAAAiF,MAAA,SAAAhF,GAAA,MAAA,CAAA8C,QAAA9C,EAAA,EAAAwC,EAAAG,EAAA9C,WAAAgB,EAAA8B,EAAA9C,UAAAY,GAAA,WAAA,OAAAyB,IAAA,IAAAnC,EAAA4C,cAAAA,EAAA5C,EAAAkF,MAAA,SAAAjF,EAAAC,EAAAE,EAAAV,EAAAc,QAAA,IAAAA,IAAAA,EAAA2E,SAAA,IAAA1E,EAAA,IAAAmC,EAAA1B,EAAAjB,EAAAC,EAAAE,EAAAV,GAAAc,GAAA,OAAAR,EAAA4E,oBAAA1E,GAAAO,EAAAA,EAAAoD,OAAAb,MAAA,SAAA/C,GAAA,OAAAA,EAAAkD,KAAAlD,EAAAM,MAAAE,EAAAoD,MAAA,GAAA,EAAApB,EAAAD,GAAA1B,EAAA0B,EAAA5B,EAAA,aAAAE,EAAA0B,EAAA/B,GAAA,WAAA,OAAA0B,IAAA,IAAArB,EAAA0B,EAAA,YAAA,WAAA,MAAA,oBAAA,IAAAxC,EAAAoF,KAAA,SAAAnF,GAAA,IAAAD,EAAAG,OAAAF,GAAAC,EAAA,GAAA,IAAA,IAAAE,KAAAJ,EAAAE,EAAAmE,KAAAjE,GAAA,OAAAF,EAAAmF,UAAA,SAAAxB,IAAA,KAAA3D,EAAAwE,QAAA,CAAA,IAAAzE,EAAAC,EAAAoF,MAAA,GAAArF,KAAAD,EAAA,OAAA6D,EAAAtD,MAAAN,EAAA4D,EAAAV,MAAA,EAAAU,CAAA,CAAA,OAAAA,EAAAV,MAAA,EAAAU,CAAA,CAAA,EAAA7D,EAAAuC,OAAAA,EAAAlB,EAAAvB,UAAA,CAAAD,YAAAwB,EAAAmD,MAAA,SAAAxE,GAAA,GAAAmC,KAAAoD,KAAA,EAAApD,KAAA0B,KAAA,EAAA1B,KAAAoB,KAAApB,KAAAqB,MAAAvD,EAAAkC,KAAAgB,MAAA,EAAAhB,KAAAkB,SAAA,KAAAlB,KAAAiB,OAAA,OAAAjB,KAAAV,IAAAxB,EAAAkC,KAAAiC,WAAA1B,QAAA4B,IAAAtE,EAAA,IAAA,IAAAE,KAAAiC,KAAA,MAAAjC,EAAAsF,OAAA,IAAApF,EAAAsB,KAAAS,KAAAjC,KAAAuE,OAAAvE,EAAAuF,MAAA,MAAAtD,KAAAjC,GAAAD,EAAA,EAAAyF,KAAA,WAAAvD,KAAAgB,MAAA,EAAA,IAAAlD,EAAAkC,KAAAiC,WAAA,GAAAG,WAAA,GAAA,UAAAtE,EAAAuB,KAAA,MAAAvB,EAAAwB,IAAA,OAAAU,KAAAwD,IAAA,EAAAlC,kBAAA,SAAAzD,GAAA,GAAAmC,KAAAgB,KAAA,MAAAnD,EAAA,IAAAE,EAAAiC,KAAA,SAAAyD,EAAAxF,EAAAV,GAAA,OAAAe,EAAAe,KAAA,QAAAf,EAAAgB,IAAAzB,EAAAE,EAAA2D,KAAAzD,EAAAV,IAAAQ,EAAAkD,OAAA,OAAAlD,EAAAuB,IAAAxB,KAAAP,CAAA,CAAA,IAAA,IAAAA,EAAAyC,KAAAiC,WAAAM,OAAA,EAAAhF,GAAA,IAAAA,EAAA,CAAA,IAAAc,EAAA2B,KAAAiC,WAAA1E,GAAAe,EAAAD,EAAA+D,WAAA,GAAA,SAAA/D,EAAAwD,OAAA,OAAA4B,EAAA,OAAA,GAAApF,EAAAwD,QAAA7B,KAAAoD,KAAA,CAAA,IAAA7E,EAAAN,EAAAsB,KAAAlB,EAAA,YAAAI,EAAAR,EAAAsB,KAAAlB,EAAA,cAAA,GAAAE,GAAAE,EAAA,CAAA,GAAAuB,KAAAoD,KAAA/E,EAAAyD,SAAA,OAAA2B,EAAApF,EAAAyD,UAAA,GAAA,GAAA9B,KAAAoD,KAAA/E,EAAA0D,WAAA,OAAA0B,EAAApF,EAAA0D,WAAA,MAAA,GAAAxD,GAAA,GAAAyB,KAAAoD,KAAA/E,EAAAyD,SAAA,OAAA2B,EAAApF,EAAAyD,UAAA,OAAA,CAAA,IAAArD,EAAA,MAAA,IAAAsC,MAAA,0CAAA,GAAAf,KAAAoD,KAAA/E,EAAA0D,WAAA,OAAA0B,EAAApF,EAAA0D,WAAA,CAAA,CAAA,CAAA,EAAAR,OAAA,SAAAzD,EAAAD,GAAA,IAAA,IAAAE,EAAAiC,KAAAiC,WAAAM,OAAA,EAAAxE,GAAA,IAAAA,EAAA,CAAA,IAAAR,EAAAyC,KAAAiC,WAAAlE,GAAA,GAAAR,EAAAsE,QAAA7B,KAAAoD,MAAAnF,EAAAsB,KAAAhC,EAAA,eAAAyC,KAAAoD,KAAA7F,EAAAwE,WAAA,CAAA,IAAA1D,EAAAd,EAAA,KAAA,CAAA,CAAAc,IAAA,UAAAP,GAAA,aAAAA,IAAAO,EAAAwD,QAAAhE,GAAAA,GAAAQ,EAAA0D,aAAA1D,EAAA,MAAA,IAAAC,EAAAD,EAAAA,EAAA+D,WAAA,CAAA,EAAA,OAAA9D,EAAAe,KAAAvB,EAAAQ,EAAAgB,IAAAzB,EAAAQ,GAAA2B,KAAAiB,OAAA,OAAAjB,KAAA0B,KAAArD,EAAA0D,WAAAnC,GAAAI,KAAA0D,SAAApF,EAAA,EAAAoF,SAAA,SAAA5F,EAAAD,GAAA,GAAA,UAAAC,EAAAuB,KAAA,MAAAvB,EAAAwB,IAAA,MAAA,UAAAxB,EAAAuB,MAAA,aAAAvB,EAAAuB,KAAAW,KAAA0B,KAAA5D,EAAAwB,IAAA,WAAAxB,EAAAuB,MAAAW,KAAAwD,KAAAxD,KAAAV,IAAAxB,EAAAwB,IAAAU,KAAAiB,OAAA,SAAAjB,KAAA0B,KAAA,OAAA,WAAA5D,EAAAuB,MAAAxB,IAAAmC,KAAA0B,KAAA7D,GAAA+B,CAAA,EAAA+D,OAAA,SAAA7F,GAAA,IAAA,IAAAD,EAAAmC,KAAAiC,WAAAM,OAAA,EAAA1E,GAAA,IAAAA,EAAA,CAAA,IAAAE,EAAAiC,KAAAiC,WAAApE,GAAA,GAAAE,EAAAgE,aAAAjE,EAAA,OAAAkC,KAAA0D,SAAA3F,EAAAqE,WAAArE,EAAAiE,UAAAG,EAAApE,GAAA6B,CAAA,CAAA,EAAAgE,QAAA,SAAA9F,GAAA,IAAA,IAAAD,EAAAmC,KAAAiC,WAAAM,OAAA,EAAA1E,GAAA,IAAAA,EAAA,CAAA,IAAAE,EAAAiC,KAAAiC,WAAApE,GAAA,GAAAE,EAAA8D,SAAA/D,EAAA,CAAA,IAAAG,EAAAF,EAAAqE,WAAA,GAAA,UAAAnE,EAAAoB,KAAA,CAAA,IAAA9B,EAAAU,EAAAqB,IAAA6C,EAAApE,EAAA,CAAA,OAAAR,CAAA,CAAA,CAAA,MAAA,IAAAwD,MAAA,wBAAA,EAAA8C,cAAA,SAAAhG,EAAAE,EAAAE,GAAA,OAAA+B,KAAAkB,SAAA,CAAAzD,SAAA2C,EAAAvC,GAAA4D,WAAA1D,EAAA4D,QAAA1D,GAAA,SAAA+B,KAAAiB,SAAAjB,KAAAV,IAAAxB,GAAA8B,CAAA,GAAA/B,CAAA,CAAA,SAAAiG,mBAAAC,EAAApD,EAAAqD,EAAAC,EAAAC,EAAAC,EAAA7E,GAAA,IAAA,IAAA8E,EAAAL,EAAAI,GAAA7E,GAAAlB,EAAAgG,EAAAhG,KAAA,CAAA,MAAAiG,GAAA,YAAAL,EAAAK,EAAA,CAAAD,EAAApD,KAAAL,EAAAvC,GAAA4E,QAAArC,QAAAvC,GAAAyC,KAAAoD,EAAAC,EAAA,CAAA,SAAAI,kBAAAC,GAAA,OAAA,WAAA,IAAAC,EAAAxE,KAAAyE,EAAAC,UAAA,OAAA,IAAA1B,SAAA,SAAArC,EAAAqD,GAAA,IAAAD,EAAAQ,EAAAI,MAAAH,EAAAC,GAAA,SAAAR,EAAA7F,GAAA0F,mBAAAC,EAAApD,EAAAqD,EAAAC,EAAAC,EAAA,OAAA9F,EAAA,CAAA,SAAA8F,EAAAU,GAAAd,mBAAAC,EAAApD,EAAAqD,EAAAC,EAAAC,EAAA,QAAAU,EAAA,CAAAX,EAAAY,UAAA,GAAA,CAAA,CAAA,IAAMC,WAAa,CACjBC,aAAc,CAAC,WAAY,WAAY,YAAa,UAAW,UAAW,UAAW,YAAa,YAClGC,aAAc,CAAC,aAAc,WAAY,cAAe,eAAgB,eAAgB,eACxFC,iBAAkBC,SAASC,cAAcC,QAAQC,QAAQC,QAAUJ,SAASC,cAAcC,QAAQC,QAAQE,UAAUD,OACpHE,aAAcN,SAASC,cAAcC,QAAQK,WAAWC,QAAQF,aAChEG,QAAS,wFACTC,QAAS,mDAKTC,YAAa,WACXf,WAAWgB,IAAIC,OACfb,SAASc,KAAKC,MAAK,WACjBnB,WAAWgB,IAAII,WACXhB,SAASiB,aAAarB,WAAWgB,IAAIM,UAC3C,GACF,EAMAC,cAAa,WAAA,IAAAC,EAAAhC,kBAAA1G,sBAAA+E,MAAE,SAAA4D,IAAA,IAAAC,EAAAC,EAAA,OAAA7I,sBAAAmB,MAAA,SAAA2H,GAAA,cAAAA,EAAAtD,KAAAsD,EAAAhF,MAAA,KAAA,EAAA,OAAAgF,EAAAhF,KAAA,EAEQiF,UAAUC,YAAYC,MAAM,CAAEnE,KAAM,mBAAmB,KAAA,EAAtE+D,EAAMC,EAAAtF,KAAAsF,EAAAI,GACJL,EAAOM,MAAKL,EAAAhF,KACb,YADagF,EAAAI,IAEb,WADSJ,EAAAI,GAAA,EACD,GAAA,MAAA,KAAA,EAAA,OAAAJ,EAAAhF,KAAA,EACWiF,UAAUK,UAAUC,WAAU,KAAA,EAAvC,OAAbT,EAAaE,EAAAtF,KAAAsF,EAAAnF,OAAA,QAAA,IAAA,KAAA,GAGgB,OAA7B2F,OAAOC,eAAgB,EAAMT,EAAAnF,OAAA,QAAA,IAAA,KAAA,GAAA,OAAAmF,EAAAnF,OAAA,SAG1BiF,GAAa,KAAA,GAAA,IAAA,MAAA,OAAAE,EAAAnD,OAAA,GAAAgD,EAAA,KACrB,OAAA,WAAA,OAAAD,EAAA3B,MAAA3E,KAAA0E,UAAA,CAAA,CAbY,GAmBb0C,cAAe,SAAAC,GACb,OAAOV,UAAUK,UACdM,UAAUD,GACVxG,MAAK,WACJ,OAAOmC,QAAQrC,SACjB,IAAE,UACK,SAAAiE,GACL,OAAO5B,QAAQgB,OAAOY,EACxB,GACJ,EAQA2C,aAAY,WAAA,IAAAC,EAAAlD,kBAAA1G,sBAAA+E,MAAE,SAAA8E,EAAOC,EAAMC,EAAStD,GAAK,IAAAuD,EAAA,OAAAhK,sBAAAmB,MAAA,SAAA8I,GAAA,cAAAA,EAAAzE,KAAAyE,EAAAnG,MAAA,KAAA,GACjCkG,EAAQ,IAAIE,OACZC,YAAc,YACpBH,EAAMI,iBAAiB,QAAQ,WAC7B,IAAIC,EAASC,SAASC,cAAc,UAChCC,EAAUH,EAAOI,WAAW,MAChCJ,EAAOK,MAAQV,EAAMU,MACrBL,EAAOM,OAASX,EAAMW,OACtBH,EAAQI,UAAUZ,EAAO,EAAG,GAC5BK,EAAOQ,QAAO,SAAAC,GACZ/B,UAAUK,UAAU2B,MAAM,CACxB,IAAIC,cAAc,CAAE,YAAaF,MAChC7H,MAAK,SAAAhD,GACN8J,EAAQ9J,EACV,IAAE,UAAO,SAAAA,GACPwG,EAAMxG,EACR,GACF,GAAG,YACL,IAAG,GACH+J,EAAMiB,IAAG,GAAAC,OAAMpB,EAAI,aAAY,KAAA,EAAA,IAAA,MAAA,OAAAG,EAAAtE,OAAA,GAAAkE,EAAA,KAChC,OAAA,SAAAsB,EAAAC,EAAAC,GAAA,OAAAzB,EAAA7C,MAAA3E,KAAA0E,UAAA,CAAA,CApBW,GA2BZwE,cAAe,SAACC,EAAO/K,GACrB,IAAMgL,EAAWD,EAAME,eACrBC,EAASH,EAAMI,aACjB,GAAIrB,SAASsB,UACXL,EAAMM,QACIvB,SAASsB,UAAUE,cACzBrC,KAAOjJ,EACX+K,EAAMM,aAEN,GAAIL,GAAwB,KAAZA,EAAiB,CAC/B,IAAIO,EAAYR,EAAMQ,UACtBR,EAAM/K,MAAQ+K,EAAM/K,MAAMwL,UAAU,EAAGR,GAAYhL,EAAQ+K,EAAM/K,MAAMwL,UAAUN,EAAQH,EAAM/K,MAAMmE,QACrG4G,EAAMM,QACNN,EAAME,eAAiBD,EAAWhL,EAAMmE,OACxC4G,EAAMI,aAAeH,EAAWhL,EAAMmE,OACtC4G,EAAMQ,UAAYA,CACpB,MACER,EAAM/K,OAASA,EACf+K,EAAMM,OAGZ,GAMF3E,WAAWgB,IAAO,WAChB,IAAM+D,EAAkB3E,SAASC,cAAcC,QAAQK,WAGrDlB,EAAK,CAAC,EACNuF,EAAoB5B,SAAS6B,eAAe,qBAC5CC,EAAoB9B,SAAS6B,eAAe,qBAC5CE,EAAiB/B,SAASgC,iBAAiB,0CAC3CC,EAAuBjC,SAASgC,iBAAiB,4DACjDE,EAAWlC,SAAS6B,eAAe,YACnCM,EAAanC,SAAS6B,eAAe,aACrCO,EAAYpC,SAASqC,cAAc,wBACnCC,EAAUtC,SAASqC,cAAc,sBACjCE,EAAWvC,SAASqC,cAAc,uBAGhCG,EAAa,CACfC,WAAY,KACZC,YAAY,EACZC,WAAY,GACZC,WAAY,GACZC,QAAQ,EACRC,QAAS,GACTC,aAAa,EACbC,aAAc,GACdC,SAAS,EACTC,WAAW,EACXC,SAAU,GACVC,iBAAiB,EACjBC,aAAa,EACbC,aAAa,GAETC,EAAmBzN,OAAO0N,OAAO,CAAC,EAAGhB,GAuc3C,OAlcAnG,EAAGoH,UAAY,WACbpH,EAAGqH,gBACHrH,EAAGsH,cACHtH,EAAGuH,WACL,EAKAvH,EAAGqH,cAAgB,WAEbxB,GAAUA,EAAS2B,WAAWC,YAAY5B,GAC9C,IAAM6B,EAAU/D,SAASC,cAAc,OACvC8D,EAAQC,UAAY,mCACpBD,EAAQE,GAAK,WACbjF,OAAOgB,SAASkE,KAAKC,YAAYJ,EACnC,EAMA1H,EAAG+H,aAAe,SAACC,GACjB,IACE,IAAIC,EAAeD,EAAME,QACrBC,EAAeH,EAAMI,QACrBC,EAAc1E,SAAS2E,gBAAgBC,aAAe5E,SAASkE,KAAKU,YACpEC,EAAe7E,SAAS2E,gBAAgBG,cAAgB9E,SAASkE,KAAKY,aAE1ElD,EAAkBmD,MAAMC,QAAU,QAClC3I,EAAG4I,YAAYZ,GAEf,IAAIa,EAAYpD,EAAkBqD,YAC9BC,EAAatD,EAAkBuD,aAC/BC,EAAWhB,EAAeY,EAAYR,EAAcJ,EAAeY,EAAY,GAAKZ,EACpFiB,EAAUf,EAAeY,EAAaP,EAAeL,EAAeY,EAAa,GAAKZ,EAC1Fe,EAAUf,EAAeY,EAAaP,GAAgBU,EAAUH,GAAcZ,EAAeY,EAC3FG,GAAWV,EAAeO,EAAaG,EAAU,IAAMA,EACzD3D,EAAkBmD,MAAMS,KAAI,GAAA5E,OAAM0E,EAAQ,MAC1C1D,EAAkBmD,MAAMU,IAAG,GAAA7E,OAAM2E,EAAO,MACpCvI,SAASC,cAAcC,QAAQC,QAAQE,UAAUqI,QAAQrJ,EAAGsJ,WAClE,CAAE,MAAOxJ,GAGP,OAFAyJ,QAAQzJ,MAAMA,GACdE,EAAG2B,YACI,CACT,CACA,OAAO,CACT,EAMA3B,EAAG4I,YAAc,SAACZ,GAChBhI,EAAGwJ,cAAcxB,GACXlC,IAAYA,EAAW4C,MAAMC,QAAUxC,EAAWa,YAAc,QAAU,QAChFtB,EAAe1J,SAAQ,SAAAyN,GACrBA,EAAKf,MAAMC,QAAU,OACrB,IAAMe,EAAWD,EAAKE,kBAAkBD,SAClCE,EAAYH,EAAKE,kBAAkBE,aAAa,cAChDC,EAAYL,EAAKE,kBAAkBE,aAAa,cACtD,GAAI1D,EAAWc,aAAed,EAAWU,UACvC,OAAQ+C,GACN,IAAK,WACCzD,EAAWE,aACboD,EAAKf,MAAMC,QAAU,QACH,YAAdmB,GAA4B3D,EAAWG,aAAYmD,EAAKf,MAAMC,QAAU,QAC1D,YAAdmB,GAA4B3D,EAAWI,aAAYkD,EAAKf,MAAMC,QAAU,QAC1D,cAAdmB,GAA8B3D,EAAWY,kBAAiB0C,EAAKf,MAAMC,QAAU,SAErF,MACF,IAAK,cACGxC,EAAWG,aAAYmD,EAAKf,MAAMC,QAAU,SAClD,MACF,IAAK,gBACCxC,EAAWK,QAAUL,EAAWO,eAAa+C,EAAKf,MAAMC,QAAU,SACtE,MACF,IAAK,eACCxC,EAAWS,UAAS6C,EAAKf,MAAMC,QAAU,SAC7C,MACF,IAAK,cACCxC,EAAWU,YAAW4C,EAAKf,MAAMC,QAAU,SAC/C,MACF,QACEc,EAAKf,MAAMC,QAAuB,MAAbe,EACjBvD,EAAWU,YAAcV,EAAWc,aAAe3B,EAAgBnE,QAAQ4I,gBACzE,QACA,OACF,aAGc,MAAbL,GAAoBnJ,WAAWE,aAAauJ,OAAM,SAAAP,GAAU,OAAOG,IAAcH,CAAK,OAC/FA,EAAKf,MAAMC,QAAU,QAEzB,IAGAhI,SAASyF,WAAa4B,EACtBrH,SAASK,UAAUtE,OAAOwC,OAAO+K,QAGjC,IAAIC,EAAgB,CAAET,KAAM,KAAMU,MAAM,GACxCvE,EAAqB5J,SAAQ,SAACyN,GAC5B,GAAsB,OAAlBA,EAAKC,SAAmB,CAE1B,GADAD,EAAKf,MAAMC,QAAU,SAChBuB,EAAcT,KAEjB,YADAS,EAAcT,KAAOA,IAGnBS,EAAcC,MAA2D,OAAnDD,EAAcT,KAAKW,mBAAmBV,YAC9DQ,EAAcT,KAAKf,MAAMC,QAAU,QAErCuB,EAAcT,KAAOA,EACrBS,EAAcC,MAAO,CACvB,KAC6B,UAAvBV,EAAKf,MAAMC,SAAuBuB,EAAcC,OAClDD,EAAcC,MAAO,EAG3B,IACMD,EAAcT,MAAQS,EAAcC,OAAMD,EAAcT,KAAKf,MAAMC,QAAU,OACrF,EAMA3I,EAAGwJ,cAAgB,SAACxB,GAAU,IAAAqC,GAC5BlE,EAAa1M,OAAO0N,OAAO,CAAC,EAAGD,IACpBd,WAAa4B,EACxB7B,EAAWG,WAAa3D,OAAO2H,eAAeC,WAGH,UAAvCvC,EAAMwC,OAAOC,QAAQC,eAAoE,aAAvC1C,EAAMwC,OAAOC,QAAQC,gBACzEvE,EAAWE,YAAa,EACxBF,EAAWI,WAAayB,EAAMwC,OAAO3Q,OAInCsM,EAAWE,aAAuC,IAAzB1D,OAAOC,gBAClCuD,EAAWY,iBAAkB,GAIzBiB,EAAMwC,OAAOG,MAAQpK,WAAWa,QAAQwJ,KAAK5C,EAAMwC,OAAOG,QAC9DxE,EAAWK,QAAS,EACpBL,EAAWM,QAAUuB,EAAMwC,OAAOG,MAI9B3C,EAAMwC,OAAOK,YAActK,WAAWa,QAAQwJ,KAAK5C,EAAMwC,OAAOK,cACpE1E,EAAWO,aAAc,EACzBP,EAAWQ,aAAeqB,EAAMwC,OAAOK,YAIrC1E,EAAWO,aAAenG,WAAWc,QAAQuJ,KAAKzE,EAAWQ,gBAC/DR,EAAWS,SAAU,GAIhBjD,SAASqC,cAAc,mBAC5BG,EAAWU,WAAY,EACvBV,EAAWW,SAAWnE,OAAOmI,SAASC,UAIE,QAAtCV,EAAA1J,SAASC,cAAcC,QAAQmK,eAAO,IAAAX,GAAtCA,EAAwCtJ,QACX,oBAArBkK,kBACPA,iBAAiBC,QAAQC,SAAW7K,YACnCgF,EAAgBnE,QAAQiK,iBACa,SAApCH,iBAAiBC,QAAQG,QACW,cAApCJ,iBAAiBC,QAAQG,UAC5BlF,EAAWa,aAAc,IAKvBb,EAAWG,YAAcH,EAAWE,YAAcF,EAAWK,QAAUL,EAAWO,eACtFP,EAAWc,aAAc,EAE7B,EAKAjH,EAAGsH,YAAc,WACf3E,OAAOgB,SAAS2H,cAAgB,SAACtD,GAC/B,OAAIA,EAAMuD,SAAW5H,SAASkE,KAAKiB,aAAe,KAChD9I,EAAG2B,YACI,GAEF3B,EAAG+H,aAAaC,EACzB,EAEAzC,EAAkB+F,cAAgB,SAACtD,GAGjC,OAFAA,EAAMwD,kBACNxD,EAAMyD,kBACC,CACT,EAEA9I,OAAO+I,oBAAoB,OAAQ1L,EAAG2B,UACtCgB,OAAOc,iBAAiB,OAAQzD,EAAG2B,UACnCgC,SAASkE,KAAK6D,oBAAoB,QAAS1L,EAAG2B,UAC9CgC,SAASkE,KAAKpE,iBAAiB,QAASzD,EAAG2B,SAC7C,EAKA3B,EAAGuH,UAAY,WACb7B,EAAe1J,SAAQ,SAAAyN,GACrB,IAAIkC,EAAYlC,EAAKE,kBAAkBE,aAAa,cAC9CjC,EAAK6B,EAAKE,kBAAkBE,aAAa,MACzCD,EAAYH,EAAKE,kBAAkBE,aAAa,cACd,MAApCJ,EAAKE,kBAAkBD,UAC3BD,EAAKhG,iBAAiB,SAAS,WAC7B,IACMlD,WAAWC,aAAawJ,OAAM,SAAAP,GAAU,OAAOkC,IAAclC,CAAK,IAClD,gBAAdG,EACFgC,mBAAmBhE,GAAIzB,EAAWG,YACX,iBAAdsD,EACTgC,mBAAmBhE,GAAIzB,EAAWK,OAASL,EAAWM,QAAUN,EAAWQ,cACpD,iBAAdiD,EACTgC,mBAAmBhE,GAAIzB,EAAWQ,cAElCiF,mBAAmBhE,KAGrB5H,EAAG2L,IAEP,CAAE,MAAO7L,GAC8B,eAAjCa,SAASC,cAAciL,OACzBtC,QAAQzJ,MAAM,CACZ8H,GAAIA,EACJ9H,MAAOA,EACPqG,WAAYA,EACZyD,UAAWA,EACX+B,UAAWA,IAGXpL,WAAWG,kBACboL,YAAYhL,QAAQ,OAAQhB,EAAO,CACjCiM,KAAMzG,EAAgBnE,QAAQ6K,WAAa,6BAC3CC,KAAM,SAGZ,CACF,GACF,IAEI/F,GAAYD,GAAWC,IACzBH,EAAUmG,QAAU,SAAC5S,GACnBA,EAAEmS,iBACFnS,EAAEkS,kBACFP,iBAAiBkB,iBACnB,EACAlG,EAAQiG,QAAU,SAAC5S,GACjBA,EAAEmS,iBACFnS,EAAEkS,kBACFP,iBAAiBmB,eACnB,EACAlG,EAASgG,QAAU,SAAC5S,GAClBA,EAAEmS,iBACFnS,EAAEkS,kBACFP,iBAAiBoB,gBACnB,EAEJ,EAKArM,EAAG2B,SAAW,WACZ4D,EAAkBmD,MAAMC,QAAU,KAClCpD,EAAkBmD,MAAMS,KAAO,KAC/B5D,EAAkBmD,MAAMU,IAAM,IAChC,EAKApJ,EAAGsJ,UAAY,WACb,IAAMgD,EAA8D,SAA5CC,aAAaC,QAAQ,mBACzCjM,WAAWG,mBAAqB4L,GAClCR,YAAYhL,QAAQ,OAAQ,6CAA8C,CACxEiL,KAAMzG,EAAgBnE,QAAQ6K,WAAa,6BAC3CS,YAAa,EACbR,KAAM,MACL,WACDM,aAAaG,QAAQ,kBAAmB,OAC1C,GACJ,EAEA1M,EAAG2M,SAAW,WACZb,YAAYc,kBAAkBzG,EAAWG,YACtChK,MAAK,WACAiE,WAAWG,kBACboL,YAAYe,kBAEhB,IAAE,UAAO,SAAAvT,GACHiH,WAAWG,kBACboL,YAAYhL,QAAQ,OAAQxH,EAAG,CAC7ByS,KAAMzG,EAAgBnE,QAAQ6K,WAAa,6BAC3CS,YAAa,EACbR,KAAM,KAGZ,GACJ,EAEAjM,EAAG8M,SAAW,WACZhB,YAAYc,kBAAkBzG,EAAWM,SAAWN,EAAWQ,cAC5DrK,MAAK,WACAiE,WAAWG,kBACboL,YAAYe,kBAEhB,IAAE,UAAO,SAAAvT,GACHiH,WAAWG,kBACboL,YAAYhL,QAAQ,OAAQxH,EAAG,CAC7ByS,KAAMzG,EAAgBnE,QAAQ6K,WAAa,6BAC3CS,YAAa,EACbR,KAAM,KAGZ,GACJ,EAEAjM,EAAG+M,QAAU,WACX5G,EAAWC,WAAWoE,OAAOwC,QAC/B,EAEAhN,EAAGiN,UAASlN,kBAAA1G,sBAAA+E,MAAG,SAAA8O,IAAA,IAAAhL,EAAA,OAAA7I,sBAAAmB,MAAA,SAAA2S,GAAA,cAAAA,EAAAtO,KAAAsO,EAAAhQ,MAAA,KAAA,EAAA,OAAAgQ,EAAAhQ,KAAA,EACQoD,WAAWuB,gBAAe,KAAA,EAAA,GAAAqL,EAAA5K,GAAA4K,EAAAtQ,KAAAsQ,EAAA5K,GAAA,CAAA4K,EAAAhQ,KAAA,EAAA,KAAA,CAAAgQ,EAAA5K,GAAI,GAAE,KAAA,EAA/CL,EAAMiL,EAAA5K,GACRhC,WAAWG,mBAA6C,IAAzBiC,OAAOC,cACxCkJ,YAAYhL,QAAQ,OAAQ,eACnBP,WAAWG,kBAA+B,KAAXwB,EACxC4J,YAAYhL,QAAQ,OAAQ,cAE5BP,WAAWoE,cAAcwB,EAAWC,WAAWoE,OAAQtI,GACxD,KAAA,EAAA,IAAA,MAAA,OAAAiL,EAAAnO,OAAA,GAAAkO,EAAA,KAGHlN,EAAGoN,QAAU,WACX,IAAMC,EAAWlH,EAAWC,WAAWoE,OAAO1F,eACxCC,EAASoB,EAAWC,WAAWoE,OAAOxF,aACtCsI,EAAWnH,EAAWI,WAC5BvG,EAAG2M,SAASxG,EAAWG,YACvBH,EAAWC,WAAWoE,OAAO3Q,MAAQyT,EAASjI,UAAU,EAAGgI,GAAYC,EAASjI,UAAUN,EAAQuI,EAAStP,QAC3GmI,EAAWC,WAAWoE,OAAO1F,eAAiBuI,EAC9ClH,EAAWC,WAAWoE,OAAOxF,aAAeqI,EAC5ClH,EAAWC,WAAWoE,OAAOtF,OAC/B,EAEAlF,EAAGuN,QAAU,WACP5M,SAASC,cAAcC,QAAQC,QAAQE,UAAUqI,QACnDyC,YAAYhL,QAAQ,OAAQ,WAAY,CACtCiL,KAAMzG,EAAgBnE,QAAQ6K,WAAa,eAG/CzL,WAAWyC,aAAamD,EAAWQ,cAAc,SAAArN,GAC3CiH,WAAWG,mBACboL,YAAY0B,cACZ1B,YAAYhL,QAAQ,OAAQ,UAAW,CACrCiL,KAAMzG,EAAgBnE,QAAQ6K,WAAa,eAGjD,IAAG,SAAC1S,GACFiQ,QAAQzJ,MAAMxG,GACViH,WAAWG,mBACboL,YAAY0B,cACZ1B,YAAYhL,QAAQ,OAAQ,QAAUxH,EAAG,CACvCyS,KAAMzG,EAAgBnE,QAAQ6K,WAAa,6BAC3CC,KAAM,MAGZ,GACF,EAEAjM,EAAGyN,UAAY,WACb,GAAI9K,OAAOmI,SAASC,WAAa5E,EAAWW,SAC1C,GAAIvG,WAAWG,iBAAkB,CAE/BoL,YAAY4B,SAAS,GADL,+DACkB,CAAEzB,KAAM,MAAQ,WAAQjM,EAAG2N,WAAY,GAC3E,MACE3N,EAAG2N,WAGT,EAEA3N,EAAG2N,UAAY,WACThN,SAASiB,aAAa5B,EAAG6B,WAC7B+L,cAAcC,aAAa,UAAW,OAAQ,QAC9CD,cAAcE,WAAW,CACvB,mBAAoB,oBAAqB,oBAAqB,aAC9D,SAAU,YAAa,WAAY,UAAW,YAAa,SAAU,OACrE,qBAAsB,YAAa,mBAAoB,uBAAwB,eAEjFF,cAAcG,aAAa,CACzB,CAAC,OAAQ,kBAAmB,SAAU,CAAC,UAAW,QAAS,QAAS,CAAC,QAAS,YAAa,QAC3F,CAAC,QAAS,aAAc,QAAS,CAAC,QAAS,UAAW,KAAM,CAAC,KAAM,YAAa,UAChF,CAAC,KAAM,aAAc,OAAQ,CAAC,KAAM,WAAY,QAAS,CAAC,KAAM,eAAgB,QAChF,CAAC,YAAa,UAAW,SAAU,CAAC,eAAgB,YAAa,QAAS,CAAC,uBAAwB,aAAc,YACjH,CAAC,uBAAwB,YAAa,aAAc,CAAC,gBAAiB,SAAU,QAAS,CAAC,gBAAiB,SAAU,UAEvHC,YAAW,WACTrL,OAAOsL,QACPtK,SAASkE,KAAKqG,UAAY,GAC1BvL,OAAOmI,SAASqD,QAClB,GAAG,GACL,EAEAnO,EAAG6B,SAAW,WACgB,mBAAjBuM,cAA6BA,eAAeC,MAAM,aAC7DT,cAAcU,eAAe,CAC3B3K,SAASqC,cAAc,aAAcrC,SAASqC,cAAc,UAC5DrC,SAASqC,cAAc,UAAWrC,SAASqC,cAAc,wBACzDrC,SAASqC,cAAc,cAAerC,SAASqC,cAAc,WAC7DrC,SAASqC,cAAc,eAEzB4H,cAAcW,gBAAgB,CAC5B,CAAC5K,SAASqC,cAAc,WAAY,eAAgB,CAACrC,SAASqC,cAAc,WAAY,oBACxF,CAACrC,SAASqC,cAAc,WAAY,eAAgB,CAACrC,SAASqC,cAAc,aAAc,eAC1F,CAACrC,SAASqC,cAAc,mBAAoB,eAAgB,CAACrC,SAASqC,cAAc,aAAc,oBAClG,CAACrC,SAASqC,cAAc,MAAO,kBAAmB,CAACrC,SAASqC,cAAc,SAAU,aACpF,CAACrC,SAASqC,cAAc,YAAa,cAAe,CAACrC,SAASqC,cAAc,uBAAwB,eAEtG4H,cAAcY,SAAS,qBAAsB,SAAU,UACvD7N,SAASiB,YAAcjB,SAASiB,cAAgBtB,YAAoBK,SAASiB,YACzEjB,SAASiB,aACPrB,WAAWG,kBAAkBoL,YAAYhL,QAAQ,OAAQ,wBAAyB,CACpF2N,gBAAiB,yBACjB1C,KAAMzG,EAAgBnE,QAAQ6K,WAAa,kBAC3CS,YAAa,EACbR,KAAM,MAERtI,SAASqC,cAAc,WAAW0F,oBAAoB,QAAS1L,EAAG6B,UAClE8B,SAASqC,cAAc,WAAWvC,iBAAiB,SAAS,SAACuE,GACvD4F,cAAcc,SAAS1G,EAAMwC,OAAQ,gBACvCxK,EAAG6B,UAEP,MAEA8B,SAASqC,cAAc,WAAW0F,oBAAoB,QAAS1L,EAAG6B,UAClE8B,SAASqC,cAAc,SAAS0F,oBAAoB,QAAS1L,EAAG6B,UAChE+L,cAAcY,SAAS,aAAc,UAAW,QAChDZ,cAAcY,SAAS,qBAAsB,SAAU,cAE3D,EAEO,CACLhN,KAAMxB,EAAGoH,UACTzF,SAAU3B,EAAG2B,SACbE,SAAU7B,EAAG6B,SAEjB,CA5ekB,GA8elBpI,OAAOkV,OAAOpO,YACdI,SAASiO,uBAAsB,WACD,YAAxBjL,SAASkL,WACXtO,WAAWe,cAEXqC,SAASF,iBAAiB,oBAAoB,WAC5ClD,WAAWe,aACb,GAEJ","file":"../../../js/plugins/rightMenus.js","sourcesContent":["\nconst RightMenus = {\n defaultEvent: ['copyText', 'copyLink', 'copyPaste', 'copyAll', 'copyCut', 'copyImg', 'printMode', 'readMode'],\n defaultGroup: ['navigation', 'inputBox', 'seletctText', 'elementCheck', 'elementImage', 'articlePage'],\n messageRightMenu: volantis.GLOBAL_CONFIG.plugins.message.enable && volantis.GLOBAL_CONFIG.plugins.message.rightmenu.enable,\n corsAnywhere: volantis.GLOBAL_CONFIG.plugins.rightmenus.options.corsAnywhere,\n urlRegx: /^((https|http)?:\\/\\/)+[A-Za-z0-9]+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\':+!]*([^<>\\\"\\\"])*$/,\n imgRegx: /\\.(jpe?g|png|webp|svg|gif|jifi)(-|_|!|\\?|\\/)?.*$/,\n\n /**\n * 加载右键菜单\n */\n initialMenu: () => {\n RightMenus.fun.init();\n volantis.pjax.send(() => {\n RightMenus.fun.hideMenu();\n if (volantis.isReadModel) RightMenus.fun.readMode();\n })\n },\n\n /**\n * 读取剪切板\n * @returns text\n */\n readClipboard: async () => {\n let clipboardText;\n const result = await navigator.permissions.query({ name: 'clipboard-read' });\n switch (result.state) {\n case 'granted':\n case 'prompt':\n clipboardText = await navigator.clipboard.readText()\n break;\n default:\n window.clipboardRead = false;\n break;\n }\n return clipboardText;\n },\n\n /**\n * 写入文本到剪切板\n * @param {String} text\n */\n writeClipText: text => {\n return navigator.clipboard\n .writeText(text)\n .then(() => {\n return Promise.resolve()\n })\n .catch(err => {\n return Promise.reject(err)\n })\n },\n\n /**\n * 写入图片到剪切板\n * @param {*} link\n * @param {*} success\n * @param {*} error\n */\n writeClipImg: async (link, success, error) => {\n const image = new Image;\n image.crossOrigin = \"Anonymous\";\n image.addEventListener('load', () => {\n let canvas = document.createElement(\"canvas\");\n let context = canvas.getContext(\"2d\");\n canvas.width = image.width;\n canvas.height = image.height;\n context.drawImage(image, 0, 0);\n canvas.toBlob(blob => {\n navigator.clipboard.write([\n new ClipboardItem({ 'image/png': blob })\n ]).then(e => {\n success(e)\n }).catch(e => {\n error(e)\n })\n }, 'image/png')\n }, false)\n image.src = `${link}?(lll¬ω¬)`;\n },\n\n /**\n * 粘贴文本到剪切板\n * @param {*} elemt\n * @param {*} value\n */\n insertAtCaret: (elemt, value) => {\n const startPos = elemt.selectionStart,\n endPos = elemt.selectionEnd;\n if (document.selection) {\n elemt.focus();\n var sel = document.selection.createRange();\n sel.text = value;\n elemt.focus();\n } else {\n if (startPos || startPos == '0') {\n var scrollTop = elemt.scrollTop;\n elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value.length);\n elemt.focus();\n elemt.selectionStart = startPos + value.length;\n elemt.selectionEnd = startPos + value.length;\n elemt.scrollTop = scrollTop;\n } else {\n elemt.value += value;\n elemt.focus();\n }\n }\n }\n}\n\n/**\n * 事件处理区域\n */\nRightMenus.fun = (() => {\n const rightMenuConfig = volantis.GLOBAL_CONFIG.plugins.rightmenus;\n\n const\n fn = {},\n _rightMenuWrapper = document.getElementById('rightmenu-wrapper'),\n _rightMenuContent = document.getElementById('rightmenu-content'),\n _rightMenuList = document.querySelectorAll('#rightmenu-content li.menuLoad-Content'),\n _rightMenuListWithHr = document.querySelectorAll('#rightmenu-content li, #rightmenu-content hr, #menuMusic'),\n _readBkg = document.getElementById('read_bkg'),\n _menuMusic = document.getElementById('menuMusic'),\n _backward = document.querySelector('#menuMusic .backward'),\n _toggle = document.querySelector('#menuMusic .toggle'),\n _forward = document.querySelector('#menuMusic .forward');\n\n // 公共数据\n let globalData = {\n mouseEvent: null,\n isInputBox: false,\n selectText: '',\n inputValue: '',\n isLink: false,\n linkUrl: '',\n isMediaLink: false,\n mediaLinkUrl: '',\n isImage: false,\n isArticle: false,\n pathName: '',\n isReadClipboard: true,\n isShowMusic: false,\n statusCheck: false\n }\n const globalDataBackup = Object.assign({}, globalData);\n\n /**\n * 初始化监听事件处理\n */\n fn.initEvent = () => {\n fn.elementAppend();\n fn.contextmenu();\n fn.menuEvent();\n }\n\n /**\n * 预置元素设定\n */\n fn.elementAppend = () => {\n // 阅读模式\n if (_readBkg) _readBkg.parentNode.removeChild(_readBkg);\n const readBkg = document.createElement(\"div\");\n readBkg.className = \"common_read_bkg common_read_hide\";\n readBkg.id = \"read_bkg\";\n window.document.body.appendChild(readBkg);\n }\n\n /**\n * 右键菜单位置设定\n * @param {*} event\n */\n fn.menuPosition = (event) => {\n try {\n let mouseClientX = event.clientX;\n let mouseClientY = event.clientY;\n let screenWidth = document.documentElement.clientWidth || document.body.clientWidth;\n let screenHeight = document.documentElement.clientHeight || document.body.clientHeight;\n\n _rightMenuWrapper.style.display = 'block';\n fn.menuControl(event);\n\n let menuWidth = _rightMenuContent.offsetWidth;\n let menuHeight = _rightMenuContent.offsetHeight;\n let showLeft = mouseClientX + menuWidth > screenWidth ? mouseClientX - menuWidth + 10 : mouseClientX;\n let showTop = mouseClientY + menuHeight > screenHeight ? mouseClientY - menuHeight + 10 : mouseClientY;\n showTop = mouseClientY + menuHeight > screenHeight && showTop < menuHeight && mouseClientY < menuHeight ?\n showTop + (screenHeight - menuHeight - showTop - 10) : showTop;\n _rightMenuWrapper.style.left = `${showLeft}px`;\n _rightMenuWrapper.style.top = `${showTop}px`;\n if (volantis.GLOBAL_CONFIG.plugins.message.rightmenu.notice) fn.menuNotic();\n } catch (error) {\n console.error(error);\n fn.hideMenu();\n return true;\n }\n return false;\n }\n\n /**\n * 菜单项控制\n * @param {*} event\n */\n fn.menuControl = (event) => {\n fn.globalDataSet(event);\n if (!!_menuMusic) _menuMusic.style.display = globalData.isShowMusic ? 'block' : 'none';\n _rightMenuList.forEach(item => {\n item.style.display = 'none';\n const nodeName = item.firstElementChild.nodeName;\n const groupName = item.firstElementChild.getAttribute('data-group');\n const itemEvent = item.firstElementChild.getAttribute('data-event');\n if (globalData.statusCheck || globalData.isArticle) {\n switch (groupName) {\n case 'inputBox':\n if (globalData.isInputBox) {\n item.style.display = 'block';\n if (itemEvent === 'copyCut' && !globalData.selectText) item.style.display = 'none';\n if (itemEvent === 'copyAll' && !globalData.inputValue) item.style.display = 'none';\n if (itemEvent === 'copyPaste' && !globalData.isReadClipboard) item.style.display = 'none';\n }\n break;\n case 'seletctText':\n if (!!globalData.selectText) item.style.display = 'block';\n break;\n case 'elementCheck':\n if (globalData.isLink || globalData.isMediaLink) item.style.display = 'block';\n break;\n case 'elementImage':\n if (globalData.isImage) item.style.display = 'block';\n break;\n case 'articlePage':\n if (globalData.isArticle) item.style.display = 'block';\n break;\n default:\n item.style.display = nodeName === 'A'\n ? globalData.isArticle && !globalData.statusCheck && rightMenuConfig.options.articleShowLink\n ? 'block'\n : 'none'\n : 'block';\n break;\n }\n } else if (nodeName === 'A' || RightMenus.defaultGroup.every(item => { return groupName !== item })) {\n item.style.display = 'block';\n }\n })\n\n // 执行外部事件\n volantis.mouseEvent = event;\n volantis.rightmenu.method.handle.start()\n\n // 过滤 HR 元素\n let elementHrItem = { item: null, hide: true };\n _rightMenuListWithHr.forEach((item) => {\n if (item.nodeName === \"HR\") {\n item.style.display = 'block';\n if (!elementHrItem.item) {\n elementHrItem.item = item;\n return;\n }\n if (elementHrItem.hide || elementHrItem.item.nextElementSibling.nodeName === \"hr\") {\n elementHrItem.item.style.display = 'none';\n }\n elementHrItem.item = item;\n elementHrItem.hide = true;\n } else {\n if (item.style.display === 'block' && elementHrItem.hide) {\n elementHrItem.hide = false;\n }\n }\n })\n if (!!elementHrItem.item && elementHrItem.hide) elementHrItem.item.style.display = 'none';\n }\n\n /**\n * 元素状态判断/全局数据设置\n * @param {*} event\n */\n fn.globalDataSet = (event) => {\n globalData = Object.assign({}, globalDataBackup);\n globalData.mouseEvent = event;\n globalData.selectText = window.getSelection().toString();\n\n // 判断是否为输入框\n if (event.target.tagName.toLowerCase() === 'input' || event.target.tagName.toLowerCase() === 'textarea') {\n globalData.isInputBox = true;\n globalData.inputValue = event.target.value;\n }\n\n // 判断是否允许读取剪切板\n if (globalData.isInputBox && window.clipboardRead === false) {\n globalData.isReadClipboard = false;\n }\n\n // 判断是否包含链接\n if (!!event.target.href && RightMenus.urlRegx.test(event.target.href)) {\n globalData.isLink = true;\n globalData.linkUrl = event.target.href;\n }\n\n // 判断是否包含媒体链接\n if (!!event.target.currentSrc && RightMenus.urlRegx.test(event.target.currentSrc)) {\n globalData.isMediaLink = true;\n globalData.mediaLinkUrl = event.target.currentSrc;\n }\n\n // 判断是否为图片地址\n if (globalData.isMediaLink && RightMenus.imgRegx.test(globalData.mediaLinkUrl)) {\n globalData.isImage = true;\n }\n\n // 判断是否为文章页面\n if (!!(document.querySelector('#post.article') || null)) {\n globalData.isArticle = true;\n globalData.pathName = window.location.pathname;\n }\n\n // 判断是否显示音乐控制器\n if (volantis.GLOBAL_CONFIG.plugins.aplayer?.enable\n && typeof RightMenuAplayer !== 'undefined'\n && RightMenuAplayer.APlayer.player !== undefined) {\n if (rightMenuConfig.options.musicAlwaysShow\n || RightMenuAplayer.APlayer.status === 'play'\n || RightMenuAplayer.APlayer.status === 'undefined') {\n globalData.isShowMusic = true;\n }\n }\n\n // 设定校验状态\n if (!!globalData.selectText || globalData.isInputBox || globalData.isLink || globalData.isMediaLink) {\n globalData.statusCheck = true;\n }\n }\n\n /**\n * 全局右键监听函数\n */\n fn.contextmenu = () => {\n window.document.oncontextmenu = (event) => {\n if (event.ctrlKey || document.body.offsetWidth <= 500) {\n fn.hideMenu();\n return true;\n }\n return fn.menuPosition(event);\n }\n\n _rightMenuWrapper.oncontextmenu = (event) => {\n event.stopPropagation();\n event.preventDefault();\n return false;\n }\n\n window.removeEventListener('blur', fn.hideMenu);\n window.addEventListener('blur', fn.hideMenu);\n document.body.removeEventListener('click', fn.hideMenu);\n document.body.addEventListener('click', fn.hideMenu);\n }\n\n /**\n * 菜单项事件处理函数\n */\n fn.menuEvent = () => {\n _rightMenuList.forEach(item => {\n let eventName = item.firstElementChild.getAttribute('data-event');\n const id = item.firstElementChild.getAttribute('id');\n const groupName = item.firstElementChild.getAttribute('data-group');\n if (item.firstElementChild.nodeName === \"A\") return;\n item.addEventListener('click', () => {\n try {\n if (RightMenus.defaultEvent.every(item => { return eventName !== item })) {\n if (groupName === 'seletctText') {\n RightMenusFunction[id](globalData.selectText)\n } else if (groupName === 'elementCheck') {\n RightMenusFunction[id](globalData.isLink ? globalData.linkUrl : globalData.mediaLinkUrl)\n } else if (groupName === 'elementImage') {\n RightMenusFunction[id](globalData.mediaLinkUrl)\n } else {\n RightMenusFunction[id]()\n }\n } else {\n fn[eventName]()\n }\n } catch (error) {\n if (volantis.GLOBAL_CONFIG.debug === \"rightMenus\") {\n console.error({\n id: id,\n error: error,\n globalData: globalData,\n groupName: groupName,\n eventName: eventName\n });\n }\n if (RightMenus.messageRightMenu) {\n VolantisApp.message('错误提示', error, {\n icon: rightMenuConfig.options.iconPrefix + ' fa-exclamation-square red',\n time: '15000'\n });\n }\n }\n })\n })\n\n if (_forward && _toggle && _forward) {\n _backward.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerBackward();\n }\n _toggle.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerToggle();\n }\n _forward.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n RightMenuAplayer.aplayerForward();\n }\n }\n }\n\n /**\n * 隐藏菜单显示\n */\n fn.hideMenu = () => {\n _rightMenuWrapper.style.display = null;\n _rightMenuWrapper.style.left = null;\n _rightMenuWrapper.style.top = null;\n }\n\n /**\n * 右键菜单覆盖提示\n */\n fn.menuNotic = () => {\n const NoticeRightMenu = localStorage.getItem('NoticeRightMenu') === 'true';\n if (RightMenus.messageRightMenu && !NoticeRightMenu)\n VolantisApp.message('右键菜单', '唤醒原系统菜单请使用:<kbd>Ctrl</kbd> + <kbd>右键</kbd>', {\n icon: rightMenuConfig.options.iconPrefix + ' fa-exclamation-square red',\n displayMode: 1,\n time: 9000\n }, () => {\n localStorage.setItem('NoticeRightMenu', 'true')\n });\n }\n\n fn.copyText = () => {\n VolantisApp.utilWriteClipText(globalData.selectText)\n .then(() => {\n if (RightMenus.messageRightMenu) {\n VolantisApp.messageCopyright();\n }\n }).catch(e => {\n if (RightMenus.messageRightMenu) {\n VolantisApp.message('系统提示', e, {\n icon: rightMenuConfig.options.iconPrefix + ' fa-exclamation-square red',\n displayMode: 1,\n time: 9000\n });\n }\n })\n }\n\n fn.copyLink = () => {\n VolantisApp.utilWriteClipText(globalData.linkUrl || globalData.mediaLinkUrl)\n .then(() => {\n if (RightMenus.messageRightMenu) {\n VolantisApp.messageCopyright();\n }\n }).catch(e => {\n if (RightMenus.messageRightMenu) {\n VolantisApp.message('系统提示', e, {\n icon: rightMenuConfig.options.iconPrefix + ' fa-exclamation-square red',\n displayMode: 1,\n time: 9000\n });\n }\n })\n }\n\n fn.copyAll = () => {\n globalData.mouseEvent.target.select();\n }\n\n fn.copyPaste = async () => {\n const result = await RightMenus.readClipboard() || '';\n if (RightMenus.messageRightMenu && window.clipboardRead === false) {\n VolantisApp.message('系统提示', '未授予剪切板读取权限!');\n } else if (RightMenus.messageRightMenu && result === '') {\n VolantisApp.message('系统提示', '仅支持复制文本内容!');\n } else {\n RightMenus.insertAtCaret(globalData.mouseEvent.target, result);\n }\n }\n\n fn.copyCut = () => {\n const statrPos = globalData.mouseEvent.target.selectionStart;\n const endPos = globalData.mouseEvent.target.selectionEnd;\n const inputStr = globalData.inputValue;\n fn.copyText(globalData.selectText);\n globalData.mouseEvent.target.value = inputStr.substring(0, statrPos) + inputStr.substring(endPos, inputStr.length);\n globalData.mouseEvent.target.selectionStart = statrPos;\n globalData.mouseEvent.target.selectionEnd = statrPos;\n globalData.mouseEvent.target.focus();\n }\n\n fn.copyImg = () => {\n if (volantis.GLOBAL_CONFIG.plugins.message.rightmenu.notice) {\n VolantisApp.message('系统提示', '复制中,请等待。', {\n icon: rightMenuConfig.options.iconPrefix + ' fa-images'\n })\n }\n RightMenus.writeClipImg(globalData.mediaLinkUrl, e => {\n if (RightMenus.messageRightMenu) {\n VolantisApp.hideMessage();\n VolantisApp.message('系统提示', '图片复制成功!', {\n icon: rightMenuConfig.options.iconPrefix + ' fa-images'\n });\n }\n }, (e) => {\n console.error(e);\n if (RightMenus.messageRightMenu) {\n VolantisApp.hideMessage();\n VolantisApp.message('系统提示', '复制失败:' + e, {\n icon: rightMenuConfig.options.iconPrefix + ' fa-exclamation-square red',\n time: 9000\n });\n }\n })\n }\n\n fn.printMode = () => {\n if (window.location.pathname === globalData.pathName) {\n if (RightMenus.messageRightMenu) {\n const message = '是否打印当前页面?<br><em style=\"font-size: 80%\">建议打印时勾选背景图形</em><br>'\n VolantisApp.question('', message, { time: 9000 }, () => { fn.printHtml() })\n } else {\n fn.printHtml()\n }\n }\n }\n\n fn.printHtml = () => {\n if (volantis.isReadModel) fn.readMode();\n DOMController.setAttribute('details', 'open', 'true');\n DOMController.removeList([\n '.cus-article-bkg', '.iziToast-overlay', '.iziToast-wrapper', '.prev-next',\n 'footer', '#l_header', '#l_cover', '#l_side', '#comments', '#s-top', '#BKG',\n '#rightmenu-wrapper', '.nav-tabs', '.parallax-mirror', '.new-meta-item.share', 'div.footer'\n ]);\n DOMController.setStyleList([\n ['body', 'backgroundColor', 'unset'], ['#l_main', 'width', '100%'], ['#post', 'boxShadow', 'none'],\n ['#post', 'background', 'none'], ['#post', 'padding', '0'], ['h1', 'textAlign', 'center'],\n ['h1', 'fontWeight', '600'], ['h1', 'fontSize', '2rem'], ['h1', 'marginBottom', '20px'],\n ['.tab-pane', 'display', 'block'], ['.tab-content', 'borderTop', 'none'], ['.highlight>table pre', 'whiteSpace', 'pre-wrap'],\n ['.highlight>table pre', 'wordBreak', 'break-all'], ['.fancybox img', 'height', 'auto'], ['.fancybox img', 'weight', 'auto']\n ]);\n setTimeout(() => {\n window.print();\n document.body.innerHTML = '';\n window.location.reload();\n }, 50);\n }\n\n fn.readMode = () => {\n if (typeof ScrollReveal === 'function') ScrollReveal().clean('#comments');\n DOMController.fadeToggleList([ \n document.querySelector('#l_header'), document.querySelector('footer'), \n document.querySelector('#s-top'), document.querySelector('.article-meta#bottom'), \n document.querySelector('.prev-next'), document.querySelector('#l_side'), \n document.querySelector('#comments') \n ]); \n DOMController.toggleClassList([ \n [document.querySelector('#l_main'), 'common_read'], [document.querySelector('#l_main'), 'common_read_main'], \n [document.querySelector('#l_body'), 'common_read'], [document.querySelector('#safearea'), 'common_read'], \n [document.querySelector('#pjax-container'), 'common_read'], [document.querySelector('#read_bkg'), 'common_read_hide'], \n [document.querySelector('h1'), 'common_read_h1'], [document.querySelector('#post'), 'post_read'], \n [document.querySelector('#l_cover'), 'read_cover'], [document.querySelector('.widget.toc-wrapper'), 'post_read'] \n ]);\n DOMController.setStyle('.copyright.license', 'margin', '15px 0'); \n volantis.isReadModel = volantis.isReadModel === undefined ? true : !volantis.isReadModel;\n if (volantis.isReadModel) {\n if (RightMenus.messageRightMenu) VolantisApp.message('系统提示', '阅读模式已开启,您可以点击屏幕空白处退出。', {\n backgroundColor: 'var(--color-read-post)',\n icon: rightMenuConfig.options.iconPrefix + ' fa-book-reader',\n displayMode: 1,\n time: 5000\n });\n document.querySelector('#l_body').removeEventListener('click', fn.readMode);\n document.querySelector('#l_body').addEventListener('click', (event) => {\n if (DOMController.hasClass(event.target, 'common_read')) {\n fn.readMode();\n }\n });\n } else {\n document.querySelector('#l_body').removeEventListener('click', fn.readMode);\n document.querySelector('#post').removeEventListener('click', fn.readMode);\n DOMController.setStyle('.prev-next', 'display', 'flex'); \n DOMController.setStyle('.copyright.license', 'margin', '15px -40px'); \n }\n }\n\n return {\n init: fn.initEvent,\n hideMenu: fn.hideMenu,\n readMode: fn.readMode\n }\n})()\n\nObject.freeze(RightMenus);\nvolantis.requestAnimationFrame(() => {\n if (document.readyState !== 'loading') {\n RightMenus.initialMenu();\n } else {\n document.addEventListener(\"DOMContentLoaded\", function () {\n RightMenus.initialMenu();\n })\n }\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/tags/contributors.js"],"names":["ContributorsJS","requestAPI","url","callback","timeout","retryTimes","request","Promise","resolve","reject","status","timer","setTimeout","fetch","then","response","clearTimeout","ok","json","Error","data","error","layout","cfg","el","api","querySelector","remove","cellALL","forEach","item","i","user","html_url","login","avatar_url","avatar","innerHTML","innerText","e","start","els","document","getElementsByClassName","length","getAttribute","Object","volantis","GLOBAL_CONFIG","addEventListener"],"mappings":"AAAA,aAAA,IAAMA,eAAiB,CACrBC,WAAY,SAACC,EAAKC,EAAUC,GAC1B,IAAIC,EAAa,GAEjB,SAASC,IACP,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3B,IAAIC,EAAS,EACTC,EAAQC,YAAW,WACN,IAAXF,IACFA,EAAS,EACTC,EAAQ,KACRF,EAAO,QACW,GAAdJ,GACFD,IAGN,GAAG,KACHS,MAAMX,GAAKY,MAAK,SAAUC,GAOxB,GANe,IAAXL,IACFM,aAAaL,GACbH,EAAQO,GACRJ,EAAQ,KACRD,EAAS,GAEPK,EAASE,GACX,OAAOF,EAASG,OAElB,MAAM,IAAIC,MAAM,+BAClB,IAAGL,MAAK,SAAUM,GAChBf,EAAa,EACbF,EAASiB,EACX,IAAE,UAAO,SAAUC,GACbhB,EAAa,GACfA,GAAc,EACdO,YAAW,WACTN,GACF,GAAG,MAEHF,GAEJ,GACF,GACF,CACAE,EACF,EACAgB,OAAQ,SAACC,GACP,IAAMC,EAAKD,EAAIC,GACfxB,eAAeC,WAAWsB,EAAIE,KAAK,SAAUL,GAC3CI,EAAGE,cAAc,iBAAiBC,SAClC,IAAIC,EAAU,IACbR,GAAQ,IAAIS,SAAQ,SAACC,EAAMC,GAC1B,IAAIC,EAAO,0BACXA,GAAQ,0EACRA,GAAQ,UAAYF,EAAKG,SAAW,KACpCD,GAAQ,aAAeF,EAAKI,MAAQ,WAAaJ,EAAKK,YAAcZ,EAAIa,QAAU,oCAClFJ,GAAQ,2BAA6BF,EAAKI,MAAQ,gBAClDF,GAAQ,OAERJ,GADAI,GAAQ,QAEV,IACAR,EAAGE,cAAc,eAAeW,UAAYT,CAC9C,IAAG,WACD,IACEJ,EAAGE,cAAc,qBAAqBC,SACtCH,EAAGE,cAAc,mBAAmBY,UAAU,cAChD,CAAE,MAAOC,GAAK,CAChB,GACF,EACAC,MAAO,WAEL,IADA,IAAMC,EAAMC,SAASC,uBAAuB,uBACnCZ,EAAI,EAAGA,EAAIU,EAAIG,OAAQb,IAAK,CACnC,IAAMP,EAAKiB,EAAIV,GACTN,EAAMD,EAAGqB,aAAa,OAC5B,GAAW,MAAPpB,EAAJ,CAGA,IAAIF,EAAM,IAAIuB,OACdvB,EAAIC,GAAKA,EACTD,EAAIE,IAAMA,EACVF,EAAG,SAASC,EAAGqB,aAAa,SAC5BtB,EAAIa,OAASW,SAASC,cAAa,WAASZ,OAC5CpC,eAAesB,OAAOC,EANtB,CAOF,CACF,GAKFvB,eAAewC,QACfE,SAASO,iBAAiB,iBAAiB,WACzCjD,eAAewC,OACjB","file":"../../../../js/plugins/tags/contributors.js","sourcesContent":["const ContributorsJS = {\n requestAPI: (url, callback, timeout) => {\n let retryTimes = 5;\n\n function request() {\n return new Promise((resolve, reject) => {\n let status = 0; // 0 等待 1 完成 2 超时\n let timer = setTimeout(() => {\n if (status === 0) {\n status = 2;\n timer = null;\n reject('请求超时');\n if (retryTimes == 0) {\n timeout();\n }\n }\n }, 5000);\n fetch(url).then(function (response) {\n if (status !== 2) {\n clearTimeout(timer);\n resolve(response);\n timer = null;\n status = 1;\n }\n if (response.ok) {\n return response.json();\n }\n throw new Error('Network response was not ok.');\n }).then(function (data) {\n retryTimes = 0;\n callback(data);\n }).catch(function (error) {\n if (retryTimes > 0) {\n retryTimes -= 1;\n setTimeout(() => {\n request();\n }, 5000);\n } else {\n timeout();\n }\n });\n });\n }\n request();\n },\n layout: (cfg) => {\n const el = cfg.el;\n ContributorsJS.requestAPI(cfg.api, function (data) {\n el.querySelector('.loading-wrap').remove();\n var cellALL = \"\";\n (data || []).forEach((item, i) => {\n var user = '<div class=\"user-card\">';\n user += '<a class=\"card-link\" target=\"_blank\" rel=\"external noopener noreferrer\"';\n user += ' href=\"' + item.html_url + '\">';\n user += '<img alt=\"' + item.login + '\" src=\"' + (item.avatar_url || cfg.avatar) + '\" onerror=\"errorImgAvatar(this)\">';\n user += '<div class=\"name\"><span>' + item.login + '</span></div>';\n user += '</a>';\n user += '</div>';\n cellALL += user;\n });\n el.querySelector('.group-body').innerHTML = cellALL;\n }, function () {\n try {\n el.querySelector('.loading-wrap svg').remove();\n el.querySelector('.loading-wrap p').innerText('加载失败,请稍后重试。');\n } catch (e) { }\n });\n },\n start: () => {\n const els = document.getElementsByClassName('contributorsjs-wrap');\n for (var i = 0; i < els.length; i++) {\n const el = els[i];\n const api = el.getAttribute('api');\n if (api == null) {\n continue;\n }\n var cfg = new Object();\n cfg.el = el;\n cfg.api = api;\n cfg.class = el.getAttribute('class');\n cfg.avatar = volantis.GLOBAL_CONFIG.default.avatar;\n ContributorsJS.layout(cfg);\n }\n }\n}\n\n\n\nContributorsJS.start();\ndocument.addEventListener('pjax:complete', function () {\n ContributorsJS.start();\n});"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/tags/friends.js"],"names":["FriendsJS","requestAPI","url","callback","timeout","retryTimes","request","Promise","resolve","reject","status","timer","setTimeout","fetch","then","response","clearTimeout","ok","json","Error","data","error","layout","cfg","el","api","querySelector","remove","arr","content","cellALL","forEach","item","i","user","title","avatar","innerHTML","innerText","e","start","els","document","getElementsByClassName","length","getAttribute","Object","volantis","GLOBAL_CONFIG","addEventListener"],"mappings":"AAAA,aAAA,IAAMA,UAAY,CAChBC,WAAY,SAACC,EAAKC,EAAUC,GAC1B,IAAIC,EAAa,GAEjB,SAASC,IACP,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3B,IAAIC,EAAS,EACTC,EAAQC,YAAW,WACN,IAAXF,IACFA,EAAS,EACTC,EAAQ,KACRF,EAAO,QACW,GAAdJ,GACFD,IAGN,GAAG,KACHS,MAAMX,GAAKY,MAAK,SAAUC,GAOxB,GANe,IAAXL,IACFM,aAAaL,GACbH,EAAQO,GACRJ,EAAQ,KACRD,EAAS,GAEPK,EAASE,GACX,OAAOF,EAASG,OAElB,MAAM,IAAIC,MAAM,+BAClB,IAAGL,MAAK,SAAUM,GAChBf,EAAa,EACbF,EAASiB,EACX,IAAE,UAAO,SAAUC,GACbhB,EAAa,GACfA,GAAc,EACdO,YAAW,WACTN,GACF,GAAG,MAEHF,GAEJ,GACF,GACF,CACAE,EACF,EACAgB,OAAQ,SAACC,GACP,IAAMC,EAAKD,EAAIC,GACfxB,UAAUC,WAAWsB,EAAIE,KAAK,SAAUL,GACtCI,EAAGE,cAAc,iBAAiBC,SAClC,IAAMC,EAAMR,EAAKS,QACbC,EAAU,GACdF,EAAIG,SAAQ,SAACC,EAAMC,GACjB,IAAIC,EAAO,0BACXA,GAAQ,0EACRA,GAAQ,UAAYF,EAAK9B,IAAM,KAC/BgC,GAAQ,aAAeF,EAAKG,MAAQ,WAAaH,EAAKI,QAAUb,EAAIa,QAAU,oCAC9EF,GAAQ,2BAA6BF,EAAKG,MAAQ,gBAClDD,GAAQ,OAERJ,GADAI,GAAQ,QAEV,IACAV,EAAGE,cAAc,eAAeW,UAAYP,CAC9C,IAAG,WACD,IACEN,EAAGE,cAAc,qBAAqBC,SACtCH,EAAGE,cAAc,mBAAmBY,UAAU,cAChD,CAAE,MAAOC,GAAK,CAChB,GACF,EACAC,MAAO,WAEL,IADA,IAAMC,EAAMC,SAASC,uBAAuB,kBACnCV,EAAI,EAAGA,EAAIQ,EAAIG,OAAQX,IAAK,CACnC,IAAMT,EAAKiB,EAAIR,GACTR,EAAMD,EAAGqB,aAAa,OAC5B,GAAW,MAAPpB,EAAJ,CAGA,IAAIF,EAAM,IAAIuB,OACdvB,EAAIC,GAAKA,EACTD,EAAIE,IAAMA,EACVF,EAAG,SAASC,EAAGqB,aAAa,SAC5BtB,EAAIa,OAASW,SAASC,cAAa,WAASZ,OAC5CpC,UAAUsB,OAAOC,EANjB,CAOF,CACF,GAKFvB,UAAUwC,QACVE,SAASO,iBAAiB,iBAAiB,WACzCjD,UAAUwC,OACZ","file":"../../../../js/plugins/tags/friends.js","sourcesContent":["const FriendsJS = {\n requestAPI: (url, callback, timeout) => {\n let retryTimes = 5;\n\n function request() {\n return new Promise((resolve, reject) => {\n let status = 0; // 0 等待 1 完成 2 超时\n let timer = setTimeout(() => {\n if (status === 0) {\n status = 2;\n timer = null;\n reject('请求超时');\n if (retryTimes == 0) {\n timeout();\n }\n }\n }, 5000);\n fetch(url).then(function (response) {\n if (status !== 2) {\n clearTimeout(timer);\n resolve(response);\n timer = null;\n status = 1;\n }\n if (response.ok) {\n return response.json();\n }\n throw new Error('Network response was not ok.');\n }).then(function (data) {\n retryTimes = 0;\n callback(data);\n }).catch(function (error) {\n if (retryTimes > 0) {\n retryTimes -= 1;\n setTimeout(() => {\n request();\n }, 5000);\n } else {\n timeout();\n }\n });\n });\n }\n request();\n },\n layout: (cfg) => {\n const el = cfg.el;\n FriendsJS.requestAPI(cfg.api, function (data) {\n el.querySelector('.loading-wrap').remove();\n const arr = data.content;\n var cellALL = \"\";\n arr.forEach((item, i) => {\n var user = '<div class=\"user-card\">';\n user += '<a class=\"card-link\" target=\"_blank\" rel=\"external noopener noreferrer\"';\n user += ' href=\"' + item.url + '\">';\n user += '<img alt=\"' + item.title + '\" src=\"' + (item.avatar || cfg.avatar) + '\" onerror=\"errorImgAvatar(this)\">';\n user += '<div class=\"name\"><span>' + item.title + '</span></div>';\n user += '</a>';\n user += '</div>';\n cellALL += user;\n });\n el.querySelector('.group-body').innerHTML = cellALL;\n }, function () {\n try {\n el.querySelector('.loading-wrap svg').remove();\n el.querySelector('.loading-wrap p').innerText('加载失败,请稍后重试。');\n } catch (e) { }\n });\n },\n start: () => {\n const els = document.getElementsByClassName('friendsjs-wrap');\n for (var i = 0; i < els.length; i++) {\n const el = els[i];\n const api = el.getAttribute('api');\n if (api == null) {\n continue;\n }\n var cfg = new Object();\n cfg.el = el;\n cfg.api = api;\n cfg.class = el.getAttribute('class');\n cfg.avatar = volantis.GLOBAL_CONFIG.default.avatar;\n FriendsJS.layout(cfg);\n }\n }\n}\n\n\n\nFriendsJS.start();\ndocument.addEventListener('pjax:complete', function () {\n FriendsJS.start();\n});"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["js/plugins/tags/sites.js"],"names":["SitesJS","requestAPI","url","callback","timeout","retryTimes","request","Promise","resolve","reject","status","timer","setTimeout","fetch","then","response","clearTimeout","ok","json","Error","data","error","layout","cfg","el","api","querySelector","remove","arr","content","cellALL","forEach","item","i","cell","title","screenshot","avatar","description","innerHTML","innerText","e","start","els","document","getElementsByClassName","length","getAttribute","Object","volantis","GLOBAL_CONFIG","link","cover","addEventListener"],"mappings":"AAAA,aAAA,IAAMA,QAAU,CACdC,WAAY,SAACC,EAAKC,EAAUC,GAC1B,IAAIC,EAAa,GAEjB,SAASC,IACP,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3B,IAAIC,EAAS,EACTC,EAAQC,YAAW,WACN,IAAXF,IACFA,EAAS,EACTC,EAAQ,KACRF,EAAO,QACW,GAAdJ,GACFD,IAGN,GAAG,KACHS,MAAMX,GAAKY,MAAK,SAAUC,GAOxB,GANe,IAAXL,IACFM,aAAaL,GACbH,EAAQO,GACRJ,EAAQ,KACRD,EAAS,GAEPK,EAASE,GACX,OAAOF,EAASG,OAElB,MAAM,IAAIC,MAAM,+BAClB,IAAGL,MAAK,SAAUM,GAChBf,EAAa,EACbF,EAASiB,EACX,IAAE,UAAO,SAAUC,GACbhB,EAAa,GACfA,GAAc,EACdO,YAAW,WACTN,GACF,GAAG,MAEHF,GAEJ,GACF,GACF,CACAE,EACF,EACAgB,OAAQ,SAACC,GACP,IAAMC,EAAKD,EAAIC,GACfxB,QAAQC,WAAWsB,EAAIE,KAAK,SAAUL,GACpCI,EAAGE,cAAc,iBAAiBC,SAClC,IAAMC,EAAMR,EAAKS,QACbC,EAAU,GACdF,EAAIG,SAAQ,SAACC,EAAMC,GACjB,IAAIC,EAAO,0BACXA,GAAQ,iFAAmFF,EAAK9B,IAAM,KACtGgC,GAAQ,aAAeF,EAAKG,MAAQ,WAAaH,EAAKI,YAAe,iDAAmDJ,EAAK9B,KAAQ,oCACrIgC,GAAQ,qBACRA,GAAQ,aAAeF,EAAKG,MAAQ,WAAaH,EAAKK,QAAUd,EAAIc,QAAU,qCAC9EH,GAAQ,uBAAyBF,EAAKG,MAAQ,UAC9CD,GAAQ,uBAAyBF,EAAKM,aAAeN,EAAK9B,KAAO,UACjEgC,GAAQ,SACRA,GAAQ,OAERJ,GADAI,GAAQ,QAEV,IACAV,EAAGE,cAAc,eAAea,UAAYT,CAC9C,IAAG,WACD,IACEN,EAAGE,cAAc,qBAAqBC,SACtCH,EAAGE,cAAc,mBAAmBc,UAAU,cAChD,CAAE,MAAOC,GAAK,CAChB,GACF,EACAC,MAAO,SAACnB,GAEN,IADA,IAAMoB,EAAMC,SAASC,uBAAuB,gBACnCZ,EAAI,EAAGA,EAAIU,EAAIG,OAAQb,IAAK,CACnC,IAAMT,EAAKmB,EAAIV,GACTR,EAAMD,EAAGuB,aAAa,OAC5B,GAAW,MAAPtB,GAGAF,EAAM,IAAIyB,QACX,SAASxB,EAAGuB,aAAa,SAC5BxB,EAAIC,GAAKA,EACTD,EAAIE,IAAMA,EACVF,EAAIc,OAASY,SAASC,cAAa,WAASC,KAC5C5B,EAAIa,WAAaa,SAASC,cAAa,WAASE,MAChDpD,QAAQsB,OAAOC,EACjB,CACF,GAIFvB,QAAQ0C,QACRE,SAASS,iBAAiB,iBAAiB,WACzCrD,QAAQ0C,OACV","file":"../../../../js/plugins/tags/sites.js","sourcesContent":["const SitesJS = {\n requestAPI: (url, callback, timeout) => {\n let retryTimes = 5;\n\n function request() {\n return new Promise((resolve, reject) => {\n let status = 0; // 0 等待 1 完成 2 超时\n let timer = setTimeout(() => {\n if (status === 0) {\n status = 2;\n timer = null;\n reject('请求超时');\n if (retryTimes == 0) {\n timeout();\n }\n }\n }, 5000);\n fetch(url).then(function (response) {\n if (status !== 2) {\n clearTimeout(timer);\n resolve(response);\n timer = null;\n status = 1;\n }\n if (response.ok) {\n return response.json();\n }\n throw new Error('Network response was not ok.');\n }).then(function (data) {\n retryTimes = 0;\n callback(data);\n }).catch(function (error) {\n if (retryTimes > 0) {\n retryTimes -= 1;\n setTimeout(() => {\n request();\n }, 5000);\n } else {\n timeout();\n }\n });\n });\n }\n request();\n },\n layout: (cfg) => {\n const el = cfg.el;\n SitesJS.requestAPI(cfg.api, function (data) {\n el.querySelector('.loading-wrap').remove();\n const arr = data.content;\n var cellALL = \"\";\n arr.forEach((item, i) => {\n var cell = '<div class=\"site-card\">';\n cell += '<a class=\"card-link\" target=\"_blank\" rel=\"external noopener noreferrer\" href=\"' + item.url + '\">';\n cell += '<img alt=\"' + item.title + '\" src=\"' + (item.screenshot || ('https://image.thum.io/get/width/1024/crop/768/' + item.url)) + '\" onerror=\"errorImgCover(this)\"/>';\n cell += '<div class=\"info\">';\n cell += '<img alt=\"' + item.title + '\" src=\"' + (item.avatar || cfg.avatar) + '\" onerror=\"errorImgAvatar(this)\"/>';\n cell += '<span class=\"title\">' + item.title + '</span>';\n cell += '<span class=\"desc\">' + (item.description || item.url) + '</span>';\n cell += '</div>';\n cell += '</a>';\n cell += '</div>';\n cellALL += cell;\n });\n el.querySelector('.group-body').innerHTML = cellALL;\n }, function () {\n try {\n el.querySelector('.loading-wrap svg').remove();\n el.querySelector('.loading-wrap p').innerText('加载失败,请稍后重试。');\n } catch (e) { }\n });\n },\n start: (cfg) => {\n const els = document.getElementsByClassName('sitesjs-wrap');\n for (var i = 0; i < els.length; i++) {\n const el = els[i];\n const api = el.getAttribute('api');\n if (api == null) {\n continue;\n }\n var cfg = new Object();\n cfg.class = el.getAttribute('class');\n cfg.el = el;\n cfg.api = api;\n cfg.avatar = volantis.GLOBAL_CONFIG.default.link;\n cfg.screenshot = volantis.GLOBAL_CONFIG.default.cover;\n SitesJS.layout(cfg);\n }\n }\n}\n\n\nSitesJS.start();\ndocument.addEventListener('pjax:complete', function () {\n SitesJS.start();\n});"]}