diff --git a/CHANGELOG.md b/CHANGELOG.md index ce7b470a..c70e1a4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ All notable changes to this project will be documented in this file. - Update emoji-data from 5.0.1 to 14.0.0 - Update mermaid from 9.1.3 to 9.1.6 - Update typeit from 7.0.4 to 8.7.0 + - Update lightgallery from 1.4.0 to 2.6.0 - :wrench: Chore(deps-dev): - Remove dependencies: minimist, babel-preset-minify - **Full Changelog:** @Lruihao [`v0.2.15...v0.2.16`](https://github.com/hugo-fixit/FixIt/compare/v0.2.15...v0.2.16) diff --git a/README.md b/README.md index db8bc9e2..0de60ee5 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ To see this theme in action, here are some live demo sites which are rendered wi * **Twemoji** supported * Automatically **highlighting** code * **Copy code** to clipboard with one click -* **Images gallery** supported by [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) +* **Images gallery** supported by [lightgallery](https://github.com/sachinchoolur/lightgallery) * Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons** * Extended Markdown syntax for **ruby annotation** * Extended Markdown syntax for **fraction** @@ -208,7 +208,7 @@ Make sure that you follow [CODE_OF_CONDUCT.md](/CODE_OF_CONDUCT.md) while contri * [object-fit-images](https://github.com/fregante/object-fit-images) * [Twemoji](https://github.com/twitter/twemoji) * [emoji-data](https://github.com/iamcal/emoji-data) -* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) +* [lightgallery](https://github.com/sachinchoolur/lightgallery) * [Sharer.js](https://github.com/ellisonleao/sharer.js) * [TypeIt](https://typeitjs.com/) * [KaTeX](https://katex.org/) diff --git a/README.zh-cn.md b/README.zh-cn.md index 4e6c004f..25260bf7 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -134,7 +134,7 @@ FixIt 主题继承了 LoveIt 等主题的优秀功能,并在它们的基础上 * 支持 **Twemoji** * 支持**代码高亮** * 一键**复制代码**到剪贴板 -* 支持基于 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 的**图片画廊** +* 支持基于 [lightgallery](https://github.com/sachinchoolur/lightgallery) 的**图片画廊** * 支持 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法 * 支持**上标注释**的扩展 Markdown 语法 * 支持**分数**的扩展 Markdown 语法 @@ -208,7 +208,7 @@ FixIt 支持下列语言: * [object-fit-images](https://github.com/fregante/object-fit-images) * [Twemoji](https://github.com/twitter/twemoji) * [emoji-data](https://github.com/iamcal/emoji-data) -* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) +* [lightgallery](https://github.com/sachinchoolur/lightgallery) * [Sharer.js](https://github.com/ellisonleao/sharer.js) * [TypeIt](https://typeitjs.com/) * [KaTeX](https://katex.org/) diff --git a/assets/data/cdn/jsdelivr.yml b/assets/data/cdn/jsdelivr.yml index f50d7879..195d2c2f 100644 --- a/assets/data/cdn/jsdelivr.yml +++ b/assets/data/cdn/jsdelivr.yml @@ -47,13 +47,11 @@ libFiles: katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js # lazysizes@5.3.2 https://github.com/aFarkas/lazysizes lazysizesJS: lazysizes@5.3.2/lazysizes.min.js - # lightgallery.js@1.4.0 https://github.com/sachinchoolur/lightgallery.js - # lg-thumbnail.js@1.4.0 https://github.com/sachinchoolur/lg-thumbnail.js - # lg-zoom.js@1.3.0 https://github.com/sachinchoolur/lg-zoom.js - lightgalleryCSS: lightgallery.js@1.4.0/dist/css/lightgallery.min.css - lightgalleryJS: lightgallery.js@1.4.0/dist/js/lightgallery.min.js - lightgalleryThumbnailJS: lg-thumbnail.js@1.2.0/dist/lg-thumbnail.min.js - lightgalleryZoomJS: lg-zoom.js@1.3.0/dist/lg-zoom.min.js + # lightgallery@2.6.0 https://github.com/sachinchoolur/lightgallery + lightgalleryCSS: lightgallery@2.6.0/css/lightgallery-bundle.min.css + lightgalleryJS: lightgallery@2.6.0/lightgallery.min.js + lightgalleryThumbnailJS: lightgallery@2.6.0/plugins/thumbnail/lg-thumbnail.min.js + lightgalleryZoomJS: lightgallery@2.6.0/plugins/zoom/lg-zoom.min.js # lunr.js@2.3.9 https://github.com/olivernn/lunr.js lunrJS: lunr@2.3.9/lunr.min.js # mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js diff --git a/assets/data/cdn/unpkg.yml b/assets/data/cdn/unpkg.yml index 6d991573..ffb27bb3 100644 --- a/assets/data/cdn/unpkg.yml +++ b/assets/data/cdn/unpkg.yml @@ -47,13 +47,11 @@ libFiles: katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js # lazysizes@5.3.2 https://github.com/aFarkas/lazysizes lazysizesJS: lazysizes@5.3.2/lazysizes.min.js - # lightgallery.js@1.4.0 https://github.com/sachinchoolur/lightgallery.js - # lg-thumbnail.js@1.4.0 https://github.com/sachinchoolur/lg-thumbnail.js - # lg-zoom.js@1.3.0 https://github.com/sachinchoolur/lg-zoom.js - lightgalleryCSS: lightgallery.js@1.4.0/dist/css/lightgallery.min.css - lightgalleryJS: lightgallery.js@1.4.0/dist/js/lightgallery.min.js - lightgalleryThumbnailJS: lg-thumbnail.js@1.2.0/dist/lg-thumbnail.min.js - lightgalleryZoomJS: lg-zoom.js@1.3.0/dist/lg-zoom.min.js + # lightgallery@2.6.0 https://github.com/sachinchoolur/lightgallery + lightgalleryCSS: lightgallery@2.6.0/css/lightgallery-bundle.min.css + lightgalleryJS: lightgallery@2.6.0/lightgallery.min.js + lightgalleryThumbnailJS: lightgallery@2.6.0/plugins/thumbnail/lg-thumbnail.min.js + lightgalleryZoomJS: lightgallery@2.6.0/plugins/zoom/lg-zoom.min.js # lunr.js@2.3.9 https://github.com/olivernn/lunr.js lunrJS: lunr@2.3.9/lunr.min.js # mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index 937bc327..cfcbc405 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(){document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this5.isDark=!_this5.isDark;window.localStorage&&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(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{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;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);$toc.style.marginTop=document.querySelector(".single-title").clientHeight+document.querySelector(".post-meta").clientHeight+"px";$toc.style.marginBottom=document.getElementById("post-footer").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;this._tocOnScroll=this._tocOnScroll||function(){var $comments=document.getElementById("comments");if($comments){$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+$comments.clientHeight+"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&&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 _this15=this;if(!this.config.comment){return}if(this.config.comment.artalk){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){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;((_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||"\"FixIt 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:"onScroll",value:function onScroll(){var _this19=this;var $headers=[];if(document.body.getAttribute("data-header-desktop")==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.getAttribute("data-header-mobile")==="auto"){$headers.push(document.getElementById("header-mobile"))}if(document.getElementById("comments")){var $viewComments=document.getElementById("view-comments");$viewComments.href="#comments";$viewComments.style.display="block"}var $fixedButtons=document.getElementById("fixed-buttons");var ACCURACY=20,MINIMUM=100;window.addEventListener("scroll",function(event){if(_this19.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this19.newScrollTop=_this19.util.getScrollTop();var scroll=_this19.newScrollTop-_this19.oldScrollTop;var isMobile=_this19.util.isMobile();_this19.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this19.util.animateCSS($header,["animate__fadeOutUp","animate__faster"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this19.util.animateCSS($header,["animate__fadeInDown","animate__faster"],true);$mask.click()}});if(_this19.newScrollTop>MINIMUM){if(isMobile&&scroll>ACCURACY){$fixedButtons.classList.remove("animate__fadeIn");_this19.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}else if(!isMobile||scroll<-ACCURACY){$fixedButtons.style.display="block";$fixedButtons.classList.remove("animate__fadeOut");_this19.util.animateCSS($fixedButtons,["animate__fadeIn","animate__faster"],true)}}else{if(!isMobile){$fixedButtons.classList.remove("animate__fadeIn");_this19.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}$fixedButtons.style.display="none"}var _iterator2=_createForOfIteratorHelper(_this19.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this19.oldScrollTop=_this19.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this20=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this20._resizeTimeout){_this20._resizeTimeout=window.setTimeout(function(){_this20._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this20.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this20.initToc();_this20.initMermaid();_this20.initSearch();var isMobile=_this20.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this21=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this21.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this21.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this22=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();window.setTimeout(function(){var _this22$config$encryp;_this22.initComment();if(!((_this22$config$encryp=_this22.config.encryption)!==null&&_this22$config$encryp!==void 0&&_this22$config$encryp.all)){_this22.initToc();_this22.initTocListener()}_this22.onScroll();_this22.onResize();_this22.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 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(){document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this5.isDark=!_this5.isDark;window.localStorage&&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})}}},{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;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);$toc.style.marginTop=document.querySelector(".single-title").clientHeight+document.querySelector(".post-meta").clientHeight+"px";$toc.style.marginBottom=document.getElementById("post-footer").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;this._tocOnScroll=this._tocOnScroll||function(){var $comments=document.getElementById("comments");if($comments){$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+$comments.clientHeight+"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&&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 _this15=this;if(!this.config.comment){return}if(this.config.comment.artalk){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){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;((_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||"\"FixIt 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:"onScroll",value:function onScroll(){var _this19=this;var $headers=[];if(document.body.getAttribute("data-header-desktop")==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.getAttribute("data-header-mobile")==="auto"){$headers.push(document.getElementById("header-mobile"))}if(document.getElementById("comments")){var $viewComments=document.getElementById("view-comments");$viewComments.href="#comments";$viewComments.style.display="block"}var $fixedButtons=document.getElementById("fixed-buttons");var ACCURACY=20,MINIMUM=100;window.addEventListener("scroll",function(event){if(_this19.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this19.newScrollTop=_this19.util.getScrollTop();var scroll=_this19.newScrollTop-_this19.oldScrollTop;var isMobile=_this19.util.isMobile();_this19.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this19.util.animateCSS($header,["animate__fadeOutUp","animate__faster"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this19.util.animateCSS($header,["animate__fadeInDown","animate__faster"],true);$mask.click()}});if(_this19.newScrollTop>MINIMUM){if(isMobile&&scroll>ACCURACY){$fixedButtons.classList.remove("animate__fadeIn");_this19.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}else if(!isMobile||scroll<-ACCURACY){$fixedButtons.style.display="block";$fixedButtons.classList.remove("animate__fadeOut");_this19.util.animateCSS($fixedButtons,["animate__fadeIn","animate__faster"],true)}}else{if(!isMobile){$fixedButtons.classList.remove("animate__fadeIn");_this19.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}$fixedButtons.style.display="none"}var _iterator2=_createForOfIteratorHelper(_this19.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this19.oldScrollTop=_this19.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this20=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this20._resizeTimeout){_this20._resizeTimeout=window.setTimeout(function(){_this20._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this20.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this20.initToc();_this20.initMermaid();_this20.initSearch();var isMobile=_this20.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this21=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this21.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this21.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this22=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();window.setTimeout(function(){var _this22$config$encryp;_this22.initComment();if(!((_this22$config$encryp=_this22.config.encryption)!==null&&_this22$config$encryp!==void 0&&_this22$config$encryp.all)){_this22.initToc();_this22.initTocListener()}_this22.onScroll();_this22.onResize();_this22.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 09a2a293..8047b1b4 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","scrollTop","body","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","remove","removeEventListener","addEventListener","date","Date","isNaN","getTime","FixIt","now","run","config","siteTime","$runTimes","querySelector","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","getElementById","$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","slice","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","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","marginTop","clientHeight","marginBottom","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","$comments","$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","speed","cursorSpeed","cursorChar","group","typeone","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","comments","images","$content","$imgs","$img","$link","append","cloneNode","replaceWith","selector","actualSize","hideBarsDelay","comment","artalk","Artalk","setDarkMode","lightgallery","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","Waline","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","pathname","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","enable","Watermark","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","$headers","$viewComments","$fixedButtons","ACCURACY","MINIMUM","preventDefault","$mask","scroll","click","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initThemeColor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","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.documentElement.scrollTop) || 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 const handler = () => {\n element.classList.remove('animate__animated', ...animation);\n element.removeEventListener('animationend', handler);\n typeof callback === 'function' && callback();\n };\n !reserved && element.addEventListener('animationend', handler, false);\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\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 && 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 this.config.lightGallery && lightGallery(document.getElementById('content'), this.config.lightGallery);\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 const code = $code.innerText;\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 $toc.style.marginTop = document.querySelector('.single-title').clientHeight + document.querySelector('.post-meta').clientHeight + 'px';\n $toc.style.marginBottom = document.getElementById('post-footer').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 this._tocOnScroll = this._tocOnScroll || (() => {\n const $comments = document.getElementById('comments');\n if ($comments) {\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + $comments.clientHeight + 'px';\n }\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 && typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\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) {\n return;\n }\n if (this.config.comment.artalk) {\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 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 || '\"FixIt 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 onScroll() {\n const $headers = [];\n if (document.body.getAttribute('data-header-desktop') === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.getAttribute('data-header-mobile') === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const ACCURACY = 20, MINIMUM = 100;\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 const isMobile = this.util.isMobile();\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp', 'animate__faster'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown', 'animate__faster'], true);\n $mask.click();\n }\n });\n // whether to show b2t button\n if (this.newScrollTop > MINIMUM) {\n if (isMobile && scroll > ACCURACY) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n } else if (!isMobile || scroll < -ACCURACY) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn', 'animate__faster'], true);\n }\n } else {\n if (!isMobile) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n }\n $fixedButtons.style.display = 'none';\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\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","scrollTop","body","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","remove","removeEventListener","addEventListener","date","Date","isNaN","getTime","FixIt","now","run","config","siteTime","$runTimes","querySelector","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","getElementById","$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","slice","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","selector","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","marginTop","clientHeight","marginBottom","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","$comments","$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","artalk","Artalk","setDarkMode","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","Waline","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","pathname","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","enable","Watermark","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","$headers","$viewComments","$fixedButtons","ACCURACY","MINIMUM","preventDefault","$mask","scroll","click","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initThemeColor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","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.documentElement.scrollTop) || 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 const handler = () => {\n element.classList.remove('animate__animated', ...animation);\n element.removeEventListener('animationend', handler);\n typeof callback === 'function' && callback();\n };\n !reserved && element.addEventListener('animationend', handler, false);\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\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 && 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 });\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 const code = $code.innerText;\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 $toc.style.marginTop = document.querySelector('.single-title').clientHeight + document.querySelector('.post-meta').clientHeight + 'px';\n $toc.style.marginBottom = document.getElementById('post-footer').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 this._tocOnScroll = this._tocOnScroll || (() => {\n const $comments = document.getElementById('comments');\n if ($comments) {\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + $comments.clientHeight + 'px';\n }\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 && typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\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) {\n return;\n }\n if (this.config.comment.artalk) {\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 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 || '\"FixIt 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 onScroll() {\n const $headers = [];\n if (document.body.getAttribute('data-header-desktop') === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.getAttribute('data-header-mobile') === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const ACCURACY = 20, MINIMUM = 100;\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 const isMobile = this.util.isMobile();\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp', 'animate__faster'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown', 'animate__faster'], true);\n $mask.click();\n }\n });\n // whether to show b2t button\n if (this.newScrollTop > MINIMUM) {\n if (isMobile && scroll > ACCURACY) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n } else if (!isMobile || scroll < -ACCURACY) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn', 'animate__faster'], true);\n }\n } else {\n if (!isMobile) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n }\n $fixedButtons.style.display = 'none';\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\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/assets/lib/VERSION b/assets/lib/VERSION index b8d52b93..be0a94ab 100644 --- a/assets/lib/VERSION +++ b/assets/lib/VERSION @@ -13,9 +13,7 @@ fontawesome-free@6.1.1 https://github.com/FortAwesome/Font-Awesome gitalk@1.7.2 https://github.com/gitalk/gitalk katex@0.15.3 https://github.com/KaTeX/KaTeX lazysizes@5.3.2 https://github.com/aFarkas/lazysizes -lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js -lg-zoom.js@1.3.0 https://github.com/sachinchoolur/lg-zoom.js -lightgallery.js@1.4.0 https://github.com/sachinchoolur/lightgallery.js +lightgallery@2.6.0 https://github.com/sachinchoolur/lightgallery lunr.js@2.3.9 https://github.com/olivernn/lunr.js mapbox-gl@2.8.2 https://github.com/mapbox/mapbox-gl-js mermaid@9.1.6 https://github.com/mermaid-js/mermaid diff --git a/assets/lib/lightgallery/css/lightgallery-bundle.min.css b/assets/lib/lightgallery/css/lightgallery-bundle.min.css new file mode 100644 index 00000000..292cc241 --- /dev/null +++ b/assets/lib/lightgallery/css/lightgallery-bundle.min.css @@ -0,0 +1 @@ +@font-face{font-family:lg;src:url(../fonts/lg.woff2?io9a6k) format("woff2"),url(../fonts/lg.ttf?io9a6k) format("truetype"),url(../fonts/lg.woff?io9a6k) format("woff"),url(../fonts/lg.svg?io9a6k#lg) format("svg");font-weight:400;font-style:normal;font-display:block}.lg-icon{font-family:lg!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-container{font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans','Liberation Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji'}.lg-next,.lg-prev{background-color:rgba(0,0,0,.45);border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1084;outline:0;border:none}.lg-next.disabled,.lg-prev.disabled{opacity:0!important;cursor:default}.lg-next:hover:not(.disabled),.lg-prev:hover:not(.disabled){color:#fff}.lg-single-item .lg-next,.lg-single-item .lg-prev{display:none}.lg-next{right:20px}.lg-next:before{content:'\e095'}.lg-prev{left:20px}.lg-prev:after{content:'\e094'}@-webkit-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-moz-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-ms-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-webkit-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@-moz-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@-ms-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{z-index:1082;left:0;position:absolute;top:0;width:100%}.lg-media-overlap .lg-toolbar{background-image:linear-gradient(0deg,rgba(0,0,0,0),rgba(0,0,0,.4))}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:medium none;will-change:color;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear;background:0 0;border:none;box-shadow:none}.lg-toolbar .lg-icon.lg-icon-18{font-size:18px}.lg-toolbar .lg-icon:hover{color:#fff}.lg-toolbar .lg-close:after{content:'\e070'}.lg-toolbar .lg-maximize{font-size:22px}.lg-toolbar .lg-maximize:after{content:'\e90a'}.lg-toolbar .lg-download:after{content:'\e0f2'}.lg-sub-html{color:#eee;font-size:16px;padding:10px 40px;text-align:center;z-index:1080;opacity:0;-webkit-transition:opacity .2s ease-out 0s;-o-transition:opacity .2s ease-out 0s;transition:opacity .2s ease-out 0s}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}.lg-sub-html a{color:inherit}.lg-sub-html a:hover{text-decoration:underline}.lg-media-overlap .lg-sub-html{background-image:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.6))}.lg-item .lg-sub-html{position:absolute;bottom:0;right:0;left:0}.lg-error-msg{font-size:14px;color:#999}.lg-counter{color:#999;display:inline-block;font-size:16px;padding-left:20px;padding-top:12px;height:47px;vertical-align:middle}.lg-closing .lg-next,.lg-closing .lg-prev,.lg-closing .lg-sub-html,.lg-closing .lg-toolbar{opacity:0;-webkit-transition:-webkit-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;-moz-transition:-moz-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;-o-transition:-o-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;transition:transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-img-wrap,body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-video-cont{opacity:0;-moz-transform:scale3d(.5,.5,.5);-o-transform:scale3d(.5,.5,.5);-ms-transform:scale3d(.5,.5,.5);-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);will-change:transform,opacity;-webkit-transition:-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-moz-transition:-moz-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-o-transition:-o-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-img-wrap,body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-video-cont{opacity:1;-moz-transform:scale3d(1,1,1);-o-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.lg-icon:focus-visible{color:#fff;border-radius:3px;outline:1px dashed rgba(255,255,255,.6)}.lg-toolbar .lg-icon:focus-visible{border-radius:8px;outline-offset:-5px}.lg-outer .lg-thumb-outer{background-color:#0d0a0a;width:100%;max-height:350px;overflow:hidden;float:left}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer .lg-thumb-outer.lg-rebuilding-thumbnails .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer .lg-thumb-outer.lg-thumb-align-middle{text-align:center}.lg-outer .lg-thumb-outer.lg-thumb-align-left{text-align:left}.lg-outer .lg-thumb-outer.lg-thumb-align-right{text-align:right}.lg-outer.lg-single-item .lg-thumb-outer{display:none}.lg-outer .lg-thumb{padding:5px 0;height:100%;margin-bottom:-5px;display:inline-block;vertical-align:middle}@media (min-width:768px){.lg-outer .lg-thumb{padding:10px 0}}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border-radius:2px;margin-bottom:5px;will-change:border-color}@media (min-width:768px){.lg-outer .lg-thumb-item{border-radius:4px;border:2px solid #fff;-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%;object-fit:cover;display:block}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer .lg-toggle-thumb:after{content:'\e1ff'}.lg-outer.lg-animate-thumb .lg-thumb{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.lg-outer .lg-video-cont{text-align:center;display:inline-block;vertical-align:middle;position:relative}.lg-outer .lg-video-cont .lg-object{width:100%!important;height:100%!important}.lg-outer .lg-has-iframe .lg-video-cont{-webkit-overflow-scrolling:touch;overflow:auto}.lg-outer .lg-video-object{position:absolute;left:0;right:0;width:100%;height:100%;top:0;bottom:0;z-index:3}.lg-outer .lg-video-poster{z-index:1}.lg-outer .lg-has-video .lg-video-object{opacity:0;will-change:opacity;-webkit-transition:opacity .3s ease-in;-o-transition:opacity .3s ease-in;transition:opacity .3s ease-in}.lg-outer .lg-has-video.lg-video-loaded .lg-video-play-button,.lg-outer .lg-has-video.lg-video-loaded .lg-video-poster{opacity:0!important}.lg-outer .lg-has-video.lg-video-loaded .lg-video-object{opacity:1}@keyframes lg-play-stroke{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes lg-play-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.lg-video-play-button{width:18%;max-width:140px;position:absolute;top:50%;left:50%;z-index:2;cursor:pointer;transform:translate(-50%,-50%) scale(1);will-change:opacity,transform;-webkit-transition:-webkit-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;-moz-transition:-moz-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;-o-transition:-o-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;transition:transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s}.lg-video-play-button:hover .lg-video-play-icon,.lg-video-play-button:hover .lg-video-play-icon-bg{opacity:1}.lg-video-play-icon-bg{fill:none;stroke-width:3%;stroke:#fcfcfc;opacity:.6;will-change:opacity;-webkit-transition:opacity .12s ease-in;-o-transition:opacity .12s ease-in;transition:opacity .12s ease-in}.lg-video-play-icon-circle{position:absolute;top:0;left:0;bottom:0;right:0;fill:none;stroke-width:3%;stroke:rgba(30,30,30,.9);stroke-opacity:1;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200}.lg-video-play-icon{position:absolute;width:25%;max-width:120px;left:50%;top:50%;transform:translate3d(-50%,-50%,0);opacity:.6;will-change:opacity;-webkit-transition:opacity .12s ease-in;-o-transition:opacity .12s ease-in;transition:opacity .12s ease-in}.lg-video-play-icon .lg-video-play-icon-inner{fill:#fcfcfc}.lg-video-loading .lg-video-play-icon-circle{animation:lg-play-rotate 2s linear .25s infinite,lg-play-stroke 1.5s ease-in-out .25s infinite}.lg-video-loaded .lg-video-play-button{opacity:0;transform:translate(-50%,-50%) scale(.7)}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1083;opacity:0;will-change:opacity;-webkit-transition:opacity 80ms ease 0s;-moz-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:'\e01d'}.lg-show-autoplay .lg-autoplay-button:after{content:'\e01a'}.lg-single-item .lg-autoplay-button{opacity:.75;pointer-events:none}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{will-change:transform;-webkit-transition:-webkit-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;-moz-transition:-moz-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;-o-transition:-o-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;transition:transform .5s cubic-bezier(.12,.415,.01,1.19) 0s}.lg-outer.lg-use-transition-for-zoom.lg-zoom-drag-transition .lg-item.lg-complete.lg-zoomable .lg-img-wrap{will-change:transform;-webkit-transition:-webkit-transform .8s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .8s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .8s cubic-bezier(0,0,.25,1) 0s;transition:transform .8s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-moz-transition:-moz-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-o-transition:-o-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;transition:transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.no-transition,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.no-transition{transition:none!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition{transform:scale3d(1,1,1) translate3d(-50%,-50%,0)!important;max-width:none!important;max-height:none!important;top:50%!important;left:50%!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition-x,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition-x{transform:scale3d(1,1,1) translate3d(-50%,0,0)!important;top:0!important;left:50%!important;max-width:none!important;max-height:none!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition-y,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition-y{transform:scale3d(1,1,1) translate3d(0,-50%,0)!important;top:50%!important;left:0!important;max-width:none!important;max-height:none!important}.lg-icon.lg-zoom-in:after{content:'\e311'}.lg-actual-size .lg-icon.lg-zoom-in{opacity:.5;pointer-events:none}.lg-icon.lg-actual-size{font-size:20px}.lg-icon.lg-actual-size:after{content:'\e033'}.lg-icon.lg-zoom-out{opacity:.5;pointer-events:none}.lg-icon.lg-zoom-out:after{content:'\e312'}.lg-zoomed .lg-icon.lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer.lg-first-slide-loading .lg-actual-size,.lg-outer.lg-first-slide-loading .lg-zoom-in,.lg-outer.lg-first-slide-loading .lg-zoom-out,.lg-outer[data-lg-slide-type=iframe] .lg-actual-size,.lg-outer[data-lg-slide-type=iframe] .lg-zoom-in,.lg-outer[data-lg-slide-type=iframe] .lg-zoom-out,.lg-outer[data-lg-slide-type=video] .lg-actual-size,.lg-outer[data-lg-slide-type=video] .lg-zoom-in,.lg-outer[data-lg-slide-type=video] .lg-zoom-out{opacity:.75;pointer-events:none}.lg-outer .lg-pager-outer{text-align:center;z-index:1080;height:10px;margin-bottom:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer.lg-single-item .lg-pager-outer{display:none}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#fff;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;will-change:transform,opacity;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.lg-outer .lg-dropdown-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:absolute;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;will-change:visibility,opacity;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer.lg-dropdown-active .lg-dropdown,.lg-outer.lg-dropdown-active .lg-dropdown-overlay{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer.lg-dropdown-active .lg-share{color:#fff}.lg-outer .lg-dropdown{background-color:#fff;border-radius:2px;font-size:14px;list-style-type:none;margin:0;padding:10px 0;position:absolute;right:0;text-align:left;top:50px;opacity:0;visibility:hidden;-moz-transform:translate3d(0,5px,0);-o-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0);will-change:visibility,opacity,transform;-webkit-transition:-webkit-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-moz-transition:-moz-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-o-transition:-o-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;transition:transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s}.lg-outer .lg-dropdown:after{content:'';display:block;height:0;width:0;position:absolute;border:8px solid transparent;border-bottom-color:#fff;right:16px;top:-16px}.lg-outer .lg-dropdown>li:last-child{margin-bottom:0}.lg-outer .lg-dropdown>li:hover a{color:#333}.lg-outer .lg-dropdown a{color:#333;display:block;white-space:pre;padding:4px 12px;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:12px}.lg-outer .lg-dropdown a:hover{background-color:rgba(0,0,0,.07)}.lg-outer .lg-dropdown .lg-dropdown-text{display:inline-block;line-height:1;margin-top:-3px;vertical-align:middle}.lg-outer .lg-dropdown .lg-icon{color:#333;display:inline-block;float:none;font-size:20px;height:auto;line-height:1;margin-right:8px;padding:0;vertical-align:middle;width:auto}.lg-outer .lg-share{position:relative}.lg-outer .lg-share:after{content:'\e80d'}.lg-outer .lg-share-facebook .lg-icon{color:#3b5998}.lg-outer .lg-share-facebook .lg-icon:after{content:'\e904'}.lg-outer .lg-share-twitter .lg-icon{color:#00aced}.lg-outer .lg-share-twitter .lg-icon:after{content:'\e907'}.lg-outer .lg-share-pinterest .lg-icon{color:#cb2027}.lg-outer .lg-share-pinterest .lg-icon:after{content:'\e906'}.lg-comment-box{width:420px;max-width:100%;position:absolute;right:0;top:0;bottom:0;z-index:9999;background-color:#fff;will-change:transform;-moz-transform:translate3d(100%,0,0);-o-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);-webkit-transition:-webkit-transform .4s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .4s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .4s cubic-bezier(0,0,.25,1) 0s;transition:transform .4s cubic-bezier(0,0,.25,1) 0s}.lg-comment-box .lg-comment-title{margin:0;color:#fff;font-size:18px}.lg-comment-box .lg-comment-header{background-color:#000;padding:12px 20px;position:absolute;left:0;right:0;top:0}.lg-comment-box .lg-comment-body{height:100%!important;padding-top:43px!important;width:100%!important}.lg-comment-box .fb-comments{height:100%;width:100%;background:url(../images/loading.gif) no-repeat scroll center center #fff;overflow-y:auto;display:inline-block}.lg-comment-box .fb-comments[fb-xfbml-state=rendered]{background-image:none}.lg-comment-box .fb-comments>span{max-width:100%}.lg-comment-box .lg-comment-close{position:absolute;right:5px;top:12px;cursor:pointer;font-size:20px;color:#999;will-change:color;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.lg-comment-box .lg-comment-close:hover{color:#fff}.lg-comment-box .lg-comment-close:after{content:'\e070'}.lg-comment-box iframe{max-width:100%!important;width:100%!important}.lg-comment-box #disqus_thread{padding:0 20px}.lg-outer .lg-comment-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:fixed;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;will-change:visibility,opacity;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer .lg-comment-toggle:after{content:'\e908'}.lg-outer.lg-comment-active .lg-comment-overlay{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer.lg-comment-active .lg-comment-toggle{color:#fff}.lg-outer.lg-comment-active .lg-comment-box{-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-img-rotate{position:absolute;left:0;right:0;top:0;bottom:0;-webkit-transition:-webkit-transform .4s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .4s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .4s cubic-bezier(0,0,.25,1) 0s;transition:transform .4s cubic-bezier(0,0,.25,1) 0s}.lg-outer[data-lg-slide-type=iframe] .lg-flip-hor,.lg-outer[data-lg-slide-type=iframe] .lg-flip-ver,.lg-outer[data-lg-slide-type=iframe] .lg-rotate-left,.lg-outer[data-lg-slide-type=iframe] .lg-rotate-right,.lg-outer[data-lg-slide-type=video] .lg-flip-hor,.lg-outer[data-lg-slide-type=video] .lg-flip-ver,.lg-outer[data-lg-slide-type=video] .lg-rotate-left,.lg-outer[data-lg-slide-type=video] .lg-rotate-right{opacity:.75;pointer-events:none}.lg-outer .lg-img-rotate:before{content:'';display:inline-block;height:100%;vertical-align:middle}.lg-rotate-left:after{content:'\e900'}.lg-rotate-right:after{content:'\e901'}.lg-icon.lg-flip-hor,.lg-icon.lg-flip-ver{font-size:26px}.lg-flip-ver:after{content:'\e903'}.lg-flip-hor:after{content:'\e902'}.lg-medium-zoom-item{cursor:zoom-in}.lg-medium-zoom .lg-outer{cursor:zoom-out}.lg-medium-zoom .lg-outer.lg-grab img.lg-object{cursor:zoom-out}.lg-medium-zoom .lg-outer.lg-grabbing img.lg-object{cursor:zoom-out}.lg-relative-caption .lg-outer .lg-sub-html{white-space:normal;bottom:auto;padding:0;background-image:none}.lg-relative-caption .lg-outer .lg-relative-caption-item{opacity:0;padding:16px 0;transition:.5s opacity ease}.lg-relative-caption .lg-outer .lg-show-caption .lg-relative-caption-item{opacity:1}.lg-group:after{content:'';display:table;clear:both}.lg-container{display:none;outline:0}.lg-container.lg-show{display:block}.lg-on{scroll-behavior:unset}.lg-overlay-open{overflow:hidden}.lg-hide-sub-html .lg-sub-html,.lg-next,.lg-pager-outer,.lg-prev,.lg-toolbar{opacity:0;will-change:transform,opacity;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s}.lg-show-in .lg-next,.lg-show-in .lg-pager-outer,.lg-show-in .lg-prev,.lg-show-in .lg-toolbar{opacity:1}.lg-show-in.lg-hide-sub-html .lg-sub-html{opacity:1}.lg-show-in .lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-show-in .lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-show-in .lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}.lg-show-in .lg-hide-items.lg-hide-sub-html .lg-sub-html{opacity:0;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}.lg-outer{width:100%;height:100%;position:fixed;top:0;left:0;z-index:1050;text-align:left;opacity:.001;outline:0;will-change:auto;overflow:hidden;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-zoom-from-image{opacity:1}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-current,.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-next-slide,.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-content{position:absolute;top:0;left:0;right:0;bottom:0}.lg-outer .lg-inner{width:100%;position:absolute;left:0;top:0;bottom:0;-webkit-transition:opacity 0s;-o-transition:opacity 0s;transition:opacity 0s;white-space:nowrap}.lg-outer .lg-item{display:none!important}.lg-outer .lg-item:not(.lg-start-end-progress){background:url(../images/loading.gif) no-repeat scroll center center transparent}.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer.lg-css .lg-current{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:'';display:inline-block;height:100%;vertical-align:middle}.lg-outer .lg-img-wrap{position:absolute;left:0;right:0;top:0;bottom:0;white-space:nowrap;font-size:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-object{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto;height:auto;position:relative}.lg-outer .lg-empty-html .lg-sub-html,.lg-outer .lg-empty-html.lg-sub-html{display:none}.lg-outer.lg-hide-download .lg-download{opacity:.75;pointer-events:none}.lg-outer .lg-first-slide .lg-dummy-img{position:absolute;top:50%;left:50%}.lg-outer.lg-components-open:not(.lg-zoomed) .lg-components{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-outer.lg-components-open:not(.lg-zoomed) .lg-sub-html{opacity:1;transition:opacity .2s ease-out .15s}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;will-change:auto;-webkit-transition:opacity 333ms ease-in 0s;-o-transition:opacity 333ms ease-in 0s;transition:opacity 333ms ease-in 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-use-css3 .lg-item.lg-start-progress{-webkit-transition:-webkit-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;-moz-transition:-moz-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;-o-transition:-o-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;transition:transform 1s cubic-bezier(.175,.885,.32,1.275) 0s}.lg-css3.lg-use-css3 .lg-item.lg-start-end-progress{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-container{display:none}.lg-container.lg-show{display:block}.lg-container.lg-dragging-vertical .lg-backdrop{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-container.lg-dragging-vertical .lg-css3 .lg-item.lg-current{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-inline .lg-backdrop,.lg-inline .lg-outer{position:absolute}.lg-inline .lg-backdrop{z-index:1}.lg-inline .lg-outer{z-index:2}.lg-inline .lg-maximize:after{content:'\e909'}.lg-components{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);will-change:transform;-webkit-transition:-webkit-transform .35s ease-out 0s;-moz-transition:-moz-transform .35s ease-out 0s;-o-transition:-o-transform .35s ease-out 0s;transition:transform .35s ease-out 0s;z-index:1080;position:absolute;bottom:0;right:0;left:0} \ No newline at end of file diff --git a/assets/lib/lightgallery/lg-thumbnail.min.js b/assets/lib/lightgallery/lg-thumbnail.min.js deleted file mode 100644 index e3571a7e..00000000 --- a/assets/lib/lightgallery/lg-thumbnail.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/**! - * lg-thumbnail.js | 1.2.0 | May 20th 2020 - * http://sachinchoolur.github.io/lg-thumbnail.js - * Copyright (c) 2016 Sachin N; - * @license GPLv3 - */ - !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.LgThumbnail=t()}}(function(){var t,e,i;return function(){function t(e,i,o){function u(s,l){if(!i[s]){if(!e[s]){var h="function"==typeof require&&require;if(!l&&h)return h(s,!0);if(r)return r(s,!0);var n=new Error("Cannot find module '"+s+"'");throw n.code="MODULE_NOT_FOUND",n}var a=i[s]={exports:{}};e[s][0].call(a.exports,function(t){return u(e[s][1][t]||t)},a,a.exports,t,e,i,o)}return i[s].exports}for(var r="function"==typeof require&&require,s=0;s1&&(this.core.s.showThumbByDefault&&setTimeout(function(){utils.addClass(t.core.outer,"lg-thumb-open")},700),this.core.s.pullCaptionUp&&utils.addClass(this.core.outer,"lg-pull-caption-up"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toggle(),this.thumbkeyPress())},i.prototype.build=function(){function t(t,u,r){var s=e.core.isVideo(t,r)||{},l,h="";s.youtube||s.vimeo||s.dailymotion?s.youtube?l=e.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+s.youtube[1]+"/"+e.core.s.youtubeThumbSize+".jpg":u:s.vimeo?e.core.s.loadVimeoThumbnail?(l="//i.vimeocdn.com/video/error_"+o+".jpg",h=s.vimeo[1]):l=u:s.dailymotion&&(l=e.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+s.dailymotion[1]:u):l=u,i+='
',h=""}var e=this,i="",o="",u,r='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":o="640";break;case"thumbnail_medium":o="200x150";break;case"thumbnail_small":o="100x75"}if(utils.addClass(e.core.outer,"lg-has-thumb"),e.core.outer.querySelector(".lg").insertAdjacentHTML("beforeend",r),e.thumbOuter=e.core.outer.querySelector(".lg-thumb-outer"),e.thumbOuterWidth=e.thumbOuter.offsetWidth,e.core.s.animateThumb&&(e.core.outer.querySelector(".lg-thumb").style.width=e.thumbTotalWidth+"px",e.core.outer.querySelector(".lg-thumb").style.position="relative"),this.core.s.animateThumb&&(e.thumbOuter.style.height=e.core.s.thumbContHeight+"px"),e.core.s.dynamic)for(var s=0;sthis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(utils.hasClass(e,"on")||utils.setVendor(this.core.outer.querySelector(".lg-thumb"),"TransitionDuration",this.core.s.speed+"ms"),this.core.doCss()||(e.style.left=-this.left+"px")):this.core.doCss()||(e.style.left=-this.left+"px"),this.setTranslate(this.left)}},i.prototype.enableThumbDrag=function(){var t=this,e=0,i=0,o=!1,u=!1,r=0;utils.addClass(t.thumbOuter,"lg-grab"),utils.on(t.core.outer.querySelector(".lg-thumb"),"mousedown.lgthumb",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e=i.pageX,o=!0,t.core.outer.scrollLeft+=1,t.core.outer.scrollLeft-=1,t.thumbClickable=!1,utils.removeClass(t.thumbOuter,"lg-grab"),utils.addClass(t.thumbOuter,"lg-grabbing"))}),utils.on(window,"mousemove.lgthumb",function(s){o&&(r=t.left,u=!0,i=s.pageX,utils.addClass(t.thumbOuter,"lg-dragging"),r-=i-e,r>t.thumbTotalWidth-t.thumbOuterWidth&&(r=t.thumbTotalWidth-t.thumbOuterWidth),r<0&&(r=0),t.setTranslate(r))}),utils.on(window,"mouseup.lgthumb",function(){u?(u=!1,utils.removeClass(t.thumbOuter,"lg-dragging"),t.left=r,Math.abs(i-e)t.thumbOuterWidth&&(i.preventDefault(),e=i.targetTouches[0].pageX,t.thumbClickable=!1)}),utils.on(t.core.outer.querySelector(".lg-thumb"),"touchmove.lg",function(r){t.thumbTotalWidth>t.thumbOuterWidth&&(r.preventDefault(),i=r.targetTouches[0].pageX,o=!0,utils.addClass(t.thumbOuter,"lg-dragging"),u=t.left,u-=i-e,u>t.thumbTotalWidth-t.thumbOuterWidth&&(u=t.thumbTotalWidth-t.thumbOuterWidth),u<0&&(u=0),t.setTranslate(u))}),utils.on(t.core.outer.querySelector(".lg-thumb"),"touchend.lg",function(){t.thumbTotalWidth>t.thumbOuterWidth&&o?(o=!1,utils.removeClass(t.thumbOuter,"lg-dragging"),Math.abs(i-e)'),utils.on(t.core.outer.querySelector(".lg-toggle-thumb"),"click.lg",function(){utils.hasClass(t.core.outer,"lg-thumb-open")?utils.removeClass(t.core.outer,"lg-thumb-open"):utils.addClass(t.core.outer,"lg-thumb-open")}))},i.prototype.thumbkeyPress=function(){var t=this;utils.on(window,"keydown.lgthumb",function(e){38===e.keyCode?(e.preventDefault(),utils.addClass(t.core.outer,"lg-thumb-open")):40===e.keyCode&&(e.preventDefault(),utils.removeClass(t.core.outer,"lg-thumb-open"))})},i.prototype.destroy=function(t){if(this.core.s.thumbnail&&this.core.items.length>1){utils.off(window,".lgthumb"),t||this.thumbOuter.parentNode.removeChild(this.thumbOuter),utils.removeClass(this.core.outer,"lg-has-thumb");for(var e=document.getElementsByClassName("lg-script");e[0];)e[0].parentNode.removeChild(e[0])}},window.lgModules.thumbnail=i})},{}]},{},[1])(1)}); \ No newline at end of file diff --git a/assets/lib/lightgallery/lg-zoom.min.js b/assets/lib/lightgallery/lg-zoom.min.js deleted file mode 100644 index 35f66875..00000000 --- a/assets/lib/lightgallery/lg-zoom.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/**! - * lg-zoom.js | 1.3.0 | October 14th 2020 - * http://sachinchoolur.github.io/lg-zoom.js - * Copyright (c) 2016 Sachin N; - * @license GPLv3 - */ - !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.LgZoom=e()}}(function(){var e,t,o;return function(){function e(t,o,r){function i(l,s){if(!o[l]){if(!t[l]){var n="function"==typeof require&&require;if(!s&&n)return n(l,!0);if(a)return a(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var c=o[l]={exports:{}};t[l][0].call(c.exports,function(e){return i(t[l][1][e]||e)},c,c.exports,e,t,o,r)}return o[l].exports}for(var a="function"==typeof require&&require,l=0;l';e.core.s.actualSize&&(t+=''),e.core.s.useLeftForZoom?utils.addClass(e.core.outer,"lg-use-left-for-zoom"):utils.addClass(e.core.outer,"lg-use-transition-for-zoom"),this.core.outer.querySelector(".lg-toolbar").insertAdjacentHTML("beforeend",t),utils.on(e.core.el,"onSlideItemLoad.lgtmzoom",function(t){var o=e.core.s.enableZoomAfter+t.detail.delay;utils.hasClass(document.body,"lg-from-hash")&&t.detail.delay?o=0:utils.removeClass(document.body,"lg-from-hash"),e.zoomabletimeout=setTimeout(function(){utils.addClass(e.core.___slide[t.detail.index],"lg-zoomable")},o+30)});var o=1,r=function t(o){var r=e.core.outer.querySelector(".lg-current .lg-image"),i,a,l=(window.innerWidth-r.clientWidth)/2,s=(window.innerHeight-r.clientHeight)/2+(document.documentElement.scrollTop||document.body.scrollTop);i=e.pageX-l,a=e.pageY-s;var n=(o-1)*i,u=(o-1)*a;utils.setVendor(r,"Transform","scale3d("+o+", "+o+", 1)"),r.setAttribute("data-scale",o),e.core.s.useLeftForZoom?(r.parentElement.style.left=-n+"px",r.parentElement.style.top=-u+"px"):utils.setVendor(r.parentElement,"Transform","translate3d(-"+n+"px, -"+u+"px, 0)"),r.parentElement.setAttribute("data-x",n),r.parentElement.setAttribute("data-y",u)},i=function t(){o>1?utils.addClass(e.core.outer,"lg-zoomed"):e.resetZoom(),o<1&&(o=1),r(o)},a=function t(r,a,l,s){var n=a.clientWidth,u;u=e.core.s.dynamic?e.core.s.dynamicEl[l].width||a.naturalWidth||n:e.core.items[l].getAttribute("data-width")||a.naturalWidth||n;var c;utils.hasClass(e.core.outer,"lg-zoomed")?o=1:u>n&&(c=u/n,o=c||2),s?(e.pageX=window.innerWidth/2,e.pageY=window.innerHeight/2+(document.documentElement.scrollTop||document.body.scrollTop)):(e.pageX=r.pageX||r.targetTouches[0].pageX,e.pageY=r.pageY||r.targetTouches[0].pageY),i(),setTimeout(function(){utils.removeClass(e.core.outer,"lg-grabbing"),utils.addClass(e.core.outer,"lg-grab")},10)},l=!1;utils.on(e.core.el,"onAferAppendSlide.lgtmzoom",function(t){var o=t.detail.index,r=e.core.___slide[o].querySelector(".lg-image");e.core.isTouch||utils.on(r,"dblclick",function(e){a(e,r,o)}),e.core.isTouch&&utils.on(r,"touchstart",function(e){l?(clearTimeout(l),l=null,a(e,r,o)):l=setTimeout(function(){l=null},300),e.preventDefault()})}),utils.on(window,"resize.lgzoom scroll.lgzoom orientationchange.lgzoom",function(){e.pageX=window.innerWidth/2,e.pageY=window.innerHeight/2+(document.documentElement.scrollTop||document.body.scrollTop),r(o)}),utils.on(document.getElementById("lg-zoom-out"),"click.lg",function(){e.core.outer.querySelector(".lg-current .lg-image")&&(o-=e.core.s.scale,i())}),utils.on(document.getElementById("lg-zoom-in"),"click.lg",function(){e.core.outer.querySelector(".lg-current .lg-image")&&(o+=e.core.s.scale,i())}),utils.on(document.getElementById("lg-actual-size"),"click.lg",function(t){a(t,e.core.___slide[e.core.index].querySelector(".lg-image"),e.core.index,!0)}),utils.on(e.core.el,"onBeforeSlide.lgtm",function(){o=1,e.resetZoom()}),e.core.isTouch||e.zoomDrag(),e.core.isTouch&&e.zoomSwipe()},r.prototype.getModifier=function(e,t,o){var r=e;e=Math.abs(e);var i=this.getCurrentTransform(o);if(!i)return 1;var a=1;if("X"===t){var l=Math.sign(parseFloat(i[0]));0===e||180===e?a=1:90===e&&(a=-90===r&&1===l||90===r&&-1===l?-1:1),a*=l}else{var s=Math.sign(parseFloat(i[3]));if(0===e||180===e)a=1;else if(90===e){var n=parseFloat(i[1]),u=parseFloat(i[2]);a=Math.sign(n*u*r*s)}a*=s}return a},r.prototype.getImageSize=function(e,t,o){var r={y:"offsetHeight",x:"offsetWidth"};return 90===t&&(o="x"===o?"y":"x"),e[r[o]]},r.prototype.getDragCords=function(e,t){return 90===t?{x:e.pageY,y:e.pageX}:{x:e.pageX,y:e.pageY}},r.prototype.getSwipeCords=function(e,t){var o=e.targetTouches[0].pageX,r=e.targetTouches[0].pageY;return 90===t?{x:r,y:o}:{x:o,y:r}},r.prototype.getPossibleDragCords=function(e,t){var o=(this.core.outer.querySelector(".lg").clientHeight-this.getImageSize(e,t,"y"))/2,r=Math.abs(this.getImageSize(e,t,"y")*Math.abs(e.getAttribute("data-scale"))-this.core.outer.querySelector(".lg").clientHeight+o),i=(this.core.outer.querySelector(".lg").clientWidth-this.getImageSize(e,t,"x"))/2,a=Math.abs(this.getImageSize(e,t,"x")*Math.abs(e.getAttribute("data-scale"))-this.core.outer.querySelector(".lg").clientWidth+i);return 90===t?{minY:i,maxY:a,minX:o,maxX:r}:{minY:o,maxY:r,minX:i,maxX:a}},r.prototype.getDragAllowedAxises=function(e,t){var o=this.getImageSize(e,t,"y")*e.getAttribute("data-scale")>this.core.outer.querySelector(".lg").clientHeight,r=this.getImageSize(e,t,"x")*e.getAttribute("data-scale")>this.core.outer.querySelector(".lg").clientWidth;return 90===t?{allowX:o,allowY:r}:{allowX:r,allowY:o}},r.prototype.getCurrentTransform=function(e){if(!e)return 0;var t=window.getComputedStyle(e,null),o=t.getPropertyValue("-webkit-transform")||t.getPropertyValue("-moz-transform")||t.getPropertyValue("-ms-transform")||t.getPropertyValue("-o-transform")||t.getPropertyValue("transform")||"none";return"none"!==o?o.split("(")[1].split(")")[0].split(","):0},r.prototype.getCurrentRotation=function(e){if(!e)return 0;var t=this.getCurrentTransform(e);return t?Math.round(Math.atan2(t[1],t[0])*(180/Math.PI)):0},r.prototype.resetZoom=function(){utils.removeClass(this.core.outer,"lg-zoomed");for(var e=0;e15||Math.abs(o.y-t.y)>15)&&(e.core.s.useLeftForZoom?(u.style.left=c+"px",u.style.top=g+"px"):utils.setVendor(u,"Transform","translate3d("+c+"px, "+g+"px, 0)"))}});for(var c=0;c15||Math.abs(t.y-e.y)>15)&&(r&&(c<=-g.maxY?c=-g.maxY:c>=-g.minY&&(c=-g.minY)),o&&(u<=-g.maxX?u=-g.maxX:u>=-g.minX&&(u=-g.minX)),r?l.setAttribute("data-y",Math.abs(c)):c=-Math.abs(l.getAttribute("data-y")),o?l.setAttribute("data-x",Math.abs(u)):u=-Math.abs(l.getAttribute("data-x")),a.core.s.useLeftForZoom?(l.style.left=u+"px",l.style.top=c+"px"):utils.setVendor(l,"Transform","translate3d("+u+"px, "+c+"px, 0)"))},r.prototype.destroy=function(){var e=this;utils.off(e.core.el,".lgzoom"),utils.off(window,".lgzoom");for(var t=0;tli:last-child{margin-bottom:0}.lg-outer .lg-dropdown>li:hover .lg-icon,.lg-outer .lg-dropdown>li:hover a{color:#333}.lg-outer .lg-dropdown a{color:#333;display:block;white-space:pre;padding:4px 12px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px}.lg-outer .lg-dropdown a:hover{background-color:rgba(0,0,0,.07)}.lg-outer .lg-dropdown .lg-dropdown-text{display:inline-block;line-height:1;margin-top:-3px;vertical-align:middle}.lg-outer .lg-dropdown .lg-icon{color:#333;display:inline-block;float:none;font-size:20px;height:auto;line-height:1;margin-right:8px;padding:0;vertical-align:middle;width:auto}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{height:100%;width:100%}.lg-outer #lg-share{position:relative}.lg-outer #lg-share:after{content:"\e80d"}.lg-outer #lg-share-facebook .lg-icon{color:#3b5998}.lg-outer #lg-share-facebook .lg-icon:after{content:"\e904"}.lg-outer #lg-share-twitter .lg-icon{color:#00aced}.lg-outer #lg-share-twitter .lg-icon:after{content:"\e907"}.lg-outer #lg-share-googleplus .lg-icon{color:#dd4b39}.lg-outer #lg-share-googleplus .lg-icon:after{content:"\e905"}.lg-outer #lg-share-pinterest .lg-icon{color:#cb2027}.lg-outer #lg-share-pinterest .lg-icon:after{content:"\e906"}.lg-outer .lg-img-rotate{position:absolute;padding:0 5px;left:0;right:0;top:0;bottom:0;-webkit-transition:-webkit-transform .3s cubic-bezier(.32,0,.67,0) 0s;-moz-transition:-moz-transform .3s cubic-bezier(.32,0,.67,0) 0s;-o-transition:-o-transform .3s cubic-bezier(.32,0,.67,0) 0s;transition:transform .3s cubic-bezier(.32,0,.67,0) 0s}.lg-rotate-left:after{content:"\e900"}.lg-rotate-right:after{content:"\e901"}.lg-icon.lg-flip-hor,.lg-icon.lg-flip-ver{font-size:26px}.lg-flip-hor:after{content:"\e902"}.lg-flip-ver:after{content:"\e903"}.lg-group:after,.lg-group:before{display:table;content:"";line-height:0}.lg-group:after{clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;opacity:0;outline:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(../img/loading.gif) center center no-repeat;display:none!important}.lg-outer.lg-css .lg-current,.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}.lg-outer .lg-img-wrap{position:absolute;padding:0 5px;left:0;right:0;top:0;bottom:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html,.lg-outer.lg-hide-download #lg-download{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item,.lg-css3.lg-use-left .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s} \ No newline at end of file diff --git a/assets/lib/lightgallery/lightgallery.min.js b/assets/lib/lightgallery/lightgallery.min.js index 0e4d6a46..30888ad1 100644 --- a/assets/lib/lightgallery/lightgallery.min.js +++ b/assets/lib/lightgallery/lightgallery.min.js @@ -1,7 +1,8 @@ -/**! - * lightgallery.js | 1.4.0 | October 13th 2020 - * http://sachinchoolur.github.io/lightgallery.js/ - * Copyright (c) 2016 Sachin N; - * @license GPLv3 +/** + * lightgallery | 2.6.0 | August 29th 2022 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 */ - !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Lightgallery=e()}}(function(){var e,t,s;return function(){function e(t,s,l){function i(r,a){if(!s[r]){if(!t[r]){var d="function"==typeof require&&require;if(!a&&d)return d(r,!0);if(o)return o(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var u=s[r]={exports:{}};t[r][0].call(u.exports,function(e){return i(t[r][1][e]||e)},u,u.exports,e,t,s,l)}return s[r].exports}for(var o="function"==typeof require&&require,r=0;r2&&void 0!==arguments[2]?arguments[2]:null;if(t){var i=new CustomEvent(s,{detail:l});t.dispatchEvent(i)}},Listener:{uid:0},on:function e(s,l,i){var o=this;s&&l.split(" ").forEach(function(e){var l=o.getAttribute(s,"lg-event-uid")||"";t.Listener.uid++,l+="&"+t.Listener.uid,o.setAttribute(s,"lg-event-uid",l),t.Listener[e+t.Listener.uid]=i,s.addEventListener(e.split(".")[0],i,!1)})},off:function e(s,l){if(s){var i=this.getAttribute(s,"lg-event-uid");if(i){i=i.split("&");for(var o=0;o-1&&(s.removeEventListener(a.split(".")[0],t.Listener[a]),this.setAttribute(s,"lg-event-uid",this.getAttribute(s,"lg-event-uid").replace("&"+i[o],"")),delete t.Listener[a]);else s.removeEventListener(r.split(".")[0],t.Listener[r]),this.setAttribute(s,"lg-event-uid",this.getAttribute(s,"lg-event-uid").replace("&"+i[o],"")),delete t.Listener[r]}}}},param:function e(t){return Object.keys(t).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])}).join("&")}};e.default=t})},{}],2:[function(t,s,l){!function(s,i){if("function"==typeof e&&e.amd)e(["./lg-utils"],i);else if(void 0!==l)i(t("./lg-utils"));else{var o={exports:{}};i(s.lgUtils),s.lightgallery=o.exports}}(this,function(e){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(this.el=e,this.s=i({},o,t),this.s.dynamic&&"undefined"!==this.s.dynamicEl&&this.s.dynamicEl.constructor===Array&&!this.s.dynamicEl.length)throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in document.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.items=[],this.s.dynamic?this.items=this.s.dynamicEl:"this"===this.s.selector?this.items.push(this.el):""!==this.s.selector?this.s.selectWithin?this.items=document.querySelector(this.s.selectWithin).querySelectorAll(this.s.selector):this.items=this.el.querySelectorAll(this.s.selector):this.items=this.el.children,this.___slide="",this.outer="",this.init(),this}var l=t(e),i=Object.assign||function(e){for(var t=1;te.items.length&&(e.s.preload=e.items.length);var t=window.location.hash;if(t.indexOf("lg="+this.s.galleryId)>0&&(e.index=parseInt(t.split("&slide=")[1],10),l.default.addClass(document.body,"lg-from-hash"),l.default.hasClass(document.body,"lg-on")||(l.default.addClass(document.body,"lg-on"),setTimeout(function(){e.build(e.index)}))),e.s.dynamic)l.default.trigger(this.el,"onBeforeOpen"),e.index=e.s.index||0,l.default.hasClass(document.body,"lg-on")||(l.default.addClass(document.body,"lg-on"),setTimeout(function(){e.build(e.index)}));else for(var s=0;s1&&(t.arrow(),setTimeout(function(){t.enableDrag(),t.enableSwipe()},50),t.s.mousewheel&&t.mousewheel()),t.counter(),t.closeGallery(),l.default.trigger(t.el,"onAfterOpen"),t.s.hideBarsDelay>0){var i=setTimeout(function(){l.default.addClass(t.outer,"lg-hide-items")},t.s.hideBarsDelay);l.default.on(t.outer,"mousemove.lg click.lg touchstart.lg",function(){clearTimeout(i),l.default.removeClass(t.outer,"lg-hide-items"),clearTimeout(t.hideBartimeout),t.hideBartimeout=setTimeout(function(){l.default.addClass(t.outer,"lg-hide-items")},t.s.hideBarsDelay)})}},s.prototype.structure=function(){var e="",t="",s=0,i="",o,r=this;for(document.body.insertAdjacentHTML("beforeend",'
'),l.default.setVendor(document.querySelector(".lg-backdrop"),"TransitionDuration",this.s.backdropDuration+"ms"),s=0;s';if(this.s.controls&&this.items.length>1&&(t='
"),".lg-sub-html"===this.s.appendSubHtmlTo&&(i='
'),o='",document.body.insertAdjacentHTML("beforeend",o),this.outer=document.querySelector(".lg-outer"),this.outer.focus(),this.___slide=this.outer.querySelectorAll(".lg-item"),this.s.useLeft?(l.default.addClass(this.outer,"lg-use-left"),this.s.mode="lg-slide"):l.default.addClass(this.outer,"lg-use-css3"),r.setTop(),l.default.on(window,"resize.lg orientationchange.lg",function(){setTimeout(function(){r.setTop()},100)}),l.default.addClass(this.___slide[this.index],"lg-current"),this.doCss()?l.default.addClass(this.outer,"lg-css3"):(l.default.addClass(this.outer,"lg-css"),this.s.speed=0),l.default.addClass(this.outer,this.s.mode),this.s.enableDrag&&this.items.length>1&&l.default.addClass(this.outer,"lg-grab"),this.s.showAfterLoad&&l.default.addClass(this.outer,"lg-show-after-load"),this.doCss()){var a=this.outer.querySelector(".lg-inner");l.default.setVendor(a,"TransitionTimingFunction",this.s.cssEasing),l.default.setVendor(a,"TransitionDuration",this.s.speed+"ms")}setTimeout(function(){l.default.addClass(document.querySelector(".lg-backdrop"),"in")}),setTimeout(function(){l.default.addClass(r.outer,"lg-visible")},this.s.backdropDuration),this.s.download&&this.outer.querySelector(".lg-toolbar").insertAdjacentHTML("beforeend",''),this.prevScrollTop=document.documentElement.scrollTop||document.body.scrollTop},s.prototype.setTop=function(){if("100%"!==this.s.height){var e=window.innerHeight,t=(e-parseInt(this.s.height,10))/2,s=this.outer.querySelector(".lg");e>=parseInt(this.s.height,10)?s.style.top=t+"px":s.style.top="0px"}},s.prototype.doCss=function(){return!!function e(){var t=["transition","MozTransition","WebkitTransition","OTransition","msTransition","KhtmlTransition"],s=document.documentElement,l=0;for(l=0;l'+(parseInt(this.index,10)+1)+' / '+this.items.length+"")},s.prototype.addHtml=function(e){var t=null,s;if(this.s.dynamic?t=this.s.dynamicEl[e].subHtml:(s=this.items[e],t=s.getAttribute("data-sub-html"),this.s.getCaptionFromTitleOrAlt&&!t&&(t=s.getAttribute("title"))&&s.querySelector("img")&&(t=s.querySelector("img").getAttribute("alt"))),void 0!==t&&null!==t){var i=t.substring(0,1);"."!==i&&"#"!==i||(t=this.s.subHtmlSelectorRelative&&!this.s.dynamic?s.querySelector(t).innerHTML:document.querySelector(t).innerHTML)}else t="";".lg-sub-html"===this.s.appendSubHtmlTo?this.outer.querySelector(this.s.appendSubHtmlTo).innerHTML=t:this.___slide[e].insertAdjacentHTML("beforeend",t),void 0!==t&&null!==t&&(""===t?l.default.addClass(this.outer.querySelector(this.s.appendSubHtmlTo),"lg-empty-html"):l.default.removeClass(this.outer.querySelector(this.s.appendSubHtmlTo),"lg-empty-html")),l.default.trigger(this.el,"onAfterAppendSubHtml",{index:e})},s.prototype.preload=function(e){var t=1,s=1;for(t=1;t<=this.s.preload&&!(t>=this.items.length-e);t++)this.loadContent(e+t,!1,0);for(s=1;s<=this.s.preload&&!(e-s<0);s++)this.loadContent(e-s,!1,0)},s.prototype.loadContent=function(e,t,s){var i=this,o=!1,r,a,d,n,u,c,g,f=function e(t){for(var s=[],l=[],i=0;ir){a=l[d];break}};if(i.s.dynamic){if(i.s.dynamicEl[e].poster&&(o=!0,d=i.s.dynamicEl[e].poster),c=i.s.dynamicEl[e].html,a=i.s.dynamicEl[e].src,g=i.s.dynamicEl[e].alt,i.s.dynamicEl[e].responsive){f(i.s.dynamicEl[e].responsive.split(","))}n=i.s.dynamicEl[e].srcset,u=i.s.dynamicEl[e].sizes}else{if(i.items[e].getAttribute("data-poster")&&(o=!0,d=i.items[e].getAttribute("data-poster")),c=i.items[e].getAttribute("data-html"),a=i.items[e].getAttribute("href")||i.items[e].getAttribute("data-src"),g=i.items[e].getAttribute("title"),i.items[e].querySelector("img")&&(g=g||i.items[e].querySelector("img").getAttribute("alt")),i.items[e].getAttribute("data-responsive")){f(i.items[e].getAttribute("data-responsive").split(","))}n=i.items[e].getAttribute("data-srcset"),u=i.items[e].getAttribute("data-sizes")}var h=!1;i.s.dynamic?i.s.dynamicEl[e].iframe&&(h=!0):"true"===i.items[e].getAttribute("data-iframe")&&(h=!0);var m=i.isVideo(a,e);if(!l.default.hasClass(i.___slide[e],"lg-loaded")){if(h)i.___slide[e].insertAdjacentHTML("afterbegin",'
');else if(o){var p="";p=m&&m.youtube?"lg-has-youtube":m&&m.vimeo?"lg-has-vimeo":"lg-has-html5",i.___slide[e].insertAdjacentHTML("beforeend",'
')}else m?(i.___slide[e].insertAdjacentHTML("beforeend",'
'),l.default.trigger(i.el,"hasVideo",{index:e,src:a,html:c})):(g=g?'alt="'+g+'"':"",i.___slide[e].insertAdjacentHTML("beforeend",'
'));if(l.default.trigger(i.el,"onAferAppendSlide",{index:e}),r=i.___slide[e].querySelector(".lg-object"),u&&r.setAttribute("sizes",u),n&&(r.setAttribute("srcset",n),this.s.supportLegacyBrowser))try{picturefill({elements:[r[0]]})}catch(e){console.warn("If you want srcset to be supported for older browsers, please include picturefil javascript library in your document.")}".lg-sub-html"!==this.s.appendSubHtmlTo&&i.addHtml(e),l.default.addClass(i.___slide[e],"lg-loaded")}l.default.on(i.___slide[e].querySelector(".lg-object"),"load.lg error.lg",function(){var t=0;s&&!l.default.hasClass(document.body,"lg-from-hash")&&(t=s),setTimeout(function(){l.default.addClass(i.___slide[e],"lg-complete"),l.default.trigger(i.el,"onSlideItemLoad",{index:e,delay:s||0})},t)}),m&&m.html5&&!o&&l.default.addClass(i.___slide[e],"lg-complete"),!0===t&&(l.default.hasClass(i.___slide[e],"lg-complete")?i.preload(e):l.default.on(i.___slide[e].querySelector(".lg-object"),"load.lg error.lg",function(){i.preload(e)}))},s.prototype.slide=function(e,t,s){for(var i=0,o=0;oi&&(n=!0,e!==a-1||0!==i||s||(u=!0,n=!1)),u?(l.default.addClass(this.___slide[e],"lg-prev-slide"),l.default.addClass(this.___slide[i],"lg-next-slide")):n&&(l.default.addClass(this.___slide[e],"lg-next-slide"),l.default.addClass(this.___slide[i],"lg-prev-slide")),setTimeout(function(){l.default.removeClass(r.outer.querySelector(".lg-current"),"lg-current"),l.default.addClass(r.___slide[e],"lg-current"),l.default.removeClass(r.outer,"lg-no-trans")},50)}r.lGalleryOn?(setTimeout(function(){r.loadContent(e,!0,0)},this.s.speed+50),setTimeout(function(){r.lgBusy=!1,l.default.trigger(r.el,"onAfterSlide",{prevIndex:i,index:e,fromTouch:t,fromThumb:s})},this.s.speed)):(r.loadContent(e,!0,r.s.backdropDuration),r.lgBusy=!1,l.default.trigger(r.el,"onAfterSlide",{prevIndex:i,index:e,fromTouch:t,fromThumb:s})),r.lGalleryOn=!0,this.s.counter&&document.getElementById("lg-counter-current")&&(document.getElementById("lg-counter-current").innerHTML=e+1)}}},s.prototype.goToNextSlide=function(e){var t=this;t.lgBusy||(t.index+10?(t.index--,l.default.trigger(t.el,"onBeforePrevSlide",{index:t.index,fromTouch:e}),t.slide(t.index,e,!1)):t.s.loop?(t.index=t.items.length-1,l.default.trigger(t.el,"onBeforePrevSlide",{index:t.index,fromTouch:e}),t.slide(t.index,e,!1)):t.s.slideEndAnimatoin&&(l.default.addClass(t.outer,"lg-left-end"),setTimeout(function(){l.default.removeClass(t.outer,"lg-left-end")},400)))},s.prototype.keyPress=function(){var e=this;this.items.length>1&&l.default.on(window,"keyup.lg",function(t){e.items.length>1&&(37===t.keyCode&&(t.preventDefault(),e.goToPrevSlide()),39===t.keyCode&&(t.preventDefault(),e.goToNextSlide()))}),l.default.on(window,"keydown.lg",function(t){!0===e.s.escKey&&27===t.keyCode&&(t.preventDefault(),l.default.hasClass(e.outer,"lg-thumb-open")?l.default.removeClass(e.outer,"lg-thumb-open"):e.destroy())})},s.prototype.arrow=function(){var e=this;l.default.on(this.outer.querySelector(".lg-prev"),"click.lg",function(){e.goToPrevSlide()}),l.default.on(this.outer.querySelector(".lg-next"),"click.lg",function(){e.goToNextSlide()})},s.prototype.arrowDisable=function(e){if(!this.s.loop&&this.s.hideControlOnEnd){var t=this.outer.querySelector(".lg-next"),s=this.outer.querySelector(".lg-prev");e+10?(s.removeAttribute("disabled"),l.default.removeClass(s,"disabled")):(s.setAttribute("disabled","disabled"),l.default.addClass(s,"disabled"))}},s.prototype.setTranslate=function(e,t,s){this.s.useLeft?e.style.left=t:l.default.setVendor(e,"Transform","translate3d("+t+"px, "+s+"px, 0px)")},s.prototype.touchMove=function(e,t){var s=t-e;Math.abs(s)>15&&(l.default.addClass(this.outer,"lg-dragging"),this.setTranslate(this.___slide[this.index],s,0),this.setTranslate(document.querySelector(".lg-prev-slide"),-this.___slide[this.index].clientWidth+s,0),this.setTranslate(document.querySelector(".lg-next-slide"),this.___slide[this.index].clientWidth+s,0))},s.prototype.touchEnd=function(e){var t=this;"lg-slide"!==t.s.mode&&l.default.addClass(t.outer,"lg-slide");for(var s=0;st.s.swipeThreshold?t.goToNextSlide(!0):e>0&&Math.abs(e)>t.s.swipeThreshold?t.goToPrevSlide(!0):Math.abs(e)<5&&l.default.trigger(t.el,"onSlideClick");for(var s=0;s-1&&l.default.addClass(this.___slide[t],"lg-prev-slide"),l.default.addClass(this.___slide[e],"lg-next-slide")},s.prototype.mousewheel=function(){var e=this;l.default.on(e.outer,"mousewheel.lg",function(t){t.deltaY&&(t.deltaY>0?e.goToPrevSlide():e.goToNextSlide(),t.preventDefault())})},s.prototype.closeGallery=function(){var e=this,t=!1;l.default.on(this.outer.querySelector(".lg-close"),"click.lg",function(){e.destroy()}),e.s.closable&&(l.default.on(e.outer,"mousedown.lg",function(e){t=!!(l.default.hasClass(e.target,"lg-outer")||l.default.hasClass(e.target,"lg-item")||l.default.hasClass(e.target,"lg-img-wrap"))}),l.default.on(e.outer,"mouseup.lg",function(s){(l.default.hasClass(s.target,"lg-outer")||l.default.hasClass(s.target,"lg-item")||l.default.hasClass(s.target,"lg-img-wrap")&&t)&&(l.default.hasClass(e.outer,"lg-dragging")||e.destroy())}))},s.prototype.destroy=function(e){var t=this;if(e||l.default.trigger(t.el,"onBeforeClose"),document.body.scrollTop=t.prevScrollTop,document.documentElement.scrollTop=t.prevScrollTop,e){if(!t.s.dynamic)for(var s=0;sr){n=a;break}l===o.length-1&&(n=a)}var d=n.split("-"),g=parseInt(d[0],10),h=parseInt(d[1],10),c=e.width(),u=e.height()-i,m=Math.min(c,g),p=Math.min(u,h),f=Math.min(m/g,p/h);return{width:g*f,height:h*f}}},E=function(t,e,i,s,n){if(n){var o=x(t).find("img").first();if(o.get()){var r=e.get().getBoundingClientRect(),l=r.width,a=e.height()-(i+s),d=o.width(),g=o.height(),h=o.style(),c=(l-d)/2-o.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+x(window).scrollLeft()+r.left,u=(a-g)/2-o.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+x(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(u*=-1)+"px, 0) scale3d("+d/n.width+", "+g/n.height+", 1)"}}},O=function(t,e,i,s,n,o){return'
\n \n
'},D=function(t,e,i,s,n,o){var r="',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),""})));return""+l+r},L=function(t){for(var e=[],i=[],s="",n=0;nr){s=i[l];break}return s},z=function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},M=function(t,e,i,s,n){return'
\n
\n \n '+s+'\n \n \n \n \n \n \n \n
\n '+(e||"")+'\n \n
'},G=function(t){var e=t.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');return[].filter.call(e,(function(t){var e=window.getComputedStyle(t);return"none"!==e.display&&"hidden"!==e.visibility}))},k=function(t,e,i,s){var n=[],o=function(){for(var t=0,e=0,i=arguments.length;e-1&&(d=a),d&&(e[d]=l.value)}}var g=x(t),h=g.find("img").first().attr("alt"),c=g.attr("title"),u=s?g.attr(s):g.find("img").first().attr("src");e.thumb=u,i&&!e.subHtml&&(e.subHtml=c||h||""),e.alt=h||c||"",n.push(e)})),n},A=function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},P=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0},B=0,F=function(){function w(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(B++,this.lgId=B,this.el=t,this.LGel=x(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return w.prototype.generateSettings=function(e){if(this.settings=t(t({},I),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():A()){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},w.prototype.normalizeSettings=function(){this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container||(this.settings.container=document.body),this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},w.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(i,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout((function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()}),50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},w.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var s=i.items[e],n=x(s),o=C.generateUUID();n.attr("data-lg-id",o).on("click.lgcustom-item-"+o,(function(i){i.preventDefault();var n=t.settings.index||e;t.openGallery(n,s)}))},i=this,s=0;s '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",o=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",r="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'':"",a=this.settings.showMaximizeIcon?'':"",d='\n \n ";x(this.settings.container).append(d),document.body!==this.settings.container&&x(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var g=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(g+="lg-grab "),this.outer.addClass(g),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),x(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},w.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=T(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(n)}},w.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},w.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(o)}else this.closeGallery()},w.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=x(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return k(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},w.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},w.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(x("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;x(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),x(document.body).addClass("lg-overlay-open")}},w.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(x(document.body).css("padding-right",this.bodyPaddingRight+"px"),x(document.body).removeClass("lg-overlay-open"))},w.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var n="";s.forEach((function(t){n=n+'
'})),this.$inner.append(n),this.addHtml(t);var o="";this.mediaContainerPosition=this.getMediaContainerPosition();var r=this.mediaContainerPosition,d=r.top,g=r.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(d,g);var h=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=T(e,this.outer,d+g,h&&this.settings.videoMaxSize),o=E(e,this.outer,d,g,this.currentImageSize)),this.zoomFromOrigin&&o||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(l),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=x(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&o){var e=i.getSlideItem(t);e.css("transform",o),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),setTimeout((function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()}),i.settings.backdropDuration+50),i.zoomFromOrigin&&o||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(a)})),document.body===this.settings.container&&x("html").addClass("lg-on")}},w.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},w.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},w.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},w.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},w.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},w.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?x(this.items).eq(t).find(e).first().html():x(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var n=x(this.getSlideItemId(t));i?n.load(i):n.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(r,{index:t})},w.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},w.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},w.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},w.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=x(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var o="';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),o}return""},w.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],n=s.alt,o=s.srcset,r=s.sizes,l=s.sources,a=n?'alt="'+n+'"':"",d=' '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,a):D(i,t,a,o,r,l))+"";e.prepend(d)},w.prototype.onSlideObjectLoad=function(t,e,i,s){var n=t.find(".lg-object").first();z(n.get())||e?i():(n.on("load.lg error.lg",(function(){i&&i()})),n.on("error.lg",(function(){s&&s()})))},w.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html('Oops... Failed to load content...')}))},w.prototype.triggerSlideItemLoad=function(t,e,i,s,n){var o=this,r=this.galleryItems[e],l=n&&"video"===this.getSlideType(r)&&!r.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),o.LGel.trigger(d,{index:e,delay:i||0,isFirstSlide:n})}),l)},w.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},w.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=P(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},w.prototype.loadContent=function(t,i){var n=this,o=this.galleryItems[t],r=x(this.getSlideItemId(t)),l=o.poster,a=o.srcset,d=o.sizes,g=o.sources,h=o.src,c=o.video,u=c&&"string"==typeof c?JSON.parse(c):c;if(o.responsive){var m=o.responsive.split(",");h=L(m)||h}var p=o.__slideVideoInfo,f="",y=!!o.iframe,v=!this.lGalleryOn,b=0;if(v&&(b=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(p){var I=this.mediaContainerPosition,C=I.top,w=I.bottom,S=T(this.items[t],this.outer,C+w,p&&this.settings.videoMaxSize);f=this.getVideoContStyle(S)}if(y){var E=O(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,h,o.iframeTitle);r.prepend(E)}else if(l){var z="";v&&this.zoomFromOrigin&&this.currentImageSize&&(z=this.getDummyImageContent(r,t,""));E=M(l,z||"",f,this.settings.strings.playVideo,p);r.prepend(E)}else if(p){E='
';r.prepend(E)}else if(this.setImgMarkup(h,r,t),a||g){var G=r.find(".lg-object");this.initPictureFill(G)}(l||p)&&this.LGel.trigger(s,{index:t,src:h,html5Video:u,hasPoster:!!l}),this.LGel.trigger(e,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var k=0;b&&!x(document.body).hasClass("lg-from-hash")&&(k=b),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout((function(){if("image"===n.getSlideType(o)){var e=o.alt,i=e?'alt="'+e+'"':"";if(r.find(".lg-img-wrap").append(D(t,h,i,a,d,o.sources)),a||g){var s=r.find(".lg-object");n.initPictureFill(s)}}("image"===n.getSlideType(o)||"video"===n.getSlideType(o)&&l)&&(n.onLgObjectLoad(r,t,b,k,!0,!1),n.onSlideObjectLoad(r,!(!p||!p.html5||l),(function(){n.loadContentOnFirstSlideLoad(t,r,k)}),(function(){n.loadContentOnFirstSlideLoad(t,r,k)})))}),this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||l)||this.onLgObjectLoad(r,t,b,k,v,!(!p||!p.html5||l)),this.zoomFromOrigin&&this.currentImageSize||!r.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){r.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===i&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",(function(){n.preload(t)})))},w.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},w.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&x("#"+t).remove()})),s},w.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},w.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},w.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},w.prototype.slide=function(t,e,i,s){var n=this,o=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,o),!this.lGalleryOn||o!==t){var r=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var l=this.getSlideItem(t),a=this.getSlideItem(o),d=this.galleryItems[t],c=d.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(d)),this.setDownloadValue(t),c){var u=this.mediaContainerPosition,m=u.top,p=u.bottom,f=T(this.items[t],this.outer,m+p,c&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(g,{prevIndex:o,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(to&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var y=void 0,v=void 0;r>2?(y=t-1,v=t+1,(0===t&&o===r-1||t===r-1&&0===o)&&(v=0,y=r-1)):(y=0,v=1),"prev"===s?this.getSlideItem(v).addClass("lg-next-slide"):this.getSlideItem(y).addClass("lg-prev-slide"),l.addClass("lg-current")}else this.makeSlideAnimation(s,l,a);this.lGalleryOn?setTimeout((function(){n.loadContent(t,!0),".lg-item"!==n.settings.appendSubHtmlTo&&n.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){n.lgBusy=!1,a.removeClass("lg-slide-progress"),n.LGel.trigger(h,{prevIndex:o,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},w.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},w.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},w.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},w.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var d=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",d);var g=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,g,g),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},w.prototype.touchEnd=function(t,e,i){var s,n=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){n.$container.removeClass("lg-dragging-vertical"),n.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var o=!0;if("horizontal"===n.swipeDirection){s=t.pageX-e.pageX;var r=Math.abs(t.pageX-e.pageX);s<0&&r>n.settings.swipeThreshold?(n.goToNextSlide(!0),o=!1):s>0&&r>n.settings.swipeThreshold&&(n.goToPrevSlide(!0),o=!1)}else if("vertical"===n.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),n.settings.closable&&n.settings.swipeToClose&&s>100)return void n.closeGallery();n.$backdrop.css("opacity",1)}if(n.outer.find(".lg-item").removeAttr("style"),o&&Math.abs(t.pageX-e.pageX)<5){var l=x(i.target);n.isPosterElement(l)&&n.LGel.trigger(c)}n.swipeDirection=void 0})),setTimeout((function(){n.outer.hasClass("lg-dragging")||"lg-slide"===n.settings.mode||n.outer.removeClass("lg-slide")}),this.settings.speed+100)},w.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!x(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(n=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})})),this.$inner.on("touchmove.lg",(function(o){n&&"swipe"===t.touchAction&&1===o.touches.length&&(i={pageX:o.touches[0].pageX,pageY:o.touches[0].pageY},t.touchMove(e,i,o),s=!0)})),this.$inner.on("touchend.lg",(function(o){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,o);else if(n){var r=x(o.target);t.isPosterElement(r)&&t.LGel.trigger(c)}t.touchAction=void 0,n=!1}})))},w.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var n=t.getSlideItem(t.index);(x(i.target).hasClass("lg-item")||n.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(u))))})),x(window).on("mousemove.lg.global"+this.lgId,(function(o){s&&t.lgOpened&&(n=!0,i={pageX:o.pageX,pageY:o.pageY},t.touchMove(e,i),t.LGel.trigger(m))})),x(window).on("mouseup.lg.global"+this.lgId,(function(o){if(t.lgOpened){var r=x(o.target);n?(n=!1,t.touchEnd(i,e,o),t.LGel.trigger(p)):t.isPosterElement(r)&&t.LGel.trigger(c),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},w.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(x(e.target))&&t.LGel.trigger(c)}))},w.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},w.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},w.prototype.keyPress=function(){var t=this;x(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},w.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},w.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},w.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},w.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},w.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")},w.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},w.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},w.prototype.invalidateItems=function(){for(var t=0;t\n
\n
\n ';this.core.outer.addClass("lg-has-thumb"),".lg-components"===this.settings.appendThumbnailsTo?this.core.$lgComponents.append(e):this.core.outer.append(e),this.$thumbOuter=this.core.outer.find(".lg-thumb-outer").first(),this.$lgThumb=this.core.outer.find(".lg-thumb").first(),this.settings.animateThumb&&this.core.outer.find(".lg-thumb").css("transition-duration",this.core.settings.speed+"ms").css("width",this.thumbTotalWidth+"px").css("position","relative"),this.setThumbItemHtml(this.core.galleryItems)},o.prototype.enableThumbDrag=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0},i=!1;this.$thumbOuter.addClass("lg-grab"),this.core.outer.find(".lg-thumb").first().on("mousedown.lg.thumb",(function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),e.cords.startX=s.pageX,e.startTime=new Date,t.thumbClickable=!1,i=!0,t.core.outer.get().scrollLeft+=1,t.core.outer.get().scrollLeft-=1,t.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))})),this.$LG(window).on("mousemove.lg.thumb.global"+this.core.lgId,(function(s){t.core.lgOpened&&i&&(e.cords.endX=s.pageX,e=t.onThumbTouchMove(e))})),this.$LG(window).on("mouseup.lg.thumb.global"+this.core.lgId,(function(){t.core.lgOpened&&(e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0,i&&(i=!1,t.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab")))}))},o.prototype.enableThumbSwipe=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0};this.$lgThumb.on("touchstart.lg",(function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.startX=i.targetTouches[0].pageX,t.thumbClickable=!1,e.startTime=new Date)})),this.$lgThumb.on("touchmove.lg",(function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.endX=i.targetTouches[0].pageX,e=t.onThumbTouchMove(e))})),this.$lgThumb.on("touchend.lg",(function(){e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0}))},o.prototype.rebuildThumbnails=function(){var t=this;this.$thumbOuter.addClass("lg-rebuilding-thumbnails"),setTimeout((function(){t.thumbTotalWidth=t.core.galleryItems.length*(t.settings.thumbWidth+t.settings.thumbMargin),t.$lgThumb.css("width",t.thumbTotalWidth+"px"),t.$lgThumb.empty(),t.setThumbItemHtml(t.core.galleryItems),t.animateThumb(t.core.index)}),50),setTimeout((function(){t.$thumbOuter.removeClass("lg-rebuilding-thumbnails")}),200)},o.prototype.setTranslate=function(t){this.$lgThumb.css("transform","translate3d(-"+t+"px, 0px, 0px)")},o.prototype.getPossibleTransformX=function(t){return t>this.thumbTotalWidth-this.thumbOuterWidth&&(t=this.thumbTotalWidth-this.thumbOuterWidth),t<0&&(t=0),t},o.prototype.animateThumb=function(t){if(this.$lgThumb.css("transition-duration",this.core.settings.speed+"ms"),this.settings.animateThumb){var e=0;switch(this.settings.currentPagerPosition){case"left":e=0;break;case"middle":e=this.thumbOuterWidth/2-this.settings.thumbWidth/2;break;case"right":e=this.thumbOuterWidth-this.settings.thumbWidth}this.translateX=(this.settings.thumbWidth+this.settings.thumbMargin)*t-1-e,this.translateX>this.thumbTotalWidth-this.thumbOuterWidth&&(this.translateX=this.thumbTotalWidth-this.thumbOuterWidth),this.translateX<0&&(this.translateX=0),this.setTranslate(this.translateX)}},o.prototype.onThumbTouchMove=function(t){return t.newTranslateX=this.translateX,t.isMoved=!0,t.touchMoveTime=(new Date).valueOf(),t.newTranslateX-=t.cords.endX-t.cords.startX,t.newTranslateX=this.getPossibleTransformX(t.newTranslateX),this.setTranslate(t.newTranslateX),this.$thumbOuter.addClass("lg-dragging"),t},o.prototype.onThumbTouchEnd=function(t){t.isMoved=!1,t.endTime=new Date,this.$thumbOuter.removeClass("lg-dragging");var e=t.endTime.valueOf()-t.startTime.valueOf(),i=t.cords.endX-t.cords.startX,s=Math.abs(i)/e;return s>.15&&t.endTime.valueOf()-t.touchMoveTime<30?((s+=1)>2&&(s+=1),s+=s*(Math.abs(i)/this.thumbOuterWidth),this.$lgThumb.css("transition-duration",Math.min(s-1,2)+"settings"),i*=s,this.translateX=this.getPossibleTransformX(this.translateX-i),this.setTranslate(this.translateX)):this.translateX=t.newTranslateX,Math.abs(t.cords.endX-t.cords.startX)\n \n '},o.prototype.getThumbItemHtml=function(t){for(var e="",i=0;i'),this.core.outer.find(".lg-toggle-thumb").first().on("click.lg",(function(){t.core.outer.toggleClass("lg-components-open")})))},o.prototype.thumbKeyPress=function(){var t=this;this.$LG(window).on("keydown.lg.thumb.global"+this.core.lgId,(function(e){t.core.lgOpened&&t.settings.toggleThumb&&(38===e.keyCode?(e.preventDefault(),t.core.outer.addClass("lg-components-open")):40===e.keyCode&&(e.preventDefault(),t.core.outer.removeClass("lg-components-open")))}))},o.prototype.destroy=function(){this.settings.thumbnail&&(this.$LG(window).off(".lg.thumb.global"+this.core.lgId),this.core.LGel.off(".lg.thumb"),this.core.LGel.off(".thumb"),this.$thumbOuter.remove(),this.core.outer.removeClass("lg-has-thumb"))},o}()})); diff --git a/assets/lib/lightgallery/plugins/zoom/lg-zoom.min.js b/assets/lib/lightgallery/plugins/zoom/lg-zoom.min.js new file mode 100644 index 00000000..6a32786f --- /dev/null +++ b/assets/lib/lightgallery/plugins/zoom/lg-zoom.min.js @@ -0,0 +1,8 @@ +/** + * lightgallery | 2.6.0 | August 29th 2022 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).lgZoom=t()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,o=1,i=arguments.length;o':"";this.settings.actualSize&&(e+=''),this.core.outer.addClass("lg-use-transition-for-zoom"),this.core.$toolbar.first().append(e)},h.prototype.enableZoom=function(e){var t=this,o=this.settings.enableZoomAfter+e.detail.delay;this.$LG("body").first().hasClass("lg-from-hash")&&e.detail.delay?o=0:this.$LG("body").first().removeClass("lg-from-hash"),this.zoomableTimeout=setTimeout((function(){t.isImageSlide()&&(t.core.getSlideItem(e.detail.index).addClass("lg-zoomable"),e.detail.index===t.core.index&&t.setZoomEssentials())}),o+30)},h.prototype.enableZoomOnSlideItemLoad=function(){this.core.LGel.on(a+".zoom",this.enableZoom.bind(this))},h.prototype.getDragCords=function(e){return{x:e.pageX,y:e.pageY}},h.prototype.getSwipeCords=function(e){return{x:e.touches[0].pageX,y:e.touches[0].pageY}},h.prototype.getDragAllowedAxises=function(e,t){var o=this.core.getSlideItem(this.core.index).find(".lg-image").first().get(),i=0,s=0,a=o.getBoundingClientRect();e?(i=o.offsetHeight*e,s=o.offsetWidth*e):t?(i=a.height+t*a.height,s=a.width+t*a.width):(i=a.height,s=a.width);var n=i>this.containerRect.height;return{allowX:s>this.containerRect.width,allowY:n}},h.prototype.setZoomEssentials=function(){this.containerRect=this.core.$content.get().getBoundingClientRect()},h.prototype.zoomImage=function(e,t,o,i){if(!(Math.abs(t)<=0)){var s,a,n=this.containerRect.width/2+this.containerRect.left,r=this.containerRect.height/2+this.containerRect.top+this.scrollTop;1===e&&(this.positionChanged=!1);var l=this.getDragAllowedAxises(0,t),g=l.allowY,c=l.allowX;this.positionChanged&&(s=this.left/(this.scale-t),a=this.top/(this.scale-t),this.pageX=n-s,this.pageY=r-a,this.positionChanged=!1);var h,m,u=this.getPossibleSwipeDragCords(t),d=n-this.pageX,p=r-this.pageY;if(e-t>1){var f=(e-t)/Math.abs(t);h=(d=(t<0?-d:d)+this.left*(f+(t<0?-1:1)))/f,m=(p=(t<0?-p:p)+this.top*(f+(t<0?-1:1)))/f}else{h=d*(f=(e-t)*t),m=p*f}if(o&&(c?this.isBeyondPossibleLeft(h,u.minX)?h=u.minX:this.isBeyondPossibleRight(h,u.maxX)&&(h=u.maxX):e>1&&(hu.maxX&&(h=u.maxX)),g?this.isBeyondPossibleTop(m,u.minY)?m=u.minY:this.isBeyondPossibleBottom(m,u.maxY)&&(m=u.maxY):e>1&&(mu.maxY&&(m=u.maxY))),this.setZoomStyles({x:h,y:m,scale:e}),this.left=h,this.top=m,i)e>=this.getCurrentImageActualSizeScale()&&this.setZoomImageSize()}},h.prototype.resetImageTranslate=function(){var e=this.core.getSlideItem(this.core.index).find(".lg-image").first();this.imageReset=!1,e.removeClass("reset-transition reset-transition-y reset-transition-x"),this.core.outer.removeClass("lg-actual-size"),e.css("width","auto").css("height","auto"),setTimeout((function(){e.removeClass("no-transition")}),10)},h.prototype.setZoomImageSize=function(){var e=this,t=this.core.getSlideItem(this.core.index).find(".lg-image").first();setTimeout((function(){t.addClass("no-transition"),e.imageReset=!0}),500),setTimeout((function(){var o=e.getDragAllowedAxises(e.scale);t.css("width",t.get().naturalWidth+"px").css("height",t.get().naturalHeight+"px"),e.core.outer.addClass("lg-actual-size"),o.allowX&&o.allowY?t.addClass("reset-transition"):o.allowX&&!o.allowY?t.addClass("reset-transition-x"):!o.allowX&&o.allowY&&t.addClass("reset-transition-y")}),550)},h.prototype.setZoomStyles=function(e){var t=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),o=this.core.getSlideItem(this.core.index).find(".lg-image").first(),i=this.core.outer.find(".lg-current .lg-dummy-img").first();this.scale=e.scale,o.css("transform","scale3d("+e.scale+", "+e.scale+", 1)"),i.css("transform","scale3d("+e.scale+", "+e.scale+", 1)");var s="translate3d("+e.x+"px, "+e.y+"px, 0)";t.css("transform",s)},h.prototype.setActualSize=function(e,t){var o=this,i=this.core.galleryItems[this.core.index];this.resetImageTranslate(),setTimeout((function(){if(i.src&&!o.core.outer.hasClass("lg-first-slide-loading")){var e=o.getCurrentImageActualSizeScale(),s=o.scale;o.core.outer.hasClass("lg-zoomed")?o.scale=1:o.scale=o.getScale(e),o.setPageCords(t),o.beginZoom(o.scale),o.zoomImage(o.scale,o.scale-s,!0,!0),setTimeout((function(){o.core.outer.removeClass("lg-grabbing").addClass("lg-grab")}),10)}}),50)},h.prototype.getNaturalWidth=function(e){var t=this.core.getSlideItem(e).find(".lg-image").first(),o=this.core.galleryItems[e].width;return o?parseFloat(o):t.get().naturalWidth},h.prototype.getActualSizeScale=function(e,t){return e>=t?e/t||2:1},h.prototype.getCurrentImageActualSizeScale=function(){var e=this.core.getSlideItem(this.core.index).find(".lg-image").first().get().offsetWidth,t=this.getNaturalWidth(this.core.index)||e;return this.getActualSizeScale(t,e)},h.prototype.getPageCords=function(e){var t={};if(e)t.x=e.pageX||e.touches[0].pageX,t.y=e.pageY||e.touches[0].pageY;else{var o=this.core.$content.get().getBoundingClientRect();t.x=o.width/2+o.left,t.y=o.height/2+this.scrollTop+o.top}return t},h.prototype.setPageCords=function(e){var t=this.getPageCords(e);this.pageX=t.x,this.pageY=t.y},h.prototype.manageActualPixelClassNames=function(){this.core.getElementById("lg-actual-size").removeClass(this.settings.actualSizeIcons.zoomIn).addClass(this.settings.actualSizeIcons.zoomOut)},h.prototype.beginZoom=function(e){return this.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),e>1?(this.core.outer.addClass("lg-zoomed"),this.manageActualPixelClassNames()):this.resetZoom(),e>1},h.prototype.getScale=function(e){var t=this.getCurrentImageActualSizeScale();return e<1?e=1:e>t&&(e=t),e},h.prototype.init=function(){var e=this;if(this.settings.zoom){this.buildTemplates(),this.enableZoomOnSlideItemLoad();var t=null;this.core.outer.on("dblclick.lg",(function(t){e.$LG(t.target).hasClass("lg-image")&&e.setActualSize(e.core.index,t)})),this.core.outer.on("touchstart.lg",(function(o){var i=e.$LG(o.target);1===o.touches.length&&i.hasClass("lg-image")&&(t?(clearTimeout(t),t=null,o.preventDefault(),e.setActualSize(e.core.index,o)):t=setTimeout((function(){t=null}),300))})),this.core.LGel.on(o+".zoom "+l+".zoom "+r+".zoom "+g+".zoom "+c+".zoom",(function(){if(e.core.lgOpened&&e.isImageSlide()&&!e.core.touchAction){var t=e.core.getSlideItem(e.core.index).find(".lg-img-wrap").first();e.top=0,e.left=0,e.setZoomEssentials(),e.setZoomSwipeStyles(t,{x:0,y:0}),e.positionChanged=!0}})),this.$LG(window).on("scroll.lg.zoom.global"+this.core.lgId,(function(){e.core.lgOpened&&(e.scrollTop=e.$LG(window).scrollTop())})),this.core.getElementById("lg-zoom-out").on("click.lg",(function(){if(e.isImageSlide()){var t=0;e.imageReset&&(e.resetImageTranslate(),t=50),setTimeout((function(){var t=e.scale-e.settings.scale;t<1&&(t=1),e.beginZoom(t),e.zoomImage(t,-e.settings.scale,!0,!0)}),t)}})),this.core.getElementById("lg-zoom-in").on("click.lg",(function(){e.zoomIn()})),this.core.getElementById("lg-actual-size").on("click.lg",(function(){e.setActualSize(e.core.index)})),this.core.LGel.on(i+".zoom",(function(){e.core.outer.find(".lg-item").removeClass("lg-zoomable")})),this.core.LGel.on(s+".zoom",(function(){e.scrollTop=e.$LG(window).scrollTop(),e.pageX=e.core.outer.width()/2,e.pageY=e.core.outer.height()/2+e.scrollTop,e.scale=1})),this.core.LGel.on(n+".zoom",(function(t){var o=t.detail.prevIndex;e.scale=1,e.positionChanged=!1,e.resetZoom(o),e.isImageSlide()&&e.setZoomEssentials()})),this.zoomDrag(),this.pinchZoom(),this.zoomSwipe(),this.zoomableTimeout=!1,this.positionChanged=!1}},h.prototype.zoomIn=function(){if(this.isImageSlide()){var e=this.scale+this.settings.scale;e=this.getScale(e),this.beginZoom(e),this.zoomImage(e,this.settings.scale,!0,!0)}},h.prototype.resetZoom=function(e){this.core.outer.removeClass("lg-zoomed lg-zoom-drag-transition");var t=this.core.getElementById("lg-actual-size"),o=this.core.getSlideItem(void 0!==e?e:this.core.index);t.removeClass(this.settings.actualSizeIcons.zoomOut).addClass(this.settings.actualSizeIcons.zoomIn),o.find(".lg-img-wrap").first().removeAttr("style"),o.find(".lg-image").first().removeAttr("style"),this.scale=1,this.left=0,this.top=0,this.setPageCords()},h.prototype.getTouchDistance=function(e){return Math.sqrt((e.touches[0].pageX-e.touches[1].pageX)*(e.touches[0].pageX-e.touches[1].pageX)+(e.touches[0].pageY-e.touches[1].pageY)*(e.touches[0].pageY-e.touches[1].pageY))},h.prototype.pinchZoom=function(){var e=this,t=0,o=!1,i=1,s=0,a=this.core.getSlideItem(this.core.index);this.core.outer.on("touchstart.lg",(function(o){if(a=e.core.getSlideItem(e.core.index),e.isImageSlide()&&2===o.touches.length){if(o.preventDefault(),e.core.outer.hasClass("lg-first-slide-loading"))return;i=e.scale||1,e.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),e.setPageCords(o),e.resetImageTranslate(),e.core.touchAction="pinch",t=e.getTouchDistance(o)}})),this.core.$inner.on("touchmove.lg",(function(n){if(2===n.touches.length&&"pinch"===e.core.touchAction&&(e.$LG(n.target).hasClass("lg-item")||a.get().contains(n.target))){n.preventDefault();var r=e.getTouchDistance(n),l=t-r;if(!o&&Math.abs(l)>5&&(o=!0),o){s=e.scale;var g=Math.max(1,i+.02*-l);e.scale=Math.round(100*(g+Number.EPSILON))/100;var c=e.scale-s;e.zoomImage(e.scale,Math.round(100*(c+Number.EPSILON))/100,!1,!1)}}})),this.core.$inner.on("touchend.lg",(function(i){if("pinch"===e.core.touchAction&&(e.$LG(i.target).hasClass("lg-item")||a.get().contains(i.target))){if(o=!1,t=0,e.scale<=1)e.resetZoom();else{var s=e.getCurrentImageActualSizeScale();if(e.scale>=s){var n=s-e.scale;0===n&&(n=.01),e.zoomImage(s,n,!1,!0)}e.manageActualPixelClassNames(),e.core.outer.addClass("lg-zoomed")}e.core.touchAction=void 0}}))},h.prototype.touchendZoom=function(e,t,o,i,s){var a=t.x-e.x,n=t.y-e.y,r=Math.abs(a)/s+1,l=Math.abs(n)/s+1;r>2&&(r+=1),l>2&&(l+=1),a*=r,n*=l;var g=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),c={};c.x=this.left+a,c.y=this.top+n;var h=this.getPossibleSwipeDragCords();(Math.abs(a)>15||Math.abs(n)>15)&&(i&&(this.isBeyondPossibleTop(c.y,h.minY)?c.y=h.minY:this.isBeyondPossibleBottom(c.y,h.maxY)&&(c.y=h.maxY)),o&&(this.isBeyondPossibleLeft(c.x,h.minX)?c.x=h.minX:this.isBeyondPossibleRight(c.x,h.maxX)&&(c.x=h.maxX)),i?this.top=c.y:c.y=this.top,o?this.left=c.x:c.x=this.left,this.setZoomSwipeStyles(g,c),this.positionChanged=!0)},h.prototype.getZoomSwipeCords=function(e,t,o,i,s){var a={};if(i){if(a.y=this.top+(t.y-e.y),this.isBeyondPossibleTop(a.y,s.minY)){var n=s.minY-a.y;a.y=s.minY-n/6}else if(this.isBeyondPossibleBottom(a.y,s.maxY)){var r=a.y-s.maxY;a.y=s.maxY+r/6}}else a.y=this.top;if(o){if(a.x=this.left+(t.x-e.x),this.isBeyondPossibleLeft(a.x,s.minX)){var l=s.minX-a.x;a.x=s.minX-l/6}else if(this.isBeyondPossibleRight(a.x,s.maxX)){var g=a.x-s.maxX;a.x=s.maxX+g/6}}else a.x=this.left;return a},h.prototype.isBeyondPossibleLeft=function(e,t){return e>=t},h.prototype.isBeyondPossibleRight=function(e,t){return e<=t},h.prototype.isBeyondPossibleTop=function(e,t){return e>=t},h.prototype.isBeyondPossibleBottom=function(e,t){return e<=t},h.prototype.isImageSlide=function(){var e=this.core.galleryItems[this.core.index];return"image"===this.core.getSlideType(e)},h.prototype.getPossibleSwipeDragCords=function(e){var t=this.core.getSlideItem(this.core.index).find(".lg-image").first(),o=this.core.mediaContainerPosition.bottom,i=t.get().getBoundingClientRect(),s=i.height,a=i.width;return e&&(s+=e*s,a+=e*a),{minY:(s-this.containerRect.height)/2,maxY:(this.containerRect.height-s)/2+o,minX:(a-this.containerRect.width)/2,maxX:(this.containerRect.width-a)/2}},h.prototype.setZoomSwipeStyles=function(e,t){e.css("transform","translate3d("+t.x+"px, "+t.y+"px, 0)")},h.prototype.zoomSwipe=function(){var e,t,o=this,i={},s={},a=!1,n=!1,r=!1,l=new Date,g=(new Date,this.core.getSlideItem(this.core.index));this.core.$inner.on("touchstart.lg",(function(s){if(o.isImageSlide()&&(g=o.core.getSlideItem(o.core.index),(o.$LG(s.target).hasClass("lg-item")||g.get().contains(s.target))&&1===s.touches.length&&o.core.outer.hasClass("lg-zoomed"))){s.preventDefault(),l=new Date,o.core.touchAction="zoomSwipe",t=o.core.getSlideItem(o.core.index).find(".lg-img-wrap").first();var a=o.getDragAllowedAxises(0);r=a.allowY,((n=a.allowX)||r)&&(i=o.getSwipeCords(s)),e=o.getPossibleSwipeDragCords(),o.core.outer.addClass("lg-zoom-dragging lg-zoom-drag-transition")}})),this.core.$inner.on("touchmove.lg",(function(l){if(1===l.touches.length&&"zoomSwipe"===o.core.touchAction&&(o.$LG(l.target).hasClass("lg-item")||g.get().contains(l.target))){l.preventDefault(),o.core.touchAction="zoomSwipe",s=o.getSwipeCords(l);var c=o.getZoomSwipeCords(i,s,n,r,e);(Math.abs(s.x-i.x)>15||Math.abs(s.y-i.y)>15)&&(a=!0,o.setZoomSwipeStyles(t,c))}})),this.core.$inner.on("touchend.lg",(function(e){if("zoomSwipe"===o.core.touchAction&&(o.$LG(e.target).hasClass("lg-item")||g.get().contains(e.target))){if(e.preventDefault(),o.core.touchAction=void 0,o.core.outer.removeClass("lg-zoom-dragging"),!a)return;a=!1;var t=(new Date).valueOf()-l.valueOf();o.touchendZoom(i,s,n,r,t)}}))},h.prototype.zoomDrag=function(){var e,t,o,i,s=this,a={},n={},r=!1,l=!1,g=!1,c=!1;this.core.outer.on("mousedown.lg.zoom",(function(t){if(s.isImageSlide()){var n=s.core.getSlideItem(s.core.index);if(s.$LG(t.target).hasClass("lg-item")||n.get().contains(t.target)){e=new Date,i=s.core.getSlideItem(s.core.index).find(".lg-img-wrap").first();var l=s.getDragAllowedAxises(0);c=l.allowY,g=l.allowX,s.core.outer.hasClass("lg-zoomed")&&s.$LG(t.target).hasClass("lg-object")&&(g||c)&&(t.preventDefault(),a=s.getDragCords(t),o=s.getPossibleSwipeDragCords(),r=!0,s.core.outer.removeClass("lg-grab").addClass("lg-grabbing lg-zoom-drag-transition lg-zoom-dragging"))}}})),this.$LG(window).on("mousemove.lg.zoom.global"+this.core.lgId,(function(e){if(r){l=!0,n=s.getDragCords(e);var t=s.getZoomSwipeCords(a,n,g,c,o);s.setZoomSwipeStyles(i,t)}})),this.$LG(window).on("mouseup.lg.zoom.global"+this.core.lgId,(function(o){if(r){if(t=new Date,r=!1,s.core.outer.removeClass("lg-zoom-dragging"),l&&(a.x!==n.x||a.y!==n.y)){n=s.getDragCords(o);var i=t.valueOf()-e.valueOf();s.touchendZoom(a,n,g,c,i)}l=!1}s.core.outer.removeClass("lg-grabbing").addClass("lg-grab")}))},h.prototype.closeGallery=function(){this.resetZoom()},h.prototype.destroy=function(){this.$LG(window).off(".lg.zoom.global"+this.core.lgId),this.core.LGel.off(".lg.zoom"),this.core.LGel.off(".zoom"),clearTimeout(this.zoomableTimeout),this.zoomableTimeout=!1},h}()})); diff --git a/docs b/docs index 1c587ded..1f24c3b3 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 1c587ded7989728bb6836417403136c6db368746 +Subproject commit 1f24c3b3da4d3ae6374657044d40e62b6c2d8cbb diff --git a/layouts/partials/assets.html b/layouts/partials/assets.html index 5d2157a0..44a91477 100644 --- a/layouts/partials/assets.html +++ b/layouts/partials/assets.html @@ -41,17 +41,17 @@ {{- $config = dict "twemoji" true | merge $config -}} {{- end -}} -{{- /* lightgallery.js */ -}} +{{- /* lightgallery */ -}} {{- if $params.lightgallery -}} - {{- $source := $cdn.lightgalleryCSS | default "lib/lightgallery/lightgallery.min.css" -}} + {{- $source := $cdn.lightgalleryCSS | default "lib/lightgallery/css/lightgallery-bundle.min.css" -}} {{- dict "Source" $source "Fingerprint" $fingerprint | dict "Scratch" .Scratch "Data" | partial "scratch/style.html" -}} {{- $source := $cdn.lightgalleryJS | default "lib/lightgallery/lightgallery.min.js" -}} {{- dict "Source" $source "Fingerprint" $fingerprint "Defer" true | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}} - {{- $source := $cdn.lightgalleryThumbnailJS | default "lib/lightgallery/lg-thumbnail.min.js" -}} + {{- $source := $cdn.lightgalleryThumbnailJS | default "lib/lightgallery/plugins/thumbnail/lg-thumbnail.min.js" -}} {{- dict "Source" $source "Fingerprint" $fingerprint "Defer" true | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}} - {{- $source := $cdn.lightgalleryZoomJS | default "lib/lightgallery/lg-zoom.min.js" -}} + {{- $source := $cdn.lightgalleryZoomJS | default "lib/lightgallery/plugins/zoom/lg-zoom.min.js" -}} {{- dict "Source" $source "Fingerprint" $fingerprint "Defer" true | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}} - {{- $config = dict "selector" ".lightgallery" "speed" 400 "hideBarsDelay" 2000 "thumbnail" true "exThumbImage" "data-thumbnail" "thumbWidth" 80 "thumbContHeight" 80 "actualSize" false | dict "lightGallery" | merge $config -}} + {{- $config = dict "lightgallery" true | merge $config -}} {{- end -}} {{- $code := $params.code | default dict -}} diff --git a/layouts/partials/plugin/image.html b/layouts/partials/plugin/image.html index 3a6514db..aa5ffbd0 100644 --- a/layouts/partials/plugin/image.html +++ b/layouts/partials/plugin/image.html @@ -1,4 +1,4 @@ -{{- /* lazysizes and lightgallery.js */ -}} +{{- /* lazysizes and lightgallery */ -}} {{- $src := .Src -}} {{- with dict "Path" .Src "Resources" .Resources | partial "function/resource.html" -}} {{- $src = .RelPermalink -}} diff --git a/src/js/theme.js b/src/js/theme.js index 6fd2ea56..ee7a2d2a 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -401,7 +401,21 @@ class FixIt { } initLightGallery() { - this.config.lightGallery && lightGallery(document.getElementById('content'), this.config.lightGallery); + 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, + }); + } } initHighlight() { diff --git a/static/lib/fonts/lg.ttf b/static/lib/fonts/lg.ttf deleted file mode 100644 index 213afec1..00000000 Binary files a/static/lib/fonts/lg.ttf and /dev/null differ diff --git a/static/lib/fonts/lg.woff b/static/lib/fonts/lg.woff deleted file mode 100644 index 27a2b8ea..00000000 Binary files a/static/lib/fonts/lg.woff and /dev/null differ diff --git a/static/lib/img/loading.gif b/static/lib/img/loading.gif deleted file mode 100644 index d3bbc806..00000000 Binary files a/static/lib/img/loading.gif and /dev/null differ diff --git a/static/lib/img/video-play.png b/static/lib/img/video-play.png deleted file mode 100644 index 48935403..00000000 Binary files a/static/lib/img/video-play.png and /dev/null differ diff --git a/static/lib/img/vimeo-play.png b/static/lib/img/vimeo-play.png deleted file mode 100644 index ef7d2457..00000000 Binary files a/static/lib/img/vimeo-play.png and /dev/null differ diff --git a/static/lib/img/youtube-play.png b/static/lib/img/youtube-play.png deleted file mode 100644 index dfebb91f..00000000 Binary files a/static/lib/img/youtube-play.png and /dev/null differ diff --git a/static/lib/fonts/lg.svg b/static/lib/lightgallery/fonts/lg.svg similarity index 75% rename from static/lib/fonts/lg.svg rename to static/lib/lightgallery/fonts/lg.svg index 6fffe1be..fe8b0756 100644 --- a/static/lib/fonts/lg.svg +++ b/static/lib/lightgallery/fonts/lg.svg @@ -6,14 +6,14 @@ + + + \ No newline at end of file diff --git a/static/lib/lightgallery/fonts/lg.ttf b/static/lib/lightgallery/fonts/lg.ttf new file mode 100644 index 00000000..825f4832 Binary files /dev/null and b/static/lib/lightgallery/fonts/lg.ttf differ diff --git a/static/lib/lightgallery/fonts/lg.woff b/static/lib/lightgallery/fonts/lg.woff new file mode 100644 index 00000000..fd02a6f4 Binary files /dev/null and b/static/lib/lightgallery/fonts/lg.woff differ diff --git a/static/lib/lightgallery/fonts/lg.woff2 b/static/lib/lightgallery/fonts/lg.woff2 new file mode 100644 index 00000000..2c2e2892 Binary files /dev/null and b/static/lib/lightgallery/fonts/lg.woff2 differ diff --git a/static/lib/lightgallery/images/loading.gif b/static/lib/lightgallery/images/loading.gif new file mode 100644 index 00000000..4744c455 Binary files /dev/null and b/static/lib/lightgallery/images/loading.gif differ