diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index aa9753fd..b3204c44 100644 --- a/assets/js/theme.min.js +++ b/assets/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this5=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this5.isDark=!_this5.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$localStorage.setItem("theme",_this5.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this5.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _this6=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=searchConfig.maxResultLength||10;var snippetLength=searchConfig.snippetLength||50;var highlightTag=searchConfig.highlightTag||"em";var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this6.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this6.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this6._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this6._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this6._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this6._index=lunr(function(){var _this7=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this7.add(record)})});_this6._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this6._algoliaIndex=_this6._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this6._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}},templates:{suggestion:function suggestion(_ref5){var title=_ref5.title,date=_ref5.date,context=_ref5.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref6){var query=_ref6.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref7){_objectDestructuringEmpty(_ref7);var _ref8=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},searchType=_ref8.searchType,icon=_ref8.icon,href=_ref8.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this6._searchMobile=autosearch}else{_this6._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{key:"initHighlight",value:function initHighlight(){var _this8=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");$title.insertAdjacentHTML("afterbegin","");$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this8.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this8.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this8.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this8.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText.trim();if(_this8.config.code.maxShownLines<0||code.split("\n").length<_this8.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this8.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this8.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this9=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(document.getElementById("toc-static").getAttribute("date-kept")==="true"||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);var $postMeta=document.querySelector(".post-meta");$toc.style.marginTop="".concat($postMeta.offsetTop+$postMeta.clientHeight,"px");var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.getAttribute("data-header-desktop")!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px")});this._tocOnScroll=this._tocOnScroll||function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px");_this9.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this9.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect,_this10=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect===void 0?void 0:_document$querySelect.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this10.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this._mermaidOnSwitchTheme=this._mermaidOnSwitchTheme||function(){var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this11$config$mermai;var themes=(_this11$config$mermai=_this11.config.mermaid.themes)!==null&&_this11$config$mermai!==void 0?_this11$config$mermai:["neutral","dark"];mermaid.initialize({startOnLoad:false,theme:_this11.isDark?themes[1]:themes[0],securityLevel:"loose"});_this11.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this11.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}};this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);this._mermaidOnSwitchTheme()}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,afterComplete:function afterComplete(){if(i===group.length-1){if(typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration)}return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){if(!this.config.lightGallery){return}document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}this.config.comment.expired&&document.querySelector("#comments").remove();if(this.config.comment.artalk){if(this.config.comment.expired){return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl})}var artalk=new Artalk(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect2;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect2=document.querySelector(".utterances-frame"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this15.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect3;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect3=document.querySelector(".giscus-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);var _this=this;_this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}window.removeEventListener("message",_this.giscus2parentMsg)});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar,_document$querySelect4,_document$querySelect5;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"".concat((_document$querySelect4=(_document$querySelect5=document.querySelector("footer .fixit-icon"))===null||_document$querySelect5===void 0?void 0:_document$querySelect5.outerHTML)!==null&&_document$querySelect4!==void 0?_document$querySelect4:""," FixIt Theme"),appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this17.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this18=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this18.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"onScroll",value:function onScroll(){var _this20=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this20.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this20.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this20.newScrollTop=_this20.util.getScrollTop();var scroll=_this20.newScrollTop-_this20.oldScrollTop;_this20.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this20.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this20.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this20.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this20.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this20.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this20.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this20.oldScrollTop=_this20.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this21=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this21._resizeTimeout){_this21._resizeTimeout=window.setTimeout(function(){_this21._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this21.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this21.initToc();_this21.initMermaid();_this21.initSearch();var isMobile=_this21.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this22=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this22.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this22.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this23=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();window.setTimeout(function(){var _this23$config$encryp;_this23.initComment();if(!((_this23$config$encryp=_this23.config.encryption)!==null&&_this23$config$encryp!==void 0&&_this23$config$encryp.all)){_this23.initToc();_this23.initTocListener()}_this23.onScroll();_this23.onResize();_this23.onClickMask()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} +"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure "+obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this5=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this5.isDark=!_this5.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$localStorage.setItem("theme",_this5.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this5.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _this6=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=searchConfig.maxResultLength||10;var snippetLength=searchConfig.snippetLength||50;var highlightTag=searchConfig.highlightTag||"em";var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this6.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this6.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this6._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this6._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this6._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this6._index=lunr(function(){var _this7=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this7.add(record)})});_this6._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this6._algoliaIndex=_this6._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this6._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}},templates:{suggestion:function suggestion(_ref5){var title=_ref5.title,date=_ref5.date,context=_ref5.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref6){var query=_ref6.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref7){_objectDestructuringEmpty(_ref7);var _ref8=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},searchType=_ref8.searchType,icon=_ref8.icon,href=_ref8.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this6._searchMobile=autosearch}else{_this6._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{key:"initHighlight",value:function initHighlight(){var _this8=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");$title.insertAdjacentHTML("afterbegin","");$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this8.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this8.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this8.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this8.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText.trim();if(_this8.config.code.maxShownLines<0||code.split("\n").length<_this8.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this8.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this8.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this9=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(document.getElementById("toc-static").getAttribute("date-kept")==="true"||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);var $postMeta=document.querySelector(".post-meta");$toc.style.marginTop="".concat($postMeta.offsetTop+$postMeta.clientHeight,"px");var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.getAttribute("data-header-desktop")!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px")});this._tocOnScroll=this._tocOnScroll||function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px");_this9.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this9.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect,_this10=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect===void 0?void 0:_document$querySelect.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this10.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this._mermaidOnSwitchTheme=this._mermaidOnSwitchTheme||function(){var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this11$config$mermai;var themes=(_this11$config$mermai=_this11.config.mermaid.themes)!==null&&_this11$config$mermai!==void 0?_this11$config$mermai:["neutral","dark"];mermaid.initialize({startOnLoad:false,theme:_this11.isDark?themes[1]:themes[0],securityLevel:"loose"});_this11.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this11.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}};this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);this._mermaidOnSwitchTheme()}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,afterComplete:function afterComplete(){if(i===group.length-1){if(typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration)}return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){if(!this.config.lightGallery){return}document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}this.config.comment.expired&&document.querySelector("#comments").remove();if(this.config.comment.artalk){if(this.config.comment.expired){return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl})}var artalk=new Artalk(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect2;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect2=document.querySelector(".utterances-frame"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this15.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect3;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect3=document.querySelector(".giscus-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);var _this=this;_this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}window.removeEventListener("message",_this.giscus2parentMsg)});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar,_document$querySelect4,_document$querySelect5;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"".concat((_document$querySelect4=(_document$querySelect5=document.querySelector("footer .fixit-icon"))===null||_document$querySelect5===void 0?void 0:_document$querySelect5.outerHTML)!==null&&_document$querySelect4!==void 0?_document$querySelect4:""," FixIt Theme"),appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this17.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this18=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this18.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"onScroll",value:function onScroll(){var _this20=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this20.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this20.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this20.newScrollTop=_this20.util.getScrollTop();var scroll=_this20.newScrollTop-_this20.oldScrollTop;_this20.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this20.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this20.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this20.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this20.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this20.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this20.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this20.oldScrollTop=_this20.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this21=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this21._resizeTimeout){_this21._resizeTimeout=window.setTimeout(function(){_this21._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this21.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this21.initToc();_this21.initMermaid();_this21.initSearch();var isMobile=_this21.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this22=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this22.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this22.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this23=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();window.setTimeout(function(){var _this23$config$encryp;_this23.initComment();if(!((_this23$config$encryp=_this23.config.encryption)!==null&&_this23$config$encryp!==void 0&&_this23$config$encryp.all)){_this23.initToc();_this23.initTocListener()}_this23.onScroll();_this23.onResize();_this23.onClickMask()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} //# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/assets/js/theme.min.js.map b/assets/js/theme.min.js.map index 8e4c00e2..b4d4563f 100644 --- a/assets/js/theme.min.js.map +++ b/assets/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"file":"theme.min.js","names":["Util","elements","handler","i","length","document","documentElement","body","scrollTop","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","addEventListener","remove","once","date","Date","isNaN","getTime","selector","startsWith","getElementById","slice","querySelector","scrollIntoView","behavior","FixIt","now","run","config","siteTime","$runTimes","util","isValidDate","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","dataset","theme","newScrollTop","getScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","disableScrollEvent","objectFitImages","$meta","_themeColorOnSwitchTheme","content","dark","light","forEach","querySelectorAll","$icon","fetch","getAttribute","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","setAttribute","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","twemoji","parse","initMenuDesktop","initMenuMobile","$item","style","left","getBoundingClientRect","minWidth","offsetWidth","$menuToggleMobile","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","getElementsByClassName","$themeSwitch","localStorage","setItem","searchConfig","search","isMobile","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","value","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","ref","metadata","matchData","_indexData","uri","title","context","position","Object","values","matchPosition","substr","lastIndexOf","keys","key","replace","RegExp","lunrIndexURL","json","indexData","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","hits","_highlightResult","_snippetResult","templates","suggestion","empty","noResultsFound","footer","searchType","icon","href","on","_event","_dataset","_context","location","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","$details","$summary","lightgallery","lightGallery","plugins","lgThumbnail","lgZoom","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","licenseKey","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","trim","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","$postMeta","marginTop","offsetTop","clientHeight","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","marginBottom","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","top","nextTop","$parent","tocHidden","push","math","renderMathInElement","_mermaidOnSwitchTheme","$mermaidElements","themes","mermaid","initialize","startOnLoad","securityLevel","$mermaid","render","svgCode","echarts","registerTheme","lightTheme","darkTheme","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","init","renderer","setOption","JSON","_echartsOnResize","resize","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","lng","lat","zoom","lightStyle","darkStyle","marked","navigation","geolocate","scale","fullscreen","Map","container","center","minZoom","attributionControl","Marker","setLngLat","addTo","addControl","NavigationControl","GeolocateControl","positionOptions","enableHighAccuracy","showUserLocation","trackUserLocation","ScaleControl","FullscreenControl","MapboxLanguage","_mapboxOnSwitchTheme","getContainer","setStyle","typeit","typeitConfig","cursorSpeed","cursorChar","group","typeone","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","comments","images","$content","$imgs","$img","$link","append","cloneNode","replaceWith","comment","enable","$viewCommentsBtn","expired","artalk","Artalk","LoadCountWidget","server","site","pvEl","countEl","setDarkMode","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","pageview","Waline","pageviewCount","serverURL","path","pathname","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","removeEventListener","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","Watermark","outerHTML","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","enablePangu","pangu","autoSpacingPage","$tocNodes","decryptor","FixItDecryptor","decrypted","initTwemoji","initDetails","initLightGallery","initHighlight","initTable","initHeaderLink","initMath","initMermaid","initEcharts","initTypeit","initMapbox","$element","initToc","initTocListener","initPangu","reset","encryption","shortcode","initShortcodes","all","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","autoBookmark","Number","getItem","hash","scrollTo","$headers","ACCURACY","$fixedButtons","$backToTop","$readingProgressBar","headerDesktop","headerMobile","preventDefault","$mask","scroll","click","contentHeight","scrollHeight","innerHeight","scrollPercent","max","min","setProperty","toFixed","round","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initThemeColor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","initAutoMark","initComment","onScroll","onResize","onClickMask","themeInit","fixit"],"sources":["../../src/js/theme.js"],"sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) {\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement ?? document.body).scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n /**\n * add animate to element\n * @param {Element} element animate element\n * @param {String|Array} animation animation name\n * @param {Boolean} reserved reserved animation\n * @param {Function} callback remove callback\n */\n animateCSS(element, animation, reserved, callback) {\n !Array.isArray(animation) && (animation = [animation]);\n element.classList.add('animate__animated', ...animation);\n element.addEventListener('animationend', () => {\n !reserved && element.classList.remove('animate__animated', ...animation);\n typeof callback === 'function' && callback();\n }, { once: true });\n }\n\n /**\n * date validator\n * @param {*} date may be date or not\n * @returns {Boolean}\n */\n isValidDate(date) {\n return date instanceof Date && !isNaN(date.getTime());\n }\n \n /**\n * scroll some element into view\n * @param {String} selector element to scroll\n */\n scrollIntoView(selector) {\n const element = selector.startsWith('#')\n ? document.getElementById(selector.slice(1))\n : document.querySelector(selector);\n element?.scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.dataset.theme === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initThemeColor() {\n const $meta = document.querySelector('[name=\"theme-color\"]');\n if (!$meta) {\n return;\n }\n this._themeColorOnSwitchTheme = this._themeColorOnSwitchTheme || (() => {\n $meta.content = this.isDark ? $meta.dataset.dark : $meta.dataset.light;\n });\n this.switchThemeEventSet.add(this._themeColorOnSwitchTheme);\n this._themeColorOnSwitchTheme();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.getAttribute('data-svg-src'))\n .then((response) => response.text())\n .then((svg) => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n $titleElements.length && $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch((err) => {\n console.error(err);\n });\n });\n }\n\n initTwemoji() {\n this.config.twemoji && twemoji.parse(document.body);\n }\n\n initMenu() {\n this.initMenuDesktop();\n this.initMenuMobile();\n }\n\n initMenuDesktop() {\n // This is a dirty hack for fixing sub menu position error in desktop header\n this.util.forEach(document.querySelectorAll('.has-children, #header-desktop .language'), ($item) => {\n $item.addEventListener('mouseover', function () {\n this.querySelector('.sub-menu').style.left = `${this.getBoundingClientRect().left}px`;\n });\n $item.querySelector('.sub-menu').style.minWidth = `${$item.offsetWidth - 8}px`;\n });\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', (event) => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n this.disableScrollEvent = document.body.classList.contains('blur');\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n // add nested menu toggler\n this.util.forEach(document.querySelectorAll('.menu-item>.nested-item'), ($nestedItem) => {\n $nestedItem.addEventListener('click', function () {\n this.parentNode.querySelector('.sub-menu').classList.toggle('open');\n this.querySelector('.dropdown-icon').classList.toggle('open');\n });\n });\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), ($themeSwitch) => {\n $themeSwitch.addEventListener('click', () => {\n document.body.dataset.theme = document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n this.isDark = !this.isDark;\n window.localStorage?.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) {\n event();\n }\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || (isMobile && this._searchMobileOnce) || (!isMobile && this._searchDesktopOnce)) {\n return;\n }\n const maxResultLength = searchConfig.maxResultLength || 10;\n const snippetLength = searchConfig.snippetLength || 50;\n const highlightTag = searchConfig.highlightTag || 'em';\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n this.disableScrollEvent = true;\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n this.disableScrollEvent = false;\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask ||(() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`,\n {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true\n },\n {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) {\n query = lunr.queryHandler(query);\n }\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) {\n return;\n }\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) {\n position = matchPosition;\n }\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach((key) => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n uri: uri,\n title: title,\n date: matchData.date,\n context: context\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex =\n this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) {\n return;\n }\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) =>\n `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } =\n searchConfig.type === 'algolia'\n ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/'\n }\n : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n };\n return ``;\n }\n }\n }\n );\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) {\n this._searchMobile = autosearch;\n } else {\n this._searchDesktop = autosearch;\n }\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else {\n initAutosearch();\n }\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), ($details) => {\n const $summary = $details.querySelector('.details-summary');\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightgallery) {\n lightGallery(document.getElementById('content'), {\n plugins: [lgThumbnail, lgZoom],\n selector: '.lightgallery',\n speed: 400,\n hideBarsDelay: 2000,\n allowMediaOverlap: true,\n exThumbImage: 'data-thumbnail',\n toggleThumb: true,\n thumbWidth: 80,\n thumbHeight: '60px',\n actualSize: false,\n showZoomInOutIcons: true,\n licenseKey: 'none'\n });\n }\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), ($chroma) => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n // code title\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n $title.insertAdjacentHTML('afterbegin', '');\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n // ellipses icon\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n // edit button\n if (this.config.code.editable) {\n const $edit = document.createElement('span');\n $edit.classList.add('edit');\n $edit.insertAdjacentHTML('afterbegin', ``);\n $edit.addEventListener('click', () => {\n const $iconKey = $edit.querySelector('.fa-key');\n const $iconLock = $edit.querySelector('.fa-lock');\n const $preChromas = $edit.parentElement.parentElement.querySelectorAll('pre.chroma');\n const $preChroma = $preChromas.length === 2 ? $preChromas[1] : $preChromas[0];\n if ($iconKey) {\n $iconKey.classList.add('fa-lock');\n $iconKey.classList.remove('fa-key');\n $iconKey.title = this.config.code.editLockTitle;\n $preChroma.setAttribute('contenteditable', true);\n $preChroma.focus();\n } else {\n $iconLock.classList.add('fa-key');\n $iconLock.classList.remove('fa-lock');\n $iconLock.title = this.config.code.editUnLockTitle;\n $preChroma.setAttribute('contenteditable', false);\n $preChroma.blur();\n }\n }, false);\n $header.appendChild($edit);\n }\n // copy button\n if (this.config.code.copyTitle) {\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n // remove the leading and trailing whitespace of the code string\n const code = $code.innerText.trim();\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) {\n $chroma.classList.add('open');\n }\n $copy.title = this.config.code.copyTitle;\n $copy.addEventListener('click', () => {\n navigator.clipboard.writeText(code).then(() => {\n this.util.animateCSS($code, 'animate__flash');\n }, () => {\n console.error('Clipboard write failed!', 'Your browser does not support clipboard API!');\n });\n }, false);\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), ($table) => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), ($header) => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n /**\n * init table of contents\n */\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n if (document.getElementById('toc-static').getAttribute('date-kept') === 'true' || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n this._tocOnScroll && this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n $toc.style.visibility = 'visible';\n this.util.animateCSS($toc, ['animate__fadeIn', 'animate__faster'], true);\n const $postMeta = document.querySelector('.post-meta');\n $toc.style.marginTop = `${$postMeta.offsetTop + $postMeta.clientHeight}px`;\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.getAttribute('data-header-desktop') !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n document.querySelector('.container').addEventListener('resize', () => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n });\n this._tocOnScroll = this._tocOnScroll || (() => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n this.util.forEach($tocLinkElements, ($tocLink) => {\n $tocLink.classList.remove('active');\n });\n this.util.forEach($tocLiElements, ($tocLi) => {\n $tocLi.classList.remove('has-active');\n });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING) || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initTocListener() {\n const $toc = document.getElementById('toc-auto');\n const $tocContentAuto = document.getElementById('toc-content-auto');\n document.querySelector('#toc-auto>.toc-title')?.addEventListener('click', () => {\n const animation = ['animate__faster'];\n const tocHidden = $toc.classList.contains('toc-hidden');\n animation.push(tocHidden ? 'animate__fadeIn' : 'animate__fadeOut');\n $tocContentAuto.classList.remove(tocHidden ? 'animate__fadeOut' : 'animate__fadeIn');\n this.util.animateCSS($tocContentAuto, animation, true);\n $toc.classList.toggle('toc-hidden');\n }, false);\n }\n\n initMath() {\n if (this.config.math) {\n renderMathInElement(document.body, this.config.math);\n }\n }\n\n initMermaid() {\n this._mermaidOnSwitchTheme = this._mermaidOnSwitchTheme || (() => {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n const themes = this.config.mermaid.themes ?? ['neutral', 'dark'];\n mermaid.initialize({startOnLoad: false, theme: this.isDark ? themes[1] : themes[0], securityLevel: 'loose'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.innerHTML = svgCode;\n }, $mermaid);\n });\n }\n });\n this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);\n this._mermaidOnSwitchTheme();\n }\n\n initEcharts() {\n if (!this.config.echarts) {\n return;\n }\n echarts.registerTheme('light', this.config.echarts.lightTheme);\n echarts.registerTheme('dark', this.config.echarts.darkTheme);\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), ($echarts) => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'light', { renderer: 'svg' });\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), ($mapbox) => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: 0.2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(\n new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true\n },\n showUserLocation: true,\n trackUserLocation: true\n }),\n 'bottom-right'\n );\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, (mapbox) => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed || 100;\n const cursorSpeed = typeitConfig.cursorSpeed || 1000;\n const cursorChar = typeitConfig.cursorChar || '|';\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n }\n return;\n }\n instance.destroy();\n typeone(i + 1);\n }\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initCommentLightGallery(comments, images) {\n if (!this.config.lightGallery) {\n return;\n }\n document.querySelectorAll(comments).forEach(($content) => {\n const $imgs = $content.querySelectorAll(images + ':not([lightgallery-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('lightgallery-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'comment-lightgallery');\n $link.setAttribute('href', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n });\n if ($imgs.length) {\n lightGallery($content, {\n selector: '.comment-lightgallery',\n actualSize: false,\n hideBarsDelay: 2000,\n speed: 400\n });\n }\n });\n }\n\n initComment() {\n if (!this.config.comment?.enable) {\n return;\n }\n // whether to show the view comments button\n if (document.querySelector('#comments')) {\n const $viewCommentsBtn = document.querySelector('.view-comments');\n $viewCommentsBtn.classList.remove('d-none');\n // view comments button click event\n $viewCommentsBtn.addEventListener('click', () => {\n this.util.scrollIntoView('#comments');\n }, false);\n }\n this.config.comment.expired && document.querySelector('#comments').remove();\n if (this.config.comment.artalk) {\n if (this.config.comment.expired) {\n return Artalk.LoadCountWidget({\n server: this.config.comment.artalk.server,\n site: this.config.comment.artalk.site,\n pvEl: this.config.comment.artalk.pvEl,\n countEl: this.config.comment.artalk.countEl\n })\n }\n const artalk = new Artalk(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n });\n artalk.on('comments-loaded', () => {\n this.config.comment.artalk.lightgallery && this.initCommentLightGallery('.atk-comment .atk-content', 'img:not([atk-emoticon])');\n });\n return artalk;\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n return gitalk;\n }\n if (this.config.comment.valine) {\n return new Valine(this.config.comment.valine);\n }\n if (this.config.comment.waline) {\n if (this.config.comment.expired) {\n this.config.comment.waline.pageview && Waline.pageviewCount({\n serverURL: this.config.comment.waline.serverURL,\n path: window.location.pathname\n });\n return;\n }\n return Waline.init(this.config.comment.waline);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme\n };\n document.querySelector('.utterances-frame')?.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n return;\n }\n if (this.config.comment.twikoo) {\n const twikooConfig = this.config.comment.twikoo;\n if (twikooConfig.lightgallery) {\n twikooConfig.onCommentLoaded = () => {\n this.initCommentLightGallery('.tk-comments .tk-content', 'img:not(.tk-owo-emotion)');\n };\n }\n twikoo.init(twikooConfig);\n if (twikooConfig.commentCount) {\n // https://twikoo.js.org/api.html#get-comments-count\n twikoo\n .getCommentsCount({\n envId: twikooConfig.envId,\n region: twikooConfig.region,\n urls: [window.location.pathname],\n includeReply: false\n })\n .then(function (response) {\n const twikooCommentCount = document.getElementById('twikoo-comment-count');\n if (twikooCommentCount) twikooCommentCount.innerHTML = response[0].count;\n });\n }\n return;\n }\n if (this.config.comment.giscus) {\n const giscusConfig = this.config.comment.giscus;\n this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {\n const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};\n document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');\n });\n this.switchThemeEventSet.add(this._giscusOnSwitchTheme);\n const _this = this;\n _this.giscus2parentMsg = window.addEventListener('message', (event) => {\n const $script = document.querySelector('#giscus>script');\n if ($script){\n _this._giscusOnSwitchTheme();\n $script.parentElement.removeChild($script);\n }\n window.removeEventListener('message', _this.giscus2parentMsg);\n });\n return;\n }\n }\n\n initCookieconsent() {\n this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime = () => {\n let now = new Date();\n let run = new Date(this.config.siteTime);\n let $runTimes = document.querySelector('.run-times');\n if (!this.util.isValidDate(run) || !$runTimes) {\n clearInterval(this.siteTime);\n $runTimes && $runTimes.parentNode.remove();\n return;\n }\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - 24 * days),\n minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n $runTimes.innerHTML = `${days}, ${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`;\n }\n\n initSiteTime() {\n if (this.config.siteTime) {\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener('visibilitychange', () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n }, false);\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker\n .ready\n .then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark?.enable &&\n new Watermark({\n content: this.config.watermark.content || `${document.querySelector('footer .fixit-icon')?.outerHTML ?? ''} FixIt Theme`,\n appendTo: this.config.watermark.appendto || '.wrapper>main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowspacing,\n colSpacing: this.config.watermark.colspacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontsize,\n fontFamily: this.config.watermark.fontfamily\n });\n }\n\n initPangu() {\n // TODO 待优化:只渲染\n this.config.enablePangu && pangu.autoSpacingPage();\n }\n\n initFixItDecryptor() {\n const $tocNodes = document.querySelectorAll('#toc-auto>.d-none, #toc-static.d-none');\n this.decryptor = new FixItDecryptor({\n decrypted: () => {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.remove('d-none');\n });\n this.initToc();\n this.initTocListener();\n this.initPangu();\n },\n reset: () => {\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.add('d-none');\n });\n }\n });\n if (this.config.encryption?.shortcode) {\n this.decryptor.addEventListener('decrypted', () => {\n this.decryptor.initShortcodes();\n })\n this.decryptor.initShortcodes();\n }\n this.config.encryption?.all && this.decryptor.init();\n }\n\n initMDevtools() {\n const type = this.config?.mDevtools;\n if (typeof window.orientation === 'undefined') {\n return;\n }\n if (type === 'vConsole') {\n const vConsole = new VConsole({\n target: '.widgets',\n theme: this.isDark ? 'dark' : 'light'\n });\n this._vConsoleOnSwitchTheme = this._vConsoleOnSwitchTheme || (() => {\n vConsole.setOption('theme', this.isDark ? 'dark' : 'light');\n });\n this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme);\n }\n if(type === 'eruda') {\n eruda.init({\n defaults: { theme: this.isDark ? 'Dark' : 'Light' }\n });\n this._erudaOnSwitchTheme = this._erudaOnSwitchTheme || (() => {\n eruda.util.evalCss.setTheme(this.isDark ? 'Dark' : 'Light');\n });\n this.switchThemeEventSet.add(this._erudaOnSwitchTheme);\n }\n }\n\n initAutoMark() {\n if (!this.config.autoBookmark) {\n return;\n }\n window.addEventListener('beforeunload', () => {\n window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());\n });\n const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));\n // If the page opens with a specific hash, just jump out\n if (scrollTop && location.hash === '') {\n window.scrollTo({ \n top: scrollTop,\n behavior: 'smooth'\n });\n }\n }\n\n onScroll() {\n const $headers = [];\n const ACCURACY = 20;\n const $fixedButtons = document.querySelector('.fixed-buttons');\n const $backToTop = document.querySelector('.back-to-top');\n const $readingProgressBar = document.querySelector('.reading-progress-bar');\n if (document.body.dataset.headerDesktop === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.dataset.headerMobile === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n // b2t button click event\n $backToTop?.addEventListener('click', () => {\n this.util.scrollIntoView('body');\n });\n window.addEventListener('scroll', (event) => {\n if (this.disableScrollEvent) {\n event.preventDefault();\n return;\n }\n const $mask = document.getElementById('mask');\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n // header animation\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown'], true);\n $mask.click();\n }\n });\n const contentHeight = document.body.scrollHeight - window.innerHeight;\n const scrollPercent = Math.max(Math.min(100 * Math.max(this.newScrollTop, 0) / contentHeight, 100), 0);\n if ($readingProgressBar) {\n $readingProgressBar.style.setProperty('--progress', `${scrollPercent.toFixed(2)}%`);\n }\n // whether to show fixed buttons\n if ($fixedButtons) {\n if (scrollPercent > 1) {\n $fixedButtons.classList.remove('d-none', 'animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn'], true);\n } else {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut'], true, () => {\n $fixedButtons.classList.contains('animate__fadeOut') && $fixedButtons.classList.add('d-none');\n });\n }\n if ($backToTop) {\n $backToTop.querySelector('span').innerText = `${Math.round(scrollPercent)}%`;\n }\n }\n for (let event of this.scrollEventSet) {\n event();\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n let resizeBefore = this.util.isMobile();\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) {\n event();\n }\n this.initToc();\n this.initMermaid();\n this.initSearch();\n\n const isMobile = this.util.isMobile()\n if (isMobile !== resizeBefore) {\n document.getElementById('mask').click();\n resizeBefore = isMobile;\n }\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n if (!document.body.classList.contains('blur')) {\n return;\n }\n for (let event of this.clickMaskEventSet) {\n event();\n }\n this.disableScrollEvent = false;\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n try {\n if (this.config.encryption) {\n this.initFixItDecryptor();\n } else if (!this.config.encryption?.all) {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initPangu();\n }\n this.initThemeColor();\n this.initSVGIcon();\n this.initMenu();\n this.initSwitchTheme();\n this.initSearch();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initMDevtools();\n this.initAutoMark();\n\n window.setTimeout(() => {\n this.initComment();\n if (!this.config.encryption?.all) {\n this.initToc();\n this.initTocListener();\n }\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }, 100);\n } catch (err) {\n console.error(err);\n }\n }\n}\n\nconst themeInit = () => {\n window.fixit = new FixIt();\n window.fixit.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"theme.min.js","names":["Util","elements","handler","i","length","document","documentElement","body","scrollTop","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","addEventListener","remove","once","date","Date","isNaN","getTime","selector","startsWith","getElementById","slice","querySelector","scrollIntoView","behavior","FixIt","now","run","config","siteTime","$runTimes","util","isValidDate","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","dataset","theme","newScrollTop","getScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","disableScrollEvent","objectFitImages","$meta","_themeColorOnSwitchTheme","content","dark","light","forEach","querySelectorAll","$icon","fetch","getAttribute","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","setAttribute","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","twemoji","parse","initMenuDesktop","initMenuMobile","$item","style","left","getBoundingClientRect","minWidth","offsetWidth","$menuToggleMobile","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","getElementsByClassName","$themeSwitch","localStorage","setItem","searchConfig","search","isMobile","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","value","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","ref","metadata","matchData","_indexData","uri","title","context","position","Object","values","matchPosition","substr","lastIndexOf","keys","key","replace","RegExp","lunrIndexURL","json","indexData","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","hits","_highlightResult","_snippetResult","templates","suggestion","empty","noResultsFound","footer","searchType","icon","href","on","_event","_dataset","_context","location","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","$details","$summary","lightgallery","lightGallery","plugins","lgThumbnail","lgZoom","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","licenseKey","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","trim","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","$postMeta","marginTop","offsetTop","clientHeight","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","marginBottom","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","top","nextTop","$parent","tocHidden","push","math","renderMathInElement","_mermaidOnSwitchTheme","$mermaidElements","themes","mermaid","initialize","startOnLoad","securityLevel","$mermaid","render","svgCode","echarts","registerTheme","lightTheme","darkTheme","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","init","renderer","setOption","JSON","_echartsOnResize","resize","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","lng","lat","zoom","lightStyle","darkStyle","marked","navigation","geolocate","scale","fullscreen","Map","container","center","minZoom","attributionControl","Marker","setLngLat","addTo","addControl","NavigationControl","GeolocateControl","positionOptions","enableHighAccuracy","showUserLocation","trackUserLocation","ScaleControl","FullscreenControl","MapboxLanguage","_mapboxOnSwitchTheme","getContainer","setStyle","typeit","typeitConfig","cursorSpeed","cursorChar","group","typeone","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","comments","images","$content","$imgs","$img","$link","append","cloneNode","replaceWith","comment","enable","$viewCommentsBtn","expired","artalk","Artalk","LoadCountWidget","server","site","pvEl","countEl","setDarkMode","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","pageview","Waline","pageviewCount","serverURL","path","pathname","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","removeEventListener","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","Watermark","outerHTML","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","enablePangu","pangu","autoSpacingPage","$tocNodes","decryptor","FixItDecryptor","decrypted","initTwemoji","initDetails","initLightGallery","initHighlight","initTable","initHeaderLink","initMath","initMermaid","initEcharts","initTypeit","initMapbox","$element","initToc","initTocListener","initPangu","reset","encryption","shortcode","initShortcodes","all","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","autoBookmark","Number","getItem","hash","scrollTo","$headers","ACCURACY","$fixedButtons","$backToTop","$readingProgressBar","headerDesktop","headerMobile","preventDefault","$mask","scroll","click","contentHeight","scrollHeight","innerHeight","scrollPercent","max","min","setProperty","toFixed","round","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initThemeColor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","initAutoMark","initComment","onScroll","onResize","onClickMask","themeInit","fixit"],"sources":["../../src/js/theme.js"],"sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) {\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement ?? document.body).scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n /**\n * add animate to element\n * @param {Element} element animate element\n * @param {String|Array} animation animation name\n * @param {Boolean} reserved reserved animation\n * @param {Function} callback remove callback\n */\n animateCSS(element, animation, reserved, callback) {\n !Array.isArray(animation) && (animation = [animation]);\n element.classList.add('animate__animated', ...animation);\n element.addEventListener('animationend', () => {\n !reserved && element.classList.remove('animate__animated', ...animation);\n typeof callback === 'function' && callback();\n }, { once: true });\n }\n\n /**\n * date validator\n * @param {*} date may be date or not\n * @returns {Boolean}\n */\n isValidDate(date) {\n return date instanceof Date && !isNaN(date.getTime());\n }\n \n /**\n * scroll some element into view\n * @param {String} selector element to scroll\n */\n scrollIntoView(selector) {\n const element = selector.startsWith('#')\n ? document.getElementById(selector.slice(1))\n : document.querySelector(selector);\n element?.scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.dataset.theme === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initThemeColor() {\n const $meta = document.querySelector('[name=\"theme-color\"]');\n if (!$meta) {\n return;\n }\n this._themeColorOnSwitchTheme = this._themeColorOnSwitchTheme || (() => {\n $meta.content = this.isDark ? $meta.dataset.dark : $meta.dataset.light;\n });\n this.switchThemeEventSet.add(this._themeColorOnSwitchTheme);\n this._themeColorOnSwitchTheme();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.getAttribute('data-svg-src'))\n .then((response) => response.text())\n .then((svg) => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n $titleElements.length && $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch((err) => {\n console.error(err);\n });\n });\n }\n\n initTwemoji() {\n this.config.twemoji && twemoji.parse(document.body);\n }\n\n initMenu() {\n this.initMenuDesktop();\n this.initMenuMobile();\n }\n\n initMenuDesktop() {\n // This is a dirty hack for fixing sub menu position error in desktop header\n this.util.forEach(document.querySelectorAll('.has-children, #header-desktop .language'), ($item) => {\n $item.addEventListener('mouseover', function () {\n this.querySelector('.sub-menu').style.left = `${this.getBoundingClientRect().left}px`;\n });\n $item.querySelector('.sub-menu').style.minWidth = `${$item.offsetWidth - 8}px`;\n });\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', (event) => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n this.disableScrollEvent = document.body.classList.contains('blur');\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n // add nested menu toggler\n this.util.forEach(document.querySelectorAll('.menu-item>.nested-item'), ($nestedItem) => {\n $nestedItem.addEventListener('click', function () {\n this.parentNode.querySelector('.sub-menu').classList.toggle('open');\n this.querySelector('.dropdown-icon').classList.toggle('open');\n });\n });\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), ($themeSwitch) => {\n $themeSwitch.addEventListener('click', () => {\n document.body.dataset.theme = document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n this.isDark = !this.isDark;\n window.localStorage?.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) {\n event();\n }\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || (isMobile && this._searchMobileOnce) || (!isMobile && this._searchDesktopOnce)) {\n return;\n }\n const maxResultLength = searchConfig.maxResultLength || 10;\n const snippetLength = searchConfig.snippetLength || 50;\n const highlightTag = searchConfig.highlightTag || 'em';\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n this.disableScrollEvent = true;\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n this.disableScrollEvent = false;\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask ||(() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`,\n {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true\n },\n {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) {\n query = lunr.queryHandler(query);\n }\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) {\n return;\n }\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) {\n position = matchPosition;\n }\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach((key) => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n uri: uri,\n title: title,\n date: matchData.date,\n context: context\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex =\n this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) {\n return;\n }\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) =>\n `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } =\n searchConfig.type === 'algolia'\n ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/'\n }\n : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n };\n return ``;\n }\n }\n }\n );\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) {\n this._searchMobile = autosearch;\n } else {\n this._searchDesktop = autosearch;\n }\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else {\n initAutosearch();\n }\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), ($details) => {\n const $summary = $details.querySelector('.details-summary');\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightgallery) {\n lightGallery(document.getElementById('content'), {\n plugins: [lgThumbnail, lgZoom],\n selector: '.lightgallery',\n speed: 400,\n hideBarsDelay: 2000,\n allowMediaOverlap: true,\n exThumbImage: 'data-thumbnail',\n toggleThumb: true,\n thumbWidth: 80,\n thumbHeight: '60px',\n actualSize: false,\n showZoomInOutIcons: true,\n licenseKey: 'none'\n });\n }\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), ($chroma) => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n // code title\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n $title.insertAdjacentHTML('afterbegin', '');\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n // ellipses icon\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n // edit button\n if (this.config.code.editable) {\n const $edit = document.createElement('span');\n $edit.classList.add('edit');\n $edit.insertAdjacentHTML('afterbegin', ``);\n $edit.addEventListener('click', () => {\n const $iconKey = $edit.querySelector('.fa-key');\n const $iconLock = $edit.querySelector('.fa-lock');\n const $preChromas = $edit.parentElement.parentElement.querySelectorAll('pre.chroma');\n const $preChroma = $preChromas.length === 2 ? $preChromas[1] : $preChromas[0];\n if ($iconKey) {\n $iconKey.classList.add('fa-lock');\n $iconKey.classList.remove('fa-key');\n $iconKey.title = this.config.code.editLockTitle;\n $preChroma.setAttribute('contenteditable', true);\n $preChroma.focus();\n } else {\n $iconLock.classList.add('fa-key');\n $iconLock.classList.remove('fa-lock');\n $iconLock.title = this.config.code.editUnLockTitle;\n $preChroma.setAttribute('contenteditable', false);\n $preChroma.blur();\n }\n }, false);\n $header.appendChild($edit);\n }\n // copy button\n if (this.config.code.copyTitle) {\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n // remove the leading and trailing whitespace of the code string\n const code = $code.innerText.trim();\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) {\n $chroma.classList.add('open');\n }\n $copy.title = this.config.code.copyTitle;\n $copy.addEventListener('click', () => {\n navigator.clipboard.writeText(code).then(() => {\n this.util.animateCSS($code, 'animate__flash');\n }, () => {\n console.error('Clipboard write failed!', 'Your browser does not support clipboard API!');\n });\n }, false);\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), ($table) => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), ($header) => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n /**\n * init table of contents\n */\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n if (document.getElementById('toc-static').getAttribute('date-kept') === 'true' || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n this._tocOnScroll && this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n $toc.style.visibility = 'visible';\n this.util.animateCSS($toc, ['animate__fadeIn', 'animate__faster'], true);\n const $postMeta = document.querySelector('.post-meta');\n $toc.style.marginTop = `${$postMeta.offsetTop + $postMeta.clientHeight}px`;\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.getAttribute('data-header-desktop') !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n document.querySelector('.container').addEventListener('resize', () => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n });\n this._tocOnScroll = this._tocOnScroll || (() => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n this.util.forEach($tocLinkElements, ($tocLink) => {\n $tocLink.classList.remove('active');\n });\n this.util.forEach($tocLiElements, ($tocLi) => {\n $tocLi.classList.remove('has-active');\n });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING) || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initTocListener() {\n const $toc = document.getElementById('toc-auto');\n const $tocContentAuto = document.getElementById('toc-content-auto');\n document.querySelector('#toc-auto>.toc-title')?.addEventListener('click', () => {\n const animation = ['animate__faster'];\n const tocHidden = $toc.classList.contains('toc-hidden');\n animation.push(tocHidden ? 'animate__fadeIn' : 'animate__fadeOut');\n $tocContentAuto.classList.remove(tocHidden ? 'animate__fadeOut' : 'animate__fadeIn');\n this.util.animateCSS($tocContentAuto, animation, true);\n $toc.classList.toggle('toc-hidden');\n }, false);\n }\n\n initMath() {\n if (this.config.math) {\n renderMathInElement(document.body, this.config.math);\n }\n }\n\n initMermaid() {\n this._mermaidOnSwitchTheme = this._mermaidOnSwitchTheme || (() => {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n const themes = this.config.mermaid.themes ?? ['neutral', 'dark'];\n mermaid.initialize({startOnLoad: false, theme: this.isDark ? themes[1] : themes[0], securityLevel: 'loose'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.innerHTML = svgCode;\n }, $mermaid);\n });\n }\n });\n this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);\n this._mermaidOnSwitchTheme();\n }\n\n initEcharts() {\n if (!this.config.echarts) {\n return;\n }\n echarts.registerTheme('light', this.config.echarts.lightTheme);\n echarts.registerTheme('dark', this.config.echarts.darkTheme);\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), ($echarts) => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'light', { renderer: 'svg' });\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), ($mapbox) => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: 0.2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(\n new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true\n },\n showUserLocation: true,\n trackUserLocation: true\n }),\n 'bottom-right'\n );\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, (mapbox) => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed || 100;\n const cursorSpeed = typeitConfig.cursorSpeed || 1000;\n const cursorChar = typeitConfig.cursorChar || '|';\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n }\n return;\n }\n instance.destroy();\n typeone(i + 1);\n }\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initCommentLightGallery(comments, images) {\n if (!this.config.lightGallery) {\n return;\n }\n document.querySelectorAll(comments).forEach(($content) => {\n const $imgs = $content.querySelectorAll(images + ':not([lightgallery-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('lightgallery-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'comment-lightgallery');\n $link.setAttribute('href', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n });\n if ($imgs.length) {\n lightGallery($content, {\n selector: '.comment-lightgallery',\n actualSize: false,\n hideBarsDelay: 2000,\n speed: 400\n });\n }\n });\n }\n\n initComment() {\n if (!this.config.comment?.enable) {\n return;\n }\n // whether to show the view comments button\n if (document.querySelector('#comments')) {\n const $viewCommentsBtn = document.querySelector('.view-comments');\n $viewCommentsBtn.classList.remove('d-none');\n // view comments button click event\n $viewCommentsBtn.addEventListener('click', () => {\n this.util.scrollIntoView('#comments');\n }, false);\n }\n this.config.comment.expired && document.querySelector('#comments').remove();\n if (this.config.comment.artalk) {\n if (this.config.comment.expired) {\n return Artalk.LoadCountWidget({\n server: this.config.comment.artalk.server,\n site: this.config.comment.artalk.site,\n pvEl: this.config.comment.artalk.pvEl,\n countEl: this.config.comment.artalk.countEl\n })\n }\n const artalk = new Artalk(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n });\n artalk.on('comments-loaded', () => {\n this.config.comment.artalk.lightgallery && this.initCommentLightGallery('.atk-comment .atk-content', 'img:not([atk-emoticon])');\n });\n return artalk;\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n return gitalk;\n }\n if (this.config.comment.valine) {\n return new Valine(this.config.comment.valine);\n }\n if (this.config.comment.waline) {\n if (this.config.comment.expired) {\n this.config.comment.waline.pageview && Waline.pageviewCount({\n serverURL: this.config.comment.waline.serverURL,\n path: window.location.pathname\n });\n return;\n }\n return Waline.init(this.config.comment.waline);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme\n };\n document.querySelector('.utterances-frame')?.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n return;\n }\n if (this.config.comment.twikoo) {\n const twikooConfig = this.config.comment.twikoo;\n if (twikooConfig.lightgallery) {\n twikooConfig.onCommentLoaded = () => {\n this.initCommentLightGallery('.tk-comments .tk-content', 'img:not(.tk-owo-emotion)');\n };\n }\n twikoo.init(twikooConfig);\n if (twikooConfig.commentCount) {\n // https://twikoo.js.org/api.html#get-comments-count\n twikoo\n .getCommentsCount({\n envId: twikooConfig.envId,\n region: twikooConfig.region,\n urls: [window.location.pathname],\n includeReply: false\n })\n .then(function (response) {\n const twikooCommentCount = document.getElementById('twikoo-comment-count');\n if (twikooCommentCount) twikooCommentCount.innerHTML = response[0].count;\n });\n }\n return;\n }\n if (this.config.comment.giscus) {\n const giscusConfig = this.config.comment.giscus;\n this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {\n const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};\n document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');\n });\n this.switchThemeEventSet.add(this._giscusOnSwitchTheme);\n const _this = this;\n _this.giscus2parentMsg = window.addEventListener('message', (event) => {\n const $script = document.querySelector('#giscus>script');\n if ($script){\n _this._giscusOnSwitchTheme();\n $script.parentElement.removeChild($script);\n }\n window.removeEventListener('message', _this.giscus2parentMsg);\n });\n return;\n }\n }\n\n initCookieconsent() {\n this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime = () => {\n let now = new Date();\n let run = new Date(this.config.siteTime);\n let $runTimes = document.querySelector('.run-times');\n if (!this.util.isValidDate(run) || !$runTimes) {\n clearInterval(this.siteTime);\n $runTimes && $runTimes.parentNode.remove();\n return;\n }\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - 24 * days),\n minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n $runTimes.innerHTML = `${days}, ${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`;\n }\n\n initSiteTime() {\n if (this.config.siteTime) {\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener('visibilitychange', () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n }, false);\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker\n .ready\n .then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark?.enable &&\n new Watermark({\n content: this.config.watermark.content || `${document.querySelector('footer .fixit-icon')?.outerHTML ?? ''} FixIt Theme`,\n appendTo: this.config.watermark.appendto || '.wrapper>main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowspacing,\n colSpacing: this.config.watermark.colspacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontsize,\n fontFamily: this.config.watermark.fontfamily\n });\n }\n\n initPangu() {\n // TODO 待优化:只渲染\n this.config.enablePangu && pangu.autoSpacingPage();\n }\n\n initFixItDecryptor() {\n const $tocNodes = document.querySelectorAll('#toc-auto>.d-none, #toc-static.d-none');\n this.decryptor = new FixItDecryptor({\n decrypted: () => {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.remove('d-none');\n });\n this.initToc();\n this.initTocListener();\n this.initPangu();\n },\n reset: () => {\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.add('d-none');\n });\n }\n });\n if (this.config.encryption?.shortcode) {\n this.decryptor.addEventListener('decrypted', () => {\n this.decryptor.initShortcodes();\n })\n this.decryptor.initShortcodes();\n }\n this.config.encryption?.all && this.decryptor.init();\n }\n\n initMDevtools() {\n const type = this.config?.mDevtools;\n if (typeof window.orientation === 'undefined') {\n return;\n }\n if (type === 'vConsole') {\n const vConsole = new VConsole({\n target: '.widgets',\n theme: this.isDark ? 'dark' : 'light'\n });\n this._vConsoleOnSwitchTheme = this._vConsoleOnSwitchTheme || (() => {\n vConsole.setOption('theme', this.isDark ? 'dark' : 'light');\n });\n this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme);\n }\n if(type === 'eruda') {\n eruda.init({\n defaults: { theme: this.isDark ? 'Dark' : 'Light' }\n });\n this._erudaOnSwitchTheme = this._erudaOnSwitchTheme || (() => {\n eruda.util.evalCss.setTheme(this.isDark ? 'Dark' : 'Light');\n });\n this.switchThemeEventSet.add(this._erudaOnSwitchTheme);\n }\n }\n\n initAutoMark() {\n if (!this.config.autoBookmark) {\n return;\n }\n window.addEventListener('beforeunload', () => {\n window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());\n });\n const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));\n // If the page opens with a specific hash, just jump out\n if (scrollTop && location.hash === '') {\n window.scrollTo({ \n top: scrollTop,\n behavior: 'smooth'\n });\n }\n }\n\n onScroll() {\n const $headers = [];\n const ACCURACY = 20;\n const $fixedButtons = document.querySelector('.fixed-buttons');\n const $backToTop = document.querySelector('.back-to-top');\n const $readingProgressBar = document.querySelector('.reading-progress-bar');\n if (document.body.dataset.headerDesktop === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.dataset.headerMobile === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n // b2t button click event\n $backToTop?.addEventListener('click', () => {\n this.util.scrollIntoView('body');\n });\n window.addEventListener('scroll', (event) => {\n if (this.disableScrollEvent) {\n event.preventDefault();\n return;\n }\n const $mask = document.getElementById('mask');\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n // header animation\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown'], true);\n $mask.click();\n }\n });\n const contentHeight = document.body.scrollHeight - window.innerHeight;\n const scrollPercent = Math.max(Math.min(100 * Math.max(this.newScrollTop, 0) / contentHeight, 100), 0);\n if ($readingProgressBar) {\n $readingProgressBar.style.setProperty('--progress', `${scrollPercent.toFixed(2)}%`);\n }\n // whether to show fixed buttons\n if ($fixedButtons) {\n if (scrollPercent > 1) {\n $fixedButtons.classList.remove('d-none', 'animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn'], true);\n } else {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut'], true, () => {\n $fixedButtons.classList.contains('animate__fadeOut') && $fixedButtons.classList.add('d-none');\n });\n }\n if ($backToTop) {\n $backToTop.querySelector('span').innerText = `${Math.round(scrollPercent)}%`;\n }\n }\n for (let event of this.scrollEventSet) {\n event();\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n let resizeBefore = this.util.isMobile();\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) {\n event();\n }\n this.initToc();\n this.initMermaid();\n this.initSearch();\n\n const isMobile = this.util.isMobile()\n if (isMobile !== resizeBefore) {\n document.getElementById('mask').click();\n resizeBefore = isMobile;\n }\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n if (!document.body.classList.contains('blur')) {\n return;\n }\n for (let event of this.clickMaskEventSet) {\n event();\n }\n this.disableScrollEvent = false;\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n try {\n if (this.config.encryption) {\n this.initFixItDecryptor();\n } else if (!this.config.encryption?.all) {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initPangu();\n }\n this.initThemeColor();\n this.initSVGIcon();\n this.initMenu();\n this.initSwitchTheme();\n this.initSearch();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initMDevtools();\n this.initAutoMark();\n\n window.setTimeout(() => {\n this.initComment();\n if (!this.config.encryption?.all) {\n this.initToc();\n this.initTocListener();\n }\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }, 100);\n } catch (err) {\n console.error(err);\n }\n }\n}\n\nconst themeInit = () => {\n window.fixit = new FixIt();\n window.fixit.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 878e38e7..bda3bf8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,13 @@ "version": "0.2.17-RC", "license": "MIT", "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.19.1", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.19.6", + "@babel/preset-env": "^7.19.4", "atomic-algolia": "^0.3.19", "babelify": "^10.0.0", "browserify": "^17.0.0", - "core-js": "^3.25.2", + "core-js": "^3.26.0", "segmentit": "^2.0.3" } }, @@ -33,9 +33,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/cli/-/cli-7.18.10.tgz", - "integrity": "sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.19.3.tgz", + "integrity": "sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.8", @@ -74,30 +74,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -113,12 +113,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", + "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", "dev": true, "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -166,12 +166,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -205,9 +205,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -221,9 +221,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", @@ -308,19 +308,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -339,9 +339,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -382,12 +382,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -418,18 +418,18 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -460,14 +460,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -488,9 +488,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -532,13 +532,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -679,14 +679,14 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" }, @@ -782,7 +782,7 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { @@ -908,7 +908,7 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { @@ -1020,12 +1020,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1035,16 +1035,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -1072,12 +1073,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1231,16 +1232,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1266,13 +1266,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1313,12 +1313,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz", + "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1409,12 +1409,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { @@ -1520,18 +1520,18 @@ "hasInstallScript": true }, "node_modules/@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1540,7 +1540,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1564,10 +1564,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1577,9 +1577,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -1587,18 +1587,18 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "engines": { @@ -1608,6 +1608,19 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", @@ -1651,19 +1664,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1672,13 +1685,13 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1960,13 +1973,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -1987,12 +2000,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -2267,15 +2280,25 @@ } }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -2338,10 +2361,20 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001374", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz", - "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==", - "dev": true + "version": "1.0.30001429", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz", + "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/chalk": { "version": "2.4.2", @@ -2489,9 +2522,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.2.tgz", - "integrity": "sha512-YB4IAT1bjEfxTJ1XYy11hJAKskO+qmhuDBM8/guIfMz4JvdsAQAqvyb97zXX7JgSrfPLG5mRGFWJwJD39ruq2A==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==", "dev": true, "hasInstallScript": true, "funding": { @@ -2500,22 +2533,16 @@ } }, "node_modules/core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dev": true, "dependencies": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, "node_modules/core-util-is": { @@ -2750,9 +2777,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.211", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz", - "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/elliptic": { @@ -2854,7 +2881,7 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { @@ -3939,7 +3966,7 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, @@ -4635,10 +4662,20 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -4759,9 +4796,9 @@ } }, "@babel/cli": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/cli/-/cli-7.18.10.tgz", - "integrity": "sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.19.3.tgz", + "integrity": "sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.8", @@ -4785,27 +4822,27 @@ } }, "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true }, "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -4814,12 +4851,12 @@ } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", + "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", "dev": true, "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -4857,12 +4894,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -4884,9 +4921,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -4894,9 +4931,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.17.7", @@ -4960,19 +4997,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" } }, "@babel/helper-optimise-call-expression": { @@ -4985,9 +5022,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -5016,12 +5053,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -5043,15 +5080,15 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { @@ -5073,14 +5110,14 @@ } }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" } }, "@babel/highlight": { @@ -5095,9 +5132,9 @@ } }, "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -5121,13 +5158,13 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } @@ -5214,14 +5251,14 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" } @@ -5281,7 +5318,7 @@ }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { @@ -5371,7 +5408,7 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { @@ -5444,25 +5481,26 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -5478,12 +5516,12 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -5577,16 +5615,15 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -5600,13 +5637,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-new-target": { @@ -5629,12 +5666,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz", + "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-property-literals": { @@ -5689,12 +5726,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, @@ -5763,18 +5800,18 @@ } }, "@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -5783,7 +5820,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -5807,10 +5844,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -5820,9 +5857,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -5830,19 +5867,31 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" + }, + "dependencies": { + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + } } }, "@babel/preset-modules": { @@ -5879,31 +5928,31 @@ } }, "@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -6146,13 +6195,13 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" } }, @@ -6167,12 +6216,12 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-plugin-preval": { @@ -6418,15 +6467,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "buffer": { @@ -6480,9 +6529,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001374", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz", - "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==", + "version": "1.0.30001429", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz", + "integrity": "sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==", "dev": true }, "chalk": { @@ -6618,27 +6667,18 @@ } }, "core-js": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.2.tgz", - "integrity": "sha512-YB4IAT1bjEfxTJ1XYy11hJAKskO+qmhuDBM8/guIfMz4JvdsAQAqvyb97zXX7JgSrfPLG5mRGFWJwJD39ruq2A==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==", "dev": true }, "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dev": true, "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.4" } }, "core-util-is": { @@ -6841,9 +6881,9 @@ } }, "electron-to-chromium": { - "version": "1.4.211", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz", - "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "elliptic": { @@ -6938,7 +6978,7 @@ }, "escalade": { "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, @@ -7838,7 +7878,7 @@ }, "picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, @@ -8447,9 +8487,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "requires": { "escalade": "^3.1.1", diff --git a/package.json b/package.json index 4cd9386f..d768210c 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,13 @@ "description": "FixIt theme source files", "private": true, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.19.1", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.19.6", + "@babel/preset-env": "^7.19.4", "atomic-algolia": "^0.3.19", "babelify": "^10.0.0", "browserify": "^17.0.0", - "core-js": "^3.25.2", + "core-js": "^3.26.0", "segmentit": "^2.0.3" }, "scripts": {